annotate rvinterf/etmsync/l1tmops.c @ 465:003e48f8ebe1

rvinterf/etmsync/fsnew.c: cast 0 to (char *) for execl sentinel I generally don't use NULL and use plain 0 instead, based on a "NULL considered harmful" discussion on the classiccmp mailing list many aeons ago (I couldn't find it, and I reason that it must have been 2005 or earlier), but a recent complaint by a packager sent me searching, and I found this: https://ewontfix.com/11/ While I don't give a @#$% about "modern" systems and code-nazi tools, I realized that passing a plain 0 as a pointer sentinel in execl is wrong because it will break on systems where pointers are longer than the plain int type. Again, I don't give a @#$% about the abomination of x86_64 and the like, but if anyone ever manages to port my code to something like a PDP-11 (16-bit int, 32-bit long and pointers), then passing a plain 0 as a function argument where a pointer is expected most definitely won't work: if the most natural stack slot and SP alignment unit is 16 bits, fitting an int, with longs and pointers taking up two such slots, then the call stack will be totally wrong with a plain 0 passed for a pointer. Casting the 0 to (char *) ought to be the most kosher solution for the most retro systems possible.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 11 Feb 2019 00:00:19 +0000
parents 4469d73bbc60
children 4694c7686ccd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * In this module we implement the functions that access the L1TM operations
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * which we are going to use in fc-tmsync and fc-readcal.
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <sys/types.h>
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <stdio.h>
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <stdlib.h>
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <string.h>
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <strings.h>
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #include "pktmux.h"
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #include "tm3.h"
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 #include "l1tm.h"
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 #include "exitcodes.h"
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 extern u_char rvi_msg[];
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 extern int rvi_msg_len;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 do_tms(arg)
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 u_char cmdpkt[5];
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 cmdpkt[1] = TM_MODE_SET;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 cmdpkt[2] = arg;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 cmdpkt[3] = arg >> 8;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 etm_pkt_exch(cmdpkt, 3);
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 if (rvi_msg[3]) {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 fprintf(stderr, "target error %u in response to tms\n",
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 rvi_msg[3]);
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
30 return(ERROR_TARGET);
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 if (rvi_msg_len != 5) {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 fprintf(stderr, "target error: tms response wrong length\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
34 return(ERROR_TARGET);
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 return(0);
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38
271
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
39 do_rfpr(index, retp)
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
40 u_short *retp;
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
41 {
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
42 u_char cmdpkt[5];
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
43
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
44 cmdpkt[1] = RF_PARAM_READ;
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
45 cmdpkt[2] = index;
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
46 cmdpkt[3] = index >> 8;
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
47 etm_pkt_exch(cmdpkt, 3);
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
48 if (rvi_msg[3]) {
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
49 fprintf(stderr, "target error %u in response to rfpr\n",
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
50 rvi_msg[3]);
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
51 return(ERROR_TARGET);
271
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
52 }
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
53 if (rvi_msg_len != 8) {
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
54 fprintf(stderr, "target error: rfpr response wrong length\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
55 return(ERROR_TARGET);
271
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
56 }
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
57 if (rvi_msg[4] != index) {
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
58 fprintf(stderr, "target error: rfpr response wrong index\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
59 return(ERROR_TARGET);
271
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
60 }
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
61 *retp = rvi_msg[5] | (rvi_msg[6] << 8);
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
62 return(0);
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
63 }
dc9dbb2f74e7 etmsync l1tmops module: rfpr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 270
diff changeset
64
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 do_rfpw(index, value)
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 u_char cmdpkt[7];
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 cmdpkt[1] = RF_PARAM_WRITE;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 cmdpkt[2] = index;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 cmdpkt[3] = index >> 8;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 cmdpkt[4] = value;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 cmdpkt[5] = value >> 8;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 etm_pkt_exch(cmdpkt, 5);
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 if (rvi_msg[3]) {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 fprintf(stderr, "target error %u in response to rfpw\n",
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 rvi_msg[3]);
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
78 return(ERROR_TARGET);
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 if (rvi_msg_len != 6) {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 fprintf(stderr, "target error: rfpw response wrong length\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
82 return(ERROR_TARGET);
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 if (rvi_msg[4] != index) {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 fprintf(stderr, "target error: rfpw response wrong index\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
86 return(ERROR_TARGET);
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 return(0);
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 do_rftr(index, table, size)
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 u_char *table;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 u_char cmdpkt[4];
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 cmdpkt[1] = RF_TABLE_READ;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 cmdpkt[2] = index;
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 etm_pkt_exch(cmdpkt, 2);
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 if (rvi_msg[3]) {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 fprintf(stderr, "target error %u in response to rftr\n",
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 rvi_msg[3]);
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
102 return(ERROR_TARGET);
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 if (rvi_msg_len < size + 6) {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 fprintf(stderr, "target error: rftr response too short\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
106 return(ERROR_TARGET);
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 if (rvi_msg[4] != index) {
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 fprintf(stderr, "target error: rftr response wrong index\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
110 return(ERROR_TARGET);
270
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 }
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 bcopy(rvi_msg + 5, table, size);
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 return(0);
095ffce023d4 etmsync: l1tmops module compiles and links into fc-tmsync
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 }
272
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
115
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
116 do_ttr(index, buf)
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
117 u_char *buf;
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
118 {
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
119 u_char cmdpkt[4];
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
120
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
121 cmdpkt[1] = TX_TEMPLATE_READ;
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
122 cmdpkt[2] = index;
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
123 etm_pkt_exch(cmdpkt, 2);
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
124 if (rvi_msg[3]) {
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
125 fprintf(stderr, "target error %u in response to ttr\n",
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
126 rvi_msg[3]);
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
127 return(ERROR_TARGET);
272
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
128 }
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
129 if (rvi_msg_len != 38) {
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
130 fprintf(stderr, "target error: ttr response wrong length\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
131 return(ERROR_TARGET);
272
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
132 }
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
133 if (rvi_msg[4] != index) {
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
134 fprintf(stderr, "target error: ttr response wrong index\n");
277
4469d73bbc60 etmsync l1tmops module: need to return on errors, not exit
Mychaela Falconia <falcon@freecalypso.org>
parents: 272
diff changeset
135 return(ERROR_TARGET);
272
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
136 }
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
137 bcopy(rvi_msg + 5, buf, 32);
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
138 return(0);
3e272b956ef4 etmsync l1tmops module: ttr implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 271
diff changeset
139 }