FreeCalypso > hg > freecalypso-tools
annotate rvinterf/etmsync/tmsmain.c @ 505:7bf0d909c87e
fc-loadtool flash ID check: change of reset after the check logic
This change only affects those flash configurations that have ID checks
enabled. The logic for resetting the flash after the ID check has been
changed as follows:
1) If the check fails, we return without attempting to reset the flash.
2) If the check is successful, we reset the flash using the configured
method (could be AMD or Intel or Intel W30) instead of always doing an
AMD flash reset as the original code did.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 27 May 2019 19:58:01 +0000 |
parents | e40bb5a6c6b9 |
children |
rev | line source |
---|---|
269
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This module contains the main() function for fc-tmsync. |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 */ |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 #include <stdio.h> |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <stdlib.h> |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <unistd.h> |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include "exitcodes.h" |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 extern char *socket_pathname; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 extern char *rvinterf_ttyport, *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 main(argc, argv) |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 char **argv; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 { |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 extern int optind; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 extern char *optarg; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 int c, sopt = 0; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 char command[512]; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 while ((c = getopt(argc, argv, "+B:l:p:s:w:")) != EOF) |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 switch (c) { |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 case 'B': |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 rvinterf_Bopt = optarg; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 continue; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 case 'l': |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 rvinterf_lopt = optarg; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 continue; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 case 'p': |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 rvinterf_ttyport = optarg; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 continue; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 case 's': |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 socket_pathname = optarg; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 sopt++; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 continue; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 case 'w': |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 rvinterf_wopt = optarg; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 continue; |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 case '?': |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 default: |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /* error msg already printed */ |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 exit(ERROR_USAGE); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 } |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 if (rvinterf_ttyport) { |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 if (sopt) { |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 fprintf(stderr, |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 "%s error: -p and -s options are mutually exclusive\n", |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 argv[0]); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 exit(ERROR_USAGE); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 } |
423
e40bb5a6c6b9
rvinterf clients: implemented 30 ms delay for batch ops with -p
Mychaela Falconia <falcon@freecalypso.org>
parents:
269
diff
changeset
|
51 launch_rvinterf(argv[optind] || !isatty(0)); |
269
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 } else { |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 if (rvinterf_Bopt || rvinterf_lopt || rvinterf_wopt) { |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 fprintf(stderr, |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 "%s error: -B, -l and -w options are meaningful only when launching rvinterf\n", |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 argv[0]); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 exit(ERROR_USAGE); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 } |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 connect_local_socket(); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 } |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 setlinebuf(stdout); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 if (argv[optind]) |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 return dispatch_ready_argv(argc - optind, argv + optind); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 for (;;) { |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 if (isatty(0)) { |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 rx_control(0); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 fputs("tmsync> ", stdout); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 fflush(stdout); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 } |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 if (!fgets(command, sizeof command, stdin)) |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 exit(0); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 parse_and_dispatch_cmd(command, 0); |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 } |
20ed7a320b12
fc-tmsync skeleton started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 } |