You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.9 KiB
99 lines
2.9 KiB
7 years ago
|
/*
|
||
|
* Copyright (c) 2016 The Android Open Source Project
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
* you may not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*/
|
||
|
|
||
|
#ifndef ANDROID_RIL_INTERNAL_H
|
||
|
#define ANDROID_RIL_INTERNAL_H
|
||
|
|
||
|
namespace android {
|
||
|
|
||
|
#define RIL_SERVICE_NAME_BASE "slot"
|
||
|
#define RIL1_SERVICE_NAME "slot1"
|
||
|
#define RIL2_SERVICE_NAME "slot2"
|
||
|
#define RIL3_SERVICE_NAME "slot3"
|
||
|
#define RIL4_SERVICE_NAME "slot4"
|
||
|
|
||
|
/* Constants for response types */
|
||
|
#define RESPONSE_SOLICITED 0
|
||
|
#define RESPONSE_UNSOLICITED 1
|
||
|
#define RESPONSE_SOLICITED_ACK 2
|
||
|
#define RESPONSE_SOLICITED_ACK_EXP 3
|
||
|
#define RESPONSE_UNSOLICITED_ACK_EXP 4
|
||
|
|
||
|
// Enable verbose logging
|
||
|
#define VDBG 0
|
||
|
|
||
|
#define MIN(a,b) ((a)<(b) ? (a) : (b))
|
||
|
|
||
|
// Enable RILC log
|
||
|
#define RILC_LOG 0
|
||
|
|
||
|
#if RILC_LOG
|
||
|
#define startRequest sprintf(printBuf, "(")
|
||
|
#define closeRequest sprintf(printBuf, "%s)", printBuf)
|
||
|
#define printRequest(token, req) \
|
||
|
RLOGD("[%04d]> %s %s", token, requestToString(req), printBuf)
|
||
|
|
||
|
#define startResponse sprintf(printBuf, "%s {", printBuf)
|
||
|
#define closeResponse sprintf(printBuf, "%s}", printBuf)
|
||
|
#define printResponse RLOGD("%s", printBuf)
|
||
|
|
||
|
#define clearPrintBuf printBuf[0] = 0
|
||
|
#define removeLastChar printBuf[strlen(printBuf)-1] = 0
|
||
|
#define appendPrintBuf(x...) snprintf(printBuf, PRINTBUF_SIZE, x)
|
||
|
#else
|
||
|
#define startRequest
|
||
|
#define closeRequest
|
||
|
#define printRequest(token, req)
|
||
|
#define startResponse
|
||
|
#define closeResponse
|
||
|
#define printResponse
|
||
|
#define clearPrintBuf
|
||
|
#define removeLastChar
|
||
|
#define appendPrintBuf(x...)
|
||
|
#endif
|
||
|
|
||
|
typedef struct CommandInfo CommandInfo;
|
||
|
|
||
|
extern "C" const char * requestToString(int request);
|
||
|
|
||
|
typedef struct RequestInfo {
|
||
|
int32_t token; //this is not RIL_Token
|
||
|
CommandInfo *pCI;
|
||
|
struct RequestInfo *p_next;
|
||
|
char cancelled;
|
||
|
char local; // responses to local commands do not go back to command process
|
||
|
RIL_SOCKET_ID socket_id;
|
||
|
int wasAckSent; // Indicates whether an ack was sent earlier
|
||
|
} RequestInfo;
|
||
|
|
||
|
typedef struct CommandInfo {
|
||
|
int requestNumber;
|
||
|
int(*responseFunction) (int slotId, int responseType, int token,
|
||
|
RIL_Errno e, void *response, size_t responselen);
|
||
|
} CommandInfo;
|
||
|
|
||
|
RequestInfo * addRequestToList(int serial, int slotId, int request);
|
||
|
|
||
|
char * RIL_getServiceName();
|
||
|
|
||
|
void releaseWakeLock();
|
||
|
|
||
|
void onNewCommandConnect(RIL_SOCKET_ID socket_id);
|
||
|
|
||
|
} // namespace android
|
||
|
|
||
|
#endif //ANDROID_RIL_INTERNAL_H
|