FreeCalypso > hg > freecalypso-tools
annotate rvinterf/lowlevel/rviftmode.c @ 937:06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 24 May 2023 04:25:47 +0000 |
parents | f4e6f6b6548e |
children | 74930218c270 |
rev | line source |
---|---|
932
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This module is for rvinterf only. Whenever we send or receive Test Mode |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * packets, we should be a little more intelligent about how we display and |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * log them. By default we only print a one-line summary, and in verbose mode |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * we also emit a full hex dump. |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 */ |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <sys/types.h> |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <stdio.h> |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <string.h> |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <strings.h> |
935
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
12 #include "../include/etm.h" |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
13 #include "../include/tm3.h" |
937
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
14 #include "../include/tmffs2.h" |
932
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 extern u_char rxpkt[]; |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 extern size_t rxpkt_len; |
934
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
18 |
932
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 extern int verbose; |
934
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
20 extern FILE *logF; |
932
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
935
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
22 static int |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
23 verify_cksum(pkt, pktlen) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
24 u_char *pkt; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
25 unsigned pktlen; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
26 { |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
27 int i, c; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
28 |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
29 c = 0; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
30 for (i = 1; i < pktlen; i++) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
31 c ^= pkt[i]; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
32 if (c == 0) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
33 return(0); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
34 else |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
35 return(-1); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
36 } |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
37 |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
38 static void |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
39 etm_core_classify(pkt, pktlen, outbuf) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
40 u_char *pkt; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
41 unsigned pktlen; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
42 char *outbuf; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
43 { |
936
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
44 if (pktlen < 4) { |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
45 runt: strcpy(outbuf, "ETM_CORE runt"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
46 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
47 } |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
48 switch (pkt[2]) { |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
49 case TMCORE_OPC_MEM: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
50 if (pktlen < 5) |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
51 goto runt; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
52 switch (pkt[3]) { |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
53 case 0x01: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
54 strcpy(outbuf, "r8"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
55 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
56 case 0x02: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
57 strcpy(outbuf, "r16"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
58 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
59 case 0x04: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
60 strcpy(outbuf, "r32"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
61 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
62 case 0x11: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
63 strcpy(outbuf, "w8"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
64 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
65 case 0x12: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
66 strcpy(outbuf, "w16"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
67 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
68 case 0x14: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
69 strcpy(outbuf, "w32"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
70 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
71 default: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
72 sprintf(outbuf, "ETM_CORE mem opcode 0x%02X", pkt[3]); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
73 } |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
74 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
75 case TMCORE_OPC_ECHO: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
76 strcpy(outbuf, "ping"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
77 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
78 case TMCORE_OPC_RESET: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
79 strcpy(outbuf, "tgtreset"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
80 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
81 case TMCORE_OPC_DEBUG: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
82 strcpy(outbuf, "ETM_CORE debug opc"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
83 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
84 case TMCORE_OPC_VERSION: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
85 strcpy(outbuf, "version"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
86 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
87 case TMCORE_OPC_CODEC_RD: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
88 strcpy(outbuf, "abbr"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
89 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
90 case TMCORE_OPC_CODEC_WR: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
91 strcpy(outbuf, "abbw"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
92 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
93 case TMCORE_OPC_DIEID: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
94 strcpy(outbuf, "dieid"); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
95 return; |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
96 default: |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
97 sprintf(outbuf, "ETM_CORE opcode 0x%02X", pkt[2]); |
f4e6f6b6548e
rvinterf TM log: decode ETM_CORE commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
935
diff
changeset
|
98 } |
935
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
99 } |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
100 |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
101 static void |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
102 tmffs2_cmd_classify(pkt, pktlen, outbuf) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
103 u_char *pkt; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
104 unsigned pktlen; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
105 char *outbuf; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
106 { |
937
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
107 if (pktlen < 4) { |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
108 strcpy(outbuf, "ETM_FFS2 runt"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
109 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
110 } |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
111 switch (pkt[2]) { |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
112 case TMFFS_FORMAT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
113 strcpy(outbuf, "FFS2 format"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
114 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
115 case TMFFS_PREFORMAT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
116 strcpy(outbuf, "FFS2 preformat"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
117 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
118 case TMFFS_MKDIR: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
119 strcpy(outbuf, "FFS2 mkdir"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
120 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
121 case TMFFS_OPENDIR: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
122 strcpy(outbuf, "FFS2 opendir"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
123 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
124 case TMFFS_READDIR: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
125 strcpy(outbuf, "FFS2 readdir"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
126 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
127 case TMFFS_REMOVE: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
128 strcpy(outbuf, "FFS2 remove"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
129 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
130 case TMFFS_RENAME: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
131 strcpy(outbuf, "FFS2 rename"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
132 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
133 case TMFFS_XLSTAT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
134 strcpy(outbuf, "FFS2 xlstat"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
135 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
136 case TMFFS_SYMLINK: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
137 strcpy(outbuf, "FFS2 symlink"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
138 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
139 case TMFFS_READLINK: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
140 strcpy(outbuf, "FFS2 readlink"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
141 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
142 case TMFFS_OPEN: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
143 strcpy(outbuf, "FFS2 open"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
144 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
145 case TMFFS_CLOSE: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
146 strcpy(outbuf, "FFS2 close"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
147 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
148 case TMFFS_READ: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
149 strcpy(outbuf, "FFS2 read"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
150 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
151 case TMFFS_WRITE: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
152 strcpy(outbuf, "FFS2 write"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
153 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
154 case TMFFS_SEEK: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
155 strcpy(outbuf, "FFS2 seek"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
156 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
157 case TMFFS_FTRUNCATE: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
158 strcpy(outbuf, "FFS2 ftruncate"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
159 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
160 case TMFFS_TRUNCATE: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
161 strcpy(outbuf, "FFS2 truncate"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
162 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
163 case TMFFS_FILE_READ: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
164 strcpy(outbuf, "FFS2 fread"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
165 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
166 case TMFFS_FILE_WRITE: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
167 strcpy(outbuf, "FFS2 fwrite"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
168 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
169 case TMFFS_FSTAT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
170 strcpy(outbuf, "FFS2 fstat"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
171 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
172 case TMFFS_LSTAT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
173 strcpy(outbuf, "FFS2 lstat"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
174 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
175 case TMFFS_STAT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
176 strcpy(outbuf, "FFS2 stat"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
177 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
178 case TMFFS_FCONTROL: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
179 strcpy(outbuf, "FFS2 fcontrol"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
180 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
181 case TMFFS_QUERY: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
182 strcpy(outbuf, "FFS2 query"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
183 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
184 case TMFFS_INIT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
185 strcpy(outbuf, "FFS2 init"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
186 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
187 case TMFFS_EXIT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
188 strcpy(outbuf, "FFS2 exit"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
189 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
190 case TMFFS_DIRXLSTAT: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
191 strcpy(outbuf, "FFS2 dirxlstat"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
192 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
193 case TMFFS_VERSION: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
194 strcpy(outbuf, "FFS2 version"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
195 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
196 case TMFFS_TFFS: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
197 strcpy(outbuf, "FFS2 tffs"); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
198 return; |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
199 default: |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
200 sprintf(outbuf, "ETM_FFS2 opcode 0x%02X", pkt[2]); |
06f96627ac9a
rvinterf TM log: decode TMFFS2 commands
Mychaela Falconia <falcon@freecalypso.org>
parents:
936
diff
changeset
|
201 } |
935
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
202 } |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
203 |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
204 static void |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
205 audio_cmd_classify(pkt, pktlen, outbuf) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
206 u_char *pkt; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
207 unsigned pktlen; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
208 char *outbuf; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
209 { |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
210 /* classification code to be filled */ |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
211 strcpy(outbuf, "ETM_AUDIO"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
212 } |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
213 |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
214 static void |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
215 tm_classify(pkt, pktlen, is_cmd, outbuf) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
216 u_char *pkt; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
217 unsigned pktlen; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
218 char *outbuf; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
219 { |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
220 if (pktlen < 3) { |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
221 strcpy(outbuf, "RUNT"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
222 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
223 } |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
224 if (verify_cksum(pkt, pktlen) < 0) { |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
225 strcpy(outbuf, "BAD CKSUM"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
226 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
227 } |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
228 switch (pkt[1]) { |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
229 case ETM_CORE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
230 if (is_cmd) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
231 etm_core_classify(pkt, pktlen, outbuf); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
232 else |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
233 strcpy(outbuf, "ETM_CORE"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
234 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
235 case ETM_FFS1: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
236 strcpy(outbuf, "FFS1"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
237 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
238 case ETM_FFS2: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
239 if (is_cmd) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
240 tmffs2_cmd_classify(pkt, pktlen, outbuf); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
241 else |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
242 strcpy(outbuf, "FFS2"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
243 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
244 case ETM_AUDIO: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
245 if (is_cmd) |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
246 audio_cmd_classify(pkt, pktlen, outbuf); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
247 else |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
248 strcpy(outbuf, "ETM_AUDIO"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
249 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
250 case ETM_BSIM: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
251 strcpy(outbuf, "BSIM"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
252 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
253 /* TM3 */ |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
254 case MEM_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
255 strcpy(outbuf, "omr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
256 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
257 case MEM_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
258 strcpy(outbuf, "omw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
259 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
260 case CODEC_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
261 strcpy(outbuf, "oabbr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
262 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
263 case CODEC_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
264 strcpy(outbuf, "oabbw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
265 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
266 /* L1TM */ |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
267 case TM_INIT: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
268 strcpy(outbuf, "tminit"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
269 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
270 case TM_MODE_SET: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
271 strcpy(outbuf, "tms"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
272 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
273 case VERSION_GET: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
274 strcpy(outbuf, "tm3ver"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
275 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
276 case RF_ENABLE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
277 strcpy(outbuf, "rfe"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
278 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
279 case STATS_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
280 strcpy(outbuf, "sr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
281 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
282 case STATS_CONFIG_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
283 strcpy(outbuf, "scw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
284 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
285 case STATS_CONFIG_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
286 strcpy(outbuf, "scr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
287 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
288 case RF_PARAM_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
289 strcpy(outbuf, "rfpw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
290 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
291 case RF_PARAM_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
292 strcpy(outbuf, "rfpr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
293 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
294 case RF_TABLE_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
295 strcpy(outbuf, "rftw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
296 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
297 case RF_TABLE_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
298 strcpy(outbuf, "rftr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
299 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
300 case RX_PARAM_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
301 strcpy(outbuf, "rxpw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
302 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
303 case RX_PARAM_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
304 strcpy(outbuf, "rxpr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
305 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
306 case TX_PARAM_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
307 strcpy(outbuf, "txpw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
308 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
309 case TX_PARAM_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
310 strcpy(outbuf, "txpr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
311 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
312 case TX_TEMPLATE_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
313 strcpy(outbuf, "ttw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
314 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
315 case TX_TEMPLATE_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
316 strcpy(outbuf, "ttr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
317 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
318 case MISC_PARAM_WRITE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
319 strcpy(outbuf, "mpw"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
320 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
321 case MISC_PARAM_READ: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
322 strcpy(outbuf, "mpr"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
323 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
324 case MISC_ENABLE: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
325 strcpy(outbuf, "me"); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
326 return; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
327 default: |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
328 sprintf(outbuf, "mid 0x%02X", pkt[1]); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
329 } |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
330 } |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
331 |
934
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
332 static void |
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
333 hexdump_out(line) |
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
334 char *line; |
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
335 { |
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
336 if (logF) |
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
337 fprintf(logF, "%s\n", line); |
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
338 else |
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
339 printf("%s\n", line); |
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
340 } |
932
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 void |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 log_sent_tm(pkt, pktlen) |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 u_char *pkt; |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 { |
935
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
346 char summary[32], headline[80]; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
347 |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
348 tm_classify(pkt, pktlen, 1, summary); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
349 sprintf(headline, "Sent Test Mode cmd (%s)", summary); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
350 output_line(headline); |
933
bd6dd6120180
rvinterf: -v enables TM hex dump, -vv enables TCH hex dump
Mychaela Falconia <falcon@freecalypso.org>
parents:
932
diff
changeset
|
351 if (verbose >= 1) |
934
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
352 packet_hex_dump(pkt, pktlen, hexdump_out); |
932
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 } |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 void |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 print_tm_output_new() |
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 { |
935
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
358 char summary[32], headline[80]; |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
359 |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
360 tm_classify(rxpkt, (unsigned) rxpkt_len, 0, summary); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
361 sprintf(headline, "Rx Test Mode resp (%s)", summary); |
d203a9c7c4e6
rvinterf TM log: beginning of TM/ETM classification
Mychaela Falconia <falcon@freecalypso.org>
parents:
934
diff
changeset
|
362 output_line(headline); |
933
bd6dd6120180
rvinterf: -v enables TM hex dump, -vv enables TCH hex dump
Mychaela Falconia <falcon@freecalypso.org>
parents:
932
diff
changeset
|
363 if (verbose >= 1) |
934
0d6be90ae74f
rvinterf -v TM: send hex dump only to log file if we have one
Mychaela Falconia <falcon@freecalypso.org>
parents:
933
diff
changeset
|
364 packet_hex_dump(rxpkt, (unsigned) rxpkt_len, hexdump_out); |
932
3d1abb9f05ef
rvinterf proper: move TM logging to new module
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 } |