FreeCalypso > hg > freecalypso-sw
annotate rvinterf/lowlevel/logsent.c @ 923:10b4bed10192
gsm-fw/L1: fix for the DSP patch corruption bug
The L1 code we got from the LoCosto fw contains a feature for DSP CPU load
measurement. This feature is a LoCosto-ism, i.e., not applicable to earlier
DBB chips (Calypso) with their respective earlier DSP ROMs. Most of the
code dealing with that feature is conditionalized as #if (DSP >= 38),
but one spot was missed, and the MCU code was writing into an API word
dealing with this feature. In TCS211 this DSP API word happens to be
used by the DSP code patch, hence that write was corrupting the patched
DSP code.
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 19 Oct 2015 17:13:56 +0000 |
parents | da9a36515da6 |
children |
rev | line source |
---|---|
134
e0d56e9be8a2
rvtdump: time-stamped logging implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
1 /* |
174
3256dc6e84ae
rvinterf: refactored rvtdump compiles and works
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
173
diff
changeset
|
2 * This module implements the logging of sent packets |
134
e0d56e9be8a2
rvtdump: time-stamped logging implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
3 */ |
e0d56e9be8a2
rvtdump: time-stamped logging implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
4 |
e0d56e9be8a2
rvtdump: time-stamped logging implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
5 #include <sys/types.h> |
e0d56e9be8a2
rvtdump: time-stamped logging implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
6 #include <stdio.h> |
e0d56e9be8a2
rvtdump: time-stamped logging implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
7 #include <string.h> |
e0d56e9be8a2
rvtdump: time-stamped logging implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
8 #include <strings.h> |
628
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
9 #include "../include/pktmux.h" |
256
2f285f20d617
rvinterf: *.h moved into include subdir
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
174
diff
changeset
|
10 #include "../include/limits.h" |
171
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
11 |
628
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
12 static void |
881
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
13 log_sent_ati(pkt, pktlen) |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
14 u_char *pkt; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
15 { |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
16 char buf[MAX_PKT_TO_TARGET*4+10]; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
17 int i, c; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
18 char *dp; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
19 |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
20 strcpy(buf, "Sent to ATI: "); |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
21 dp = buf + 13; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
22 for (i = 1; i < pktlen; i++) { |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
23 c = pkt[i]; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
24 if (c & 0x80) { |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
25 *dp++ = 'M'; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
26 *dp++ = '-'; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
27 c &= 0x7F; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
28 } |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
29 if (c < 0x20) { |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
30 *dp++ = '^'; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
31 *dp++ = c + '@'; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
32 } else if (c == 0x7F) { |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
33 *dp++ = '^'; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
34 *dp++ = '?'; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
35 } else |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
36 *dp++ = c; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
37 } |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
38 *dp = '\0'; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
39 output_line(buf); |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
40 } |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
41 |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
42 static void |
628
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
43 log_sent_gpf(pkt, pktlen) |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
44 u_char *pkt; |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
45 { |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
46 char buf[MAX_PKT_TO_TARGET*4+30]; |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
47 |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
48 strcpy(buf, "Sent "); |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
49 format_g23_packet(pkt, pktlen, buf + 5); |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
50 output_line(buf); |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
51 } |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
52 |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
53 static void |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
54 log_sent_other(pkt, pktlen) |
171
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
55 u_char *pkt; |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
56 { |
174
3256dc6e84ae
rvinterf: refactored rvtdump compiles and works
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
173
diff
changeset
|
57 char buf[MAX_PKT_TO_TARGET*3+5]; |
171
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
58 int i; |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
59 char *dp; |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
60 |
174
3256dc6e84ae
rvinterf: refactored rvtdump compiles and works
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
173
diff
changeset
|
61 dp = buf; |
171
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
62 strcpy(dp, "Sent"); |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
63 dp += 4; |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
64 for (i = 0; i < pktlen; i++) { |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
65 sprintf(dp, " %02X", pkt[i]); |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
66 dp += 3; |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
67 } |
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
68 *dp = '\0'; |
174
3256dc6e84ae
rvinterf: refactored rvtdump compiles and works
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
173
diff
changeset
|
69 output_line(buf); |
171
4d8e4c58df71
rvtdump: implemented Tx extension hack, compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
134
diff
changeset
|
70 } |
628
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
71 |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
72 log_sent_packet(pkt, pktlen) |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
73 u_char *pkt; |
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
74 { |
881
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
75 switch (pkt[0]) { |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
76 case RVT_L23_HEADER: |
628
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
77 log_sent_gpf(pkt, pktlen); |
881
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
78 return; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
79 case RVT_AT_HEADER: |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
80 log_sent_ati(pkt, pktlen); |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
81 return; |
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
82 default: |
628
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
83 log_sent_other(pkt, pktlen); |
881
da9a36515da6
rvinterf: log sent AT commands in ASCII form
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
628
diff
changeset
|
84 } |
628
c2f2f7d78451
rvinterf: log sent GPF packets with the same decoding as received ones
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
256
diff
changeset
|
85 } |