xref: /aosp_15_r20/hardware/ril/libril/ril_internal.h (revision 062a843b36e31144e02d312b6b2de34642e6750e)
1*062a843bSAndroid Build Coastguard Worker /*
2*062a843bSAndroid Build Coastguard Worker  * Copyright (c) 2016 The Android Open Source Project
3*062a843bSAndroid Build Coastguard Worker  *
4*062a843bSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*062a843bSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*062a843bSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*062a843bSAndroid Build Coastguard Worker  *
8*062a843bSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*062a843bSAndroid Build Coastguard Worker  *
10*062a843bSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*062a843bSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*062a843bSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*062a843bSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*062a843bSAndroid Build Coastguard Worker  * limitations under the License.
15*062a843bSAndroid Build Coastguard Worker  */
16*062a843bSAndroid Build Coastguard Worker 
17*062a843bSAndroid Build Coastguard Worker #ifndef ANDROID_RIL_INTERNAL_H
18*062a843bSAndroid Build Coastguard Worker #define ANDROID_RIL_INTERNAL_H
19*062a843bSAndroid Build Coastguard Worker 
20*062a843bSAndroid Build Coastguard Worker namespace android {
21*062a843bSAndroid Build Coastguard Worker 
22*062a843bSAndroid Build Coastguard Worker #define RIL_SERVICE_NAME_BASE "slot"
23*062a843bSAndroid Build Coastguard Worker #define RIL1_SERVICE_NAME "slot1"
24*062a843bSAndroid Build Coastguard Worker #define RIL2_SERVICE_NAME "slot2"
25*062a843bSAndroid Build Coastguard Worker #define RIL3_SERVICE_NAME "slot3"
26*062a843bSAndroid Build Coastguard Worker #define RIL4_SERVICE_NAME "slot4"
27*062a843bSAndroid Build Coastguard Worker 
28*062a843bSAndroid Build Coastguard Worker /* Constants for response types */
29*062a843bSAndroid Build Coastguard Worker #define RESPONSE_SOLICITED 0
30*062a843bSAndroid Build Coastguard Worker #define RESPONSE_UNSOLICITED 1
31*062a843bSAndroid Build Coastguard Worker #define RESPONSE_SOLICITED_ACK 2
32*062a843bSAndroid Build Coastguard Worker #define RESPONSE_SOLICITED_ACK_EXP 3
33*062a843bSAndroid Build Coastguard Worker #define RESPONSE_UNSOLICITED_ACK_EXP 4
34*062a843bSAndroid Build Coastguard Worker 
35*062a843bSAndroid Build Coastguard Worker // Enable verbose logging
36*062a843bSAndroid Build Coastguard Worker #define VDBG 0
37*062a843bSAndroid Build Coastguard Worker 
38*062a843bSAndroid Build Coastguard Worker #define MIN(a,b) ((a)<(b) ? (a) : (b))
39*062a843bSAndroid Build Coastguard Worker 
40*062a843bSAndroid Build Coastguard Worker // Enable RILC log
41*062a843bSAndroid Build Coastguard Worker #define RILC_LOG 0
42*062a843bSAndroid Build Coastguard Worker 
43*062a843bSAndroid Build Coastguard Worker #if RILC_LOG
44*062a843bSAndroid Build Coastguard Worker     #define startRequest           sprintf(printBuf, "(")
45*062a843bSAndroid Build Coastguard Worker     #define closeRequest           sprintf(printBuf, "%s)", printBuf)
46*062a843bSAndroid Build Coastguard Worker     #define printRequest(token, req)           \
47*062a843bSAndroid Build Coastguard Worker             RLOGD("[%04d]> %s %s", token, requestToString(req), printBuf)
48*062a843bSAndroid Build Coastguard Worker 
49*062a843bSAndroid Build Coastguard Worker     #define startResponse           sprintf(printBuf, "%s {", printBuf)
50*062a843bSAndroid Build Coastguard Worker     #define closeResponse           sprintf(printBuf, "%s}", printBuf)
51*062a843bSAndroid Build Coastguard Worker     #define printResponse           RLOGD("%s", printBuf)
52*062a843bSAndroid Build Coastguard Worker 
53*062a843bSAndroid Build Coastguard Worker     #define clearPrintBuf           printBuf[0] = 0
54*062a843bSAndroid Build Coastguard Worker     #define removeLastChar          printBuf[strlen(printBuf)-1] = 0
55*062a843bSAndroid Build Coastguard Worker     #define appendPrintBuf(x...)    snprintf(printBuf, PRINTBUF_SIZE, x)
56*062a843bSAndroid Build Coastguard Worker #else
57*062a843bSAndroid Build Coastguard Worker     #define startRequest
58*062a843bSAndroid Build Coastguard Worker     #define closeRequest
59*062a843bSAndroid Build Coastguard Worker     #define printRequest(token, req)
60*062a843bSAndroid Build Coastguard Worker     #define startResponse
61*062a843bSAndroid Build Coastguard Worker     #define closeResponse
62*062a843bSAndroid Build Coastguard Worker     #define printResponse
63*062a843bSAndroid Build Coastguard Worker     #define clearPrintBuf
64*062a843bSAndroid Build Coastguard Worker     #define removeLastChar
65*062a843bSAndroid Build Coastguard Worker     #define appendPrintBuf(x...)
66*062a843bSAndroid Build Coastguard Worker #endif
67*062a843bSAndroid Build Coastguard Worker 
68*062a843bSAndroid Build Coastguard Worker typedef struct CommandInfo CommandInfo;
69*062a843bSAndroid Build Coastguard Worker 
70*062a843bSAndroid Build Coastguard Worker extern "C" const char * requestToString(int request);
71*062a843bSAndroid Build Coastguard Worker 
72*062a843bSAndroid Build Coastguard Worker typedef struct RequestInfo {
73*062a843bSAndroid Build Coastguard Worker     int32_t token;      //this is not RIL_Token
74*062a843bSAndroid Build Coastguard Worker     CommandInfo *pCI;
75*062a843bSAndroid Build Coastguard Worker     struct RequestInfo *p_next;
76*062a843bSAndroid Build Coastguard Worker     char cancelled;
77*062a843bSAndroid Build Coastguard Worker     char local;         // responses to local commands do not go back to command process
78*062a843bSAndroid Build Coastguard Worker     RIL_SOCKET_ID socket_id;
79*062a843bSAndroid Build Coastguard Worker     int wasAckSent;    // Indicates whether an ack was sent earlier
80*062a843bSAndroid Build Coastguard Worker } RequestInfo;
81*062a843bSAndroid Build Coastguard Worker 
82*062a843bSAndroid Build Coastguard Worker typedef struct CommandInfo {
83*062a843bSAndroid Build Coastguard Worker     int requestNumber;
84*062a843bSAndroid Build Coastguard Worker     int(*responseFunction) (int slotId, int responseType, int token,
85*062a843bSAndroid Build Coastguard Worker             RIL_Errno e, void *response, size_t responselen);
86*062a843bSAndroid Build Coastguard Worker } CommandInfo;
87*062a843bSAndroid Build Coastguard Worker 
88*062a843bSAndroid Build Coastguard Worker RequestInfo * addRequestToList(int serial, int slotId, int request);
89*062a843bSAndroid Build Coastguard Worker 
90*062a843bSAndroid Build Coastguard Worker char * RIL_getServiceName();
91*062a843bSAndroid Build Coastguard Worker 
92*062a843bSAndroid Build Coastguard Worker void releaseWakeLock();
93*062a843bSAndroid Build Coastguard Worker 
94*062a843bSAndroid Build Coastguard Worker void onNewCommandConnect(RIL_SOCKET_ID socket_id);
95*062a843bSAndroid Build Coastguard Worker 
96*062a843bSAndroid Build Coastguard Worker }   // namespace android
97*062a843bSAndroid Build Coastguard Worker 
98*062a843bSAndroid Build Coastguard Worker #endif //ANDROID_RIL_INTERNAL_H
99