annotate rvinterf/include/localsock.h @ 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 a5c8f48003cd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
176
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
1 /*
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
2 * This header defines and describes (through comments) the local UNIX domain
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
3 * socket interface implemented between rvinterf and its clients like fc-tmsh.
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
4 *
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
5 * The UNIX domain sockets used for this ad hoc interface are of the
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
6 * SOCK_STREAM kind, but the true nature of the communication is message-based.
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
7 * We use the same trick that is used for DNS over TCP: every message in each
178
7ab6b29e76bb rvinterf: forwarding of Rx packets to clients implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 176
diff changeset
8 * direction is preceded by a 2-byte length. This length is sent MSB first
7ab6b29e76bb rvinterf: forwarding of Rx packets to clients implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 176
diff changeset
9 * just like in DNS over TCP. The limit on the size of these messages
176
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
10 * (for sizing buffers etc) is:
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
11 */
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
12
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
13 #define LOCALSOCK_MAX_MSG 1024
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
14
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
15 /*
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
16 * Each message in the client->rvinterf direction (can be seen as command)
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
17 * begins (after the length) with an opcode byte as follows:
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
18 */
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
19
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
20 #define CLI2RVI_WANT_RVTRACE 0x00
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
21 #define CLI2RVI_WANT_MUXPROTO 0x01
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
22 #define CLI2RVI_PKT_TO_TARGET 0x02
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
23 #define CLI2RVI_RAWBYTES_TO_TARGET 0x03
266
cb833ff54d88 rvinterf: CLI2RVI_RESET_PACKET_RX command implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
24 #define CLI2RVI_RESET_PACKET_RX 0x04
871
a5c8f48003cd rvinterf: client programs can now selectively stop receiving packets of a
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 266
diff changeset
25 #define CLI2RVI_DROP_MUXPROTO 0x05
176
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
26
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
27 /*
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
28 * The first two commands (CLI2RVI_WANT_RVTRACE and CLI2RVI_WANT_MUXPROTO)
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
29 * are the means by which client programs inform rvinterf that they are
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
30 * interested in receiving copies of certain packets coming from the target.
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
31 *
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
32 * The CLI2RVI_WANT_RVTRACE opcode needs to be followed by a USEID mask value
178
7ab6b29e76bb rvinterf: forwarding of Rx packets to clients implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 176
diff changeset
33 * and a USEID match value, both in the network byte order, i.e., MSB first,
7ab6b29e76bb rvinterf: forwarding of Rx packets to clients implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 176
diff changeset
34 * for a total message length of 9 bytes. For every RV trace message received
7ab6b29e76bb rvinterf: forwarding of Rx packets to clients implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 176
diff changeset
35 * from the target, rvinterf will iterate through all active clients to see who
7ab6b29e76bb rvinterf: forwarding of Rx packets to clients implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 176
diff changeset
36 * is interested: if the received USEID ANDed with the mask equals the match
7ab6b29e76bb rvinterf: forwarding of Rx packets to clients implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 176
diff changeset
37 * value, the message will be forwarded to that client.
176
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
38 *
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
39 * The CLI2RVI_WANT_MUXPROTO opcode needs to be followed by one byte
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
40 * identifying the RVTMUX protocol of interest, i.e., the first byte of the
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
41 * packets exchanged between the host and the target, e.g., 0x12 for L1 traces
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
42 * as defined in pktmux.h, for a total message length of 2 bytes.
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
43 *
266
cb833ff54d88 rvinterf: CLI2RVI_RESET_PACKET_RX command implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
44 * The CLI2RVI_RESET_PACKET_RX opcode resets the "interests" previously set
cb833ff54d88 rvinterf: CLI2RVI_RESET_PACKET_RX command implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
45 * with CLI2RVI_WANT_RVTRACE and/or CLI2RVI_WANT_MUXPROTO. It is a "blanket"
871
a5c8f48003cd rvinterf: client programs can now selectively stop receiving packets of a
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 266
diff changeset
46 * reset; the command message consists of just the opcode. The
a5c8f48003cd rvinterf: client programs can now selectively stop receiving packets of a
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 266
diff changeset
47 * CLI2RVI_DROP_MUXPROTO command is more specific and undoes the effect of a
a5c8f48003cd rvinterf: client programs can now selectively stop receiving packets of a
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 266
diff changeset
48 * previous CLI2RVI_WANT_MUXPROTO; it needs to be followed by one byte
a5c8f48003cd rvinterf: client programs can now selectively stop receiving packets of a
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 266
diff changeset
49 * identifying the RVTMUX protocol in question, just like CLI2RVI_WANT_MUXPROTO.
266
cb833ff54d88 rvinterf: CLI2RVI_RESET_PACKET_RX command implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 256
diff changeset
50 *
176
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
51 * The last two commands (CLI2RVI_PKT_TO_TARGET and CLI2RVI_RAWBYTES_TO_TARGET)
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
52 * cause data payload to be sent to the target serial port. Payload following
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
53 * CLI2RVI_PKT_TO_TARGET (must not exceed MAX_PKT_TO_TARGET) is sent with the
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
54 * proper packet encapsulation per TI; bytes following
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
55 * CLI2RVI_RAWBYTES_TO_TARGET are sent raw.
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
56 */
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
57
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
58 /*
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
59 * Each message in the rvinterf->client direction begins (after the length)
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
60 * with a message type byte as follows:
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
61 */
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
62
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
63 #define RVI2CLI_PKT_FROM_TARGET 0x00
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
64 #define RVI2CLI_LOCAL_CMD_RESP 0x01
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
65
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
66 /*
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
67 * Messages beginning with RVI2CLI_PKT_FROM_TARGET are packets received
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
68 * from the target GSM device; the byte following this type code is the
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
69 * first byte of the packet from the target, e.g., 0x11 for RV traces or
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
70 * 0x12 for L1 traces. Rvinterf will only start sending these messages
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
71 * to a client after that client has expressed interest in receiving
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
72 * target->host packets of a particular type.
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
73 *
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
74 * Messages beginning with RVI2CLI_LOCAL_CMD_RESP are generated locally
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
75 * by rvinterf itself as responses to commands, currently as responses to
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
76 * CLI2RVI_WANT_{RVTRACE,MUXPROTO}. The byte following the
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
77 * RVT2CLI_LOCAL_CMD_RESP type code is ASCII '+' or ASCII '-', indicating
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
78 * success or error, respectively. Any remaining bytes form a message
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
79 * for the user.
7f727aaf5cd4 rvinterf: beginning of server implementation
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
80 */