FreeCalypso > hg > freecalypso-sw
annotate rvinterf/tmsh/pktsort.c @ 836:6c5d3fecbc67
gdi: audio.c compiles
| author | Space Falcon <falcon@ivan.Harhan.ORG> | 
|---|---|
| date | Sat, 25 Apr 2015 19:21:20 +0000 | 
| parents | a26470040d89 | 
| children | 
| rev | line source | 
|---|---|
| 
183
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
2 * Here we sort out incoming packets from the target relayed via rvinterf. | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
3 */ | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
4 | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
5 #include <sys/types.h> | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
6 #include <stdio.h> | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
7 #include <string.h> | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
8 #include <strings.h> | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
9 #include <stdlib.h> | 
| 
260
 
c146f38d2b5f
rvinterf subdir structure made a little more sensible
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
256 
diff
changeset
 | 
10 #include "pktmux.h" | 
| 
 
c146f38d2b5f
rvinterf subdir structure made a little more sensible
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
256 
diff
changeset
 | 
11 #include "limits.h" | 
| 
 
c146f38d2b5f
rvinterf subdir structure made a little more sensible
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
256 
diff
changeset
 | 
12 #include "localsock.h" | 
| 
183
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
13 #include "localtypes.h" | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
14 #include "etm.h" | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
15 | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
16 extern u_char rvi_msg[]; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
17 extern int rvi_msg_len; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
18 | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
19 static void | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
20 print_etm_trace() | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
21 { | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
22 char buf[MAX_PKT_FROM_TARGET*4]; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
23 | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
24 strcpy(buf, "ETM Tr: "); | 
| 
337
 
a26470040d89
fc-tmsh: old buglet in the handling of ETM traces
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
335 
diff
changeset
 | 
25 safe_print_trace(rvi_msg + 7, rvi_msg_len - 7, buf + 8); | 
| 
183
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
26 async_msg_output(buf); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
27 } | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
28 | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
29 static void | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
30 process_rvt() | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
31 { | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
32 u32 useid; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
33 | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
34 if (rvi_msg_len < 7) { | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
35 tty_cleanup(); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
36 fprintf(stderr, "Error: rvinterf sent us an invalid RVT msg\n"); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
37 exit(1); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
38 } | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
39 useid = rvi_msg[2] << 24 | rvi_msg[3] << 16 | rvi_msg[4] << 8 | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
40 | rvi_msg[5]; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
41 switch (useid) { | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
42 case 0: | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
43 handle_useid_0(); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
44 return; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
45 case ETM_USE_ID: | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
46 print_etm_trace(); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
47 return; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
48 default: | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
49 tty_cleanup(); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
50 fprintf(stderr, "unexpected fwd of USEID %08X from rvinterf\n", | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
51 useid); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
52 exit(1); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
53 } | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
54 } | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
55 | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
56 void | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
57 process_pkt_from_target() | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
58 { | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
59 switch (rvi_msg[1]) { | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
60 case RVT_RV_HEADER: | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
61 process_rvt(); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
62 return; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
63 case RVT_TM_HEADER: | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
64 etm_packet_rx(); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
65 return; | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
66 default: | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
67 tty_cleanup(); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
68 fprintf(stderr, "unexpected fwd of MUX %02X from rvinterf\n", | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
69 rvi_msg[1]); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
70 exit(1); | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
71 } | 
| 
 
85222710dc92
rvinterf/etm: implemented everything except the packet sending command
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
72 } | 
