annotate rvinterf/old/format_g23.c @ 992:a7b0b426f9ca

target-utils: boot ROM UART autodetection revamped The new implementation should work with both the familiar Calypso C035 boot ROM version found in our regular targets as well as the older Calypso F741979B version found on the vintage D-Sample board.
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Wed, 30 Dec 2015 21:28:41 +0000
parents 73a2b359b3cd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
1 /*
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
2 * This module implements the decoding of G23 trace packets into
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
3 * human-readable form - or more precisely, traces, system primitives
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
4 * and other packets that can be emitted through GPF on targets.
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
5 * The decoding is based on my (Space Falcon's) understanding
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
6 * of the packet format, which is in turn based on the GPF sources
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
7 * available to us, now integrated under gsm-fw/gpf.
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
8 */
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
9
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
10 #include <sys/types.h>
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
11 #include <ctype.h>
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
12 #include <stdio.h>
133
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
13 #include <string.h>
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
14 #include <strings.h>
256
2f285f20d617 rvinterf: *.h moved into include subdir
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 175
diff changeset
15 #include "../include/pktmux.h"
2f285f20d617 rvinterf: *.h moved into include subdir
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 175
diff changeset
16 #include "../include/limits.h"
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
17
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
18 extern u_char rxpkt[];
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
19 extern size_t rxpkt_len;
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
20 extern char fmtbuf[];
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
21
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
22 static char *fmtbuf_ptr;
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
23
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
24 static int
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
25 basic_checks()
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
26 {
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
27 int i, c;
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
28
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
29 if (rxpkt_len < 17)
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
30 return(0);
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
31 /* check version bits in the header byte */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
32 if ((rxpkt[1] & 0xC0) != 0x80)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
33 return(0);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
34 /* check the length */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
35 c = rxpkt[2] | rxpkt[3] << 8;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
36 if (c + 4 != rxpkt_len)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
37 return(0);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
38 /* ensure that the "from" and "to" are printable ASCII */
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
39 for (i = 8; i < 16; i++) {
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
40 c = rxpkt[i];
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
41 if (c < ' ' || c > '~')
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
42 return(0);
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
43 }
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
44 /* basic checks pass */
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
45 return(1);
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
46 }
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
47
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
48 static int
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
49 psprim_extra_checks()
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
50 {
133
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
51 int i, c;
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
52
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
53 if (rxpkt_len < 24)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
54 return(0);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
55 /* "original rcvr" field needs to be printable ASCII */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
56 for (i = 16; i < 20; i++) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
57 c = rxpkt[i];
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
58 if (c < ' ' || c > '~')
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
59 return(0);
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
60 }
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
61 /* checks pass */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
62 return(1);
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
63 }
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
64
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
65 static void
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
66 print_malformed()
126
811b138f1bed rvtdump utility written, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
67 {
127
f4f0c8738dcb rvtdump: satisfactory handling of output from Pirelli's fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 126
diff changeset
68 int i;
133
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
69 char *dp;
127
f4f0c8738dcb rvtdump: satisfactory handling of output from Pirelli's fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 126
diff changeset
70
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
71 dp = fmtbuf;
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
72 strcpy(dp, "G23 UNK:");
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
73 dp += 8;
133
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
74 for (i = 1; i < rxpkt_len; i++) {
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
75 sprintf(dp, " %02X", rxpkt[i]);
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
76 dp += 3;
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
77 }
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
78 *dp = '\0';
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
79 output_line(fmtbuf);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
80 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
81
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
82 static int
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
83 entity_name_well_formed(p)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
84 char *p;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
85 {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
86 int i, len;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
87
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
88 if (!isupper(p[0]))
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
89 return(0);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
90 for (i = 0; i < 4; i++)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
91 if (!isalnum(p[i]))
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
92 break;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
93 len = i;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
94 for (; i < 4; i++)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
95 if (p[i] != ' ')
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
96 return(0);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
97 return(len);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
98 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
99
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
100 static void
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
101 print_entity_name(raw)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
102 char *raw;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
103 {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
104 int len;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
105
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
106 len = entity_name_well_formed(raw);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
107 if (len)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
108 sprintf(fmtbuf_ptr, "%.*s", len, raw);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
109 else
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
110 sprintf(fmtbuf_ptr, "\"%.4s\"", raw);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
111 fmtbuf_ptr = index(fmtbuf_ptr, '\0');
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
112 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
113
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
114 static void
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
115 print_common_hdr(typestr)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
116 char *typestr;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
117 {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
118 sprintf(fmtbuf, "G23 %s id=%02X ts=%02X%02X%02X%02X ", typestr,
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
119 rxpkt[1], rxpkt[7], rxpkt[6], rxpkt[5], rxpkt[4]);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
120 fmtbuf_ptr = index(fmtbuf, '\0');
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
121 print_entity_name(rxpkt + 8);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
122 *fmtbuf_ptr++ = '-';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
123 *fmtbuf_ptr++ = '>';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
124 print_entity_name(rxpkt + 12);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
125 *fmtbuf_ptr++ = ' ';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
126 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
127
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
128 static void
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
129 format_text(start_off)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
130 {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
131 int i, c;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
132
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
133 *fmtbuf_ptr++ = '\"';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
134 for (i = start_off; i < rxpkt_len; i++) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
135 c = rxpkt[i];
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
136 if (c & 0x80) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
137 *fmtbuf_ptr++ = 'M';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
138 *fmtbuf_ptr++ = '-';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
139 c &= 0x7F;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
140 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
141 if (c < 0x20) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
142 *fmtbuf_ptr++ = '^';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
143 *fmtbuf_ptr++ = c + '@';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
144 } else if (c == 0x7F) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
145 *fmtbuf_ptr++ = '^';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
146 *fmtbuf_ptr++ = '?';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
147 } else
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
148 *fmtbuf_ptr++ = c;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
149 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
150 *fmtbuf_ptr++ = '\"';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
151 *fmtbuf_ptr = '\0';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
152 output_line(fmtbuf);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
153 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
154
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
155 static void
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
156 format_compressed_trace(start_off)
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
157 {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
158 int i;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
159
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
160 i = start_off + 1;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
161 sprintf(fmtbuf_ptr, "%d", rxpkt[i+1] << 8 | rxpkt[i]);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
162 fmtbuf_ptr = index(fmtbuf_ptr, '\0');
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
163 i += 4;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
164 for (; i < rxpkt_len; i++) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
165 sprintf(fmtbuf_ptr, " %02X", rxpkt[i]);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
166 fmtbuf_ptr += 3;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
167 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
168 *fmtbuf_ptr = '\0';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
169 output_line(fmtbuf);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
170 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
171
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
172 static void
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
173 format_trace()
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
174 {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
175 int i;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
176
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
177 i = 16;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
178 if (rxpkt[i] < 0x20) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
179 sprintf(fmtbuf_ptr, "tc=%02X ", rxpkt[i]);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
180 fmtbuf_ptr += 6;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
181 i++;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
182 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
183 if (rxpkt_len - i >= 5 && rxpkt[i] == '%' &&
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
184 !rxpkt[i+3] && !rxpkt[i+4])
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
185 format_compressed_trace(i);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
186 else
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
187 format_text(i);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
188 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
189
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
190 static void
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
191 format_psprim()
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
192 {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
193 int i;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
194
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
195 /* original destination */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
196 *fmtbuf_ptr++ = '(';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
197 print_entity_name(rxpkt + 16);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
198 *fmtbuf_ptr++ = ')';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
199 /* opcode */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
200 sprintf(fmtbuf_ptr, " %02X%02X%02X%02X",
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
201 rxpkt[23], rxpkt[22], rxpkt[21], rxpkt[20]);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
202 fmtbuf_ptr += 9;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
203 for (i = 24; i < rxpkt_len; i++) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
204 sprintf(fmtbuf_ptr, " %02X", rxpkt[i]);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
205 fmtbuf_ptr += 3;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
206 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
207 *fmtbuf_ptr = '\0';
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
208 output_line(fmtbuf);
133
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
209 }
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
210
56b53c289785 rvtdump: some restructuring
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 127
diff changeset
211 void
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
212 print_g23_trace()
169
e01e3a60c858 rvinterf: background mode implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 133
diff changeset
213 {
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
214 if (!basic_checks()) {
175
2f214bd03119 rvtdump: heuristic decoding of G23 traces implemented,
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 174
diff changeset
215 print_malformed();
327
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
216 return;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
217 }
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
218 /* dispatch by type */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
219 switch (rxpkt[1] & 0x30) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
220 case 0x10:
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
221 /* PS primitive */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
222 if (psprim_extra_checks()) {
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
223 print_common_hdr("PSprim");
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
224 format_psprim();
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
225 } else
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
226 print_malformed();
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
227 return;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
228 case 0x20:
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
229 /* trace */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
230 print_common_hdr("trace");
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
231 format_trace();
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
232 return;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
233 case 0x30:
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
234 /* system primitive */
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
235 print_common_hdr("sysprim");
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
236 format_text(16);
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
237 return;
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
238 default:
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
239 print_malformed();
05874f1ddacb rvinterf & rvtdump: new decoding of G23/GPF packets
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
240 }
169
e01e3a60c858 rvinterf: background mode implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 133
diff changeset
241 }