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