FreeCalypso > hg > freecalypso-sw
annotate rvinterf/etm/main.c @ 182:13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Sun, 24 Nov 2013 06:59:09 +0000 | 
| parents | |
| children | fa7174faa9aa | 
| rev | line source | 
|---|---|
| 182 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 1 /* | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 2 * This module contains the main() function for fc-tmsh. | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 3 */ | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 4 | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 5 #include <sys/types.h> | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 6 #include <sys/errno.h> | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 7 #include <stdio.h> | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 8 #include <stdlib.h> | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 9 #include <unistd.h> | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 10 | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 11 char *socket_pathname = "/tmp/rvinterf_socket"; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 12 int ttyhacks, dflag; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 13 | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 14 int sock; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 15 | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 16 main(argc, argv) | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 17 char **argv; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 18 { | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 19 extern char *optarg; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 20 int c; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 21 fd_set fds; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 22 | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 23 while ((c = getopt(argc, argv, "ds:")) != EOF) | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 24 switch (c) { | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 25 case 'd': | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 26 dflag++; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 27 continue; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 28 case 's': | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 29 socket_pathname = optarg; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 30 continue; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 31 case '?': | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 32 default: | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 33 exit(1); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 34 } | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 35 ttyhacks = isatty(0) && !dflag; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 36 init(); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 37 tty_init(); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 38 for (;;) { | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 39 FD_ZERO(&fds); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 40 FD_SET(0, &fds); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 41 FD_SET(sock, &fds); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 42 c = select(sock+1, &fds, 0, 0, 0); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 43 if (c < 0) { | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 44 if (errno == EINTR) | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 45 continue; | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 46 tty_cleanup(); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 47 perror("select"); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 48 exit(1); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 49 } | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 50 if (FD_ISSET(0, &fds)) | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 51 handle_tty_input(); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 52 if (FD_ISSET(sock, &fds)) | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 53 handle_rvinterf_input(); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 54 fflush(stdout); | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 55 } | 
| 
13a0348ffce4
rvinterf/etm: checkpointing not-yet-compilable code
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 56 } | 
