OSDN Git Service

Change radio related service names to slot1, slot2, slot3...
authorAmit Mahajan <amitmahajan@google.com>
Tue, 28 Mar 2017 18:17:55 +0000 (11:17 -0700)
committerAmit Mahajan <amitmahajan@google.com>
Tue, 4 Apr 2017 22:41:27 +0000 (15:41 -0700)
Test: Basic telephony sanity
Bug: 36570718
Merged-in: Ia3c3f7b3e2cedd05bafa2d335f9c04e831da0cf4
Change-Id: Ia3c3f7b3e2cedd05bafa2d335f9c04e831da0cf4

include/telephony/ril.h
libril/RilSapSocket.cpp
libril/ril.cpp
libril/ril_internal.h
libril/ril_service.cpp
libril/sap_service.cpp
rild/rild.c

index e7070d2..66f6494 100644 (file)
@@ -92,7 +92,7 @@ extern "C" {
 #define CDMA_NUMBER_INFO_BUFFER_LENGTH 81
 
 #define MAX_RILDS 3
-#define MAX_SOCKET_NAME_LENGTH 6
+#define MAX_SERVICE_NAME_LENGTH 6
 #define MAX_CLIENT_ID_LENGTH 2
 #define MAX_DEBUG_SOCKET_NAME_LENGTH 12
 #define MAX_QEMU_PIPE_NAME_LENGTH  11
index e153ef5..cf99773 100644 (file)
 
 static RilSapSocket::RilSapSocketList *head = NULL;
 
-void ril_sap_on_request_complete (
-        RIL_Token t, RIL_Errno e,
-        void *response, size_t responselen
-);
-
-void ril_sap_on_unsolicited_response (
-        int unsolResponse, const void *data,
-        size_t datalen
-);
 extern "C" void
 RIL_requestTimedCallback (RIL_TimedCallback callback, void *param,
         const struct timeval *relativeTime);
@@ -123,14 +114,14 @@ RilSapSocket *RilSapSocket::getSocketById(RIL_SOCKET_ID socketId) {
 void RilSapSocket::initSapSocket(const char *socketName,
         RIL_RadioFunctions *uimFuncs) {
 
-    if (strcmp(socketName, "sap_uim_socket1") == 0) {
+    if (strcmp(socketName, RIL1_SERVICE_NAME) == 0) {
         if(!SocketExists(socketName)) {
             addSocketToList(socketName, RIL_SOCKET_1, uimFuncs);
         }
     }
 
 #if (SIM_COUNT >= 2)
-    if (strcmp(socketName, "sap_uim_socket2") == 0) {
+    if (strcmp(socketName, RIL2_SERVICE_NAME) == 0) {
         if(!SocketExists(socketName)) {
             addSocketToList(socketName, RIL_SOCKET_2, uimFuncs);
         }
@@ -138,7 +129,7 @@ void RilSapSocket::initSapSocket(const char *socketName,
 #endif
 
 #if (SIM_COUNT >= 3)
-    if (strcmp(socketName, "sap_uim_socket3") == 0) {
+    if (strcmp(socketName, RIL3_SERVICE_NAME) == 0) {
         if(!SocketExists(socketName)) {
             addSocketToList(socketName, RIL_SOCKET_3, uimFuncs);
         }
@@ -146,7 +137,7 @@ void RilSapSocket::initSapSocket(const char *socketName,
 #endif
 
 #if (SIM_COUNT >= 4)
-    if (strcmp(socketName, "sap_uim_socket4") == 0) {
+    if (strcmp(socketName, RIL4_SERVICE_NAME) == 0) {
         if(!SocketExists(socketName)) {
             addSocketToList(socketName, RIL_SOCKET_4, uimFuncs);
         }
@@ -207,49 +198,6 @@ RilSapSocket::RilSapSocket(const char *socketName,
     }
 }
 
-#define BYTES_PER_LINE 16
-
-#define NIBBLE_TO_HEX(n) ({ \
-  uint8_t __n = (uint8_t) (n) & 0x0f; \
-  __nibble >= 10 ? 'A' + __n - 10: '0' + __n; \
-})
-
-#define HEX_HIGH(b) ({ \
-  uint8_t __b = (uint8_t) (b); \
-  uint8_t __nibble = (__b >> 4) & 0x0f; \
-  NIBBLE_TO_HEX(__nibble); \
-})
-
-#define HEX_LOW(b) ({ \
-  uint8_t __b = (uint8_t) (b); \
-  uint8_t __nibble = __b & 0x0f; \
-  NIBBLE_TO_HEX(__nibble); \
-})
-
-void log_hex(const char *who, const uint8_t *buffer, int length) {
-    char out[80];
-    int source = 0;
-    int dest = 0;
-    int dest_len = sizeof(out);
-    int per_line = 0;
-
-    do {
-        dest += snprintf(out, sizeof(out), "%8.8s [%8.8x] ", who, source);
-        for(; source < length && dest_len - dest > 3 && per_line < BYTES_PER_LINE; source++,
-        per_line ++) {
-            out[dest++] = HEX_HIGH(buffer[source]);
-            out[dest++] = HEX_LOW(buffer[source]);
-            out[dest++] = ' ';
-        }
-        if (dest < dest_len && (per_line == BYTES_PER_LINE || source >= length)) {
-            out[dest++] = 0;
-            per_line = 0;
-            dest = 0;
-            RLOGD("%s\n", out);
-        }
-    } while(source < length && dest < dest_len);
-}
-
 void RilSapSocket::dispatchRequest(MsgHeader *req) {
     // SapSocketRequest will be deallocated in onRequestComplete()
     SapSocketRequest* currRequest=(SapSocketRequest*)malloc(sizeof(SapSocketRequest));
index 5054cec..45a06c0 100644 (file)
@@ -105,7 +105,9 @@ extern "C" const char * radioStateToString(RIL_RadioState);
 extern "C" const char * rilSocketIdToString(RIL_SOCKET_ID socket_id);
 
 extern "C"
-char rild[MAX_SOCKET_NAME_LENGTH] = SOCKET_NAME_RIL;
+char ril_service_name_base[MAX_SERVICE_NAME_LENGTH] = RIL_SERVICE_NAME_BASE;
+extern "C"
+char ril_service_name[MAX_SERVICE_NAME_LENGTH] = RIL1_SERVICE_NAME;
 /*******************************************************************/
 
 RIL_RadioFunctions s_callbacks = {0, NULL, NULL, NULL, NULL, NULL};
@@ -211,13 +213,13 @@ static UnsolResponseInfo s_unsolResponses[] = {
 #include "ril_unsol_commands.h"
 };
 
-char * RIL_getRilSocketName() {
-    return rild;
+char * RIL_getServiceName() {
+    return ril_service_name;
 }
 
 extern "C"
-void RIL_setRilSocketName(const char * s) {
-    strncpy(rild, s, MAX_SOCKET_NAME_LENGTH);
+void RIL_setServiceName(const char * s) {
+    strncpy(ril_service_name, s, MAX_SERVICE_NAME_LENGTH);
 }
 
 RequestInfo *
@@ -272,34 +274,6 @@ addRequestToList(int serial, int slotId, int request) {
     return pRI;
 }
 
-static int
-blockingWrite(int fd, const void *buffer, size_t len) {
-    size_t writeOffset = 0;
-    const uint8_t *toWrite;
-
-    toWrite = (const uint8_t *)buffer;
-
-    while (writeOffset < len) {
-        ssize_t written;
-        do {
-            written = write (fd, toWrite + writeOffset,
-                                len - writeOffset);
-        } while (written < 0 && ((errno == EINTR) || (errno == EAGAIN)));
-
-        if (written >= 0) {
-            writeOffset += written;
-        } else {   // written < 0
-            RLOGE ("RIL Response: unexpected error on write errno:%d", errno);
-            close(fd);
-            return -1;
-        }
-    }
-#if VDBG
-    RLOGE("RIL Response bytes written:%d", writeOffset);
-#endif
-    return 0;
-}
-
 static void triggerEvLoop() {
     int ret;
     if (!pthread_equal(pthread_self(), s_tid_dispatch)) {
@@ -333,50 +307,6 @@ static void processWakeupCallback(int fd, short flags, void *param) {
     } while (ret > 0 || (ret < 0 && errno == EINTR));
 }
 
-static void onCommandsSocketClosed(RIL_SOCKET_ID socket_id) {
-    int ret;
-    RequestInfo *p_cur;
-    /* Hook for current context
-       pendingRequestsMutextHook refer to &s_pendingRequestsMutex */
-    pthread_mutex_t * pendingRequestsMutexHook = &s_pendingRequestsMutex;
-    /* pendingRequestsHook refer to &s_pendingRequests */
-    RequestInfo **    pendingRequestsHook = &s_pendingRequests;
-
-#if (SIM_COUNT >= 2)
-    if (socket_id == RIL_SOCKET_2) {
-        pendingRequestsMutexHook = &s_pendingRequestsMutex_socket2;
-        pendingRequestsHook = &s_pendingRequests_socket2;
-    }
-#if (SIM_COUNT >= 3)
-    else if (socket_id == RIL_SOCKET_3) {
-        pendingRequestsMutexHook = &s_pendingRequestsMutex_socket3;
-        pendingRequestsHook = &s_pendingRequests_socket3;
-    }
-#endif
-#if (SIM_COUNT >= 4)
-    else if (socket_id == RIL_SOCKET_4) {
-        pendingRequestsMutexHook = &s_pendingRequestsMutex_socket4;
-        pendingRequestsHook = &s_pendingRequests_socket4;
-    }
-#endif
-#endif
-    /* mark pending requests as "cancelled" so we dont report responses */
-    ret = pthread_mutex_lock(pendingRequestsMutexHook);
-    assert (ret == 0);
-
-    p_cur = *pendingRequestsHook;
-
-    for (p_cur = *pendingRequestsHook
-            ; p_cur != NULL
-            ; p_cur  = p_cur->p_next
-    ) {
-        p_cur->cancelled = 1;
-    }
-
-    ret = pthread_mutex_unlock(pendingRequestsMutexHook);
-    assert (ret == 0);
-}
-
 static void resendLastNITZTimeData(RIL_SOCKET_ID socket_id) {
     if (s_lastNITZTimeData != NULL) {
         int responseType = (s_callbacks.version >= 13)
@@ -564,18 +494,18 @@ RIL_register_socket (RIL_RadioFunctions *(*Init)(const struct RIL_Env *, int, ch
 
         switch(socketType) {
             case RIL_SAP_SOCKET:
-                RilSapSocket::initSapSocket("sap_uim_socket1", UimFuncs);
+                RilSapSocket::initSapSocket(RIL1_SERVICE_NAME, UimFuncs);
 
 #if (SIM_COUNT >= 2)
-                RilSapSocket::initSapSocket("sap_uim_socket2", UimFuncs);
+                RilSapSocket::initSapSocket(RIL2_SERVICE_NAME, UimFuncs);
 #endif
 
 #if (SIM_COUNT >= 3)
-                RilSapSocket::initSapSocket("sap_uim_socket3", UimFuncs);
+                RilSapSocket::initSapSocket(RIL3_SERVICE_NAME, UimFuncs);
 #endif
 
 #if (SIM_COUNT >= 4)
-                RilSapSocket::initSapSocket("sap_uim_socket4", UimFuncs);
+                RilSapSocket::initSapSocket(RIL4_SERVICE_NAME, UimFuncs);
 #endif
                 break;
             default:;
@@ -1320,12 +1250,4 @@ rilSocketIdToString(RIL_SOCKET_ID socket_id)
     }
 }
 
-} /* namespace android */
-
-void rilEventAddWakeup_helper(struct ril_event *ev) {
-    android::rilEventAddWakeup(ev);
-}
-
-int blockingWrite_helper(int fd, void *buffer, size_t len) {
-    return android::blockingWrite(fd, buffer, len);
-}
+} /* namespace android */
\ No newline at end of file
index 68d3863..646d9b7 100644 (file)
 
 namespace android {
 
-#define SOCKET_NAME_RIL "rild"
-#define SOCKET2_NAME_RIL "rild2"
-#define SOCKET3_NAME_RIL "rild3"
-#define SOCKET4_NAME_RIL "rild4"
-
-#define OEM_HOOK_SERVICE_NAME "oemhook"
-#define OEM_HOOK2_SERVICE_NAME "oemhook2"
-#define OEM_HOOK3_SERVICE_NAME "oemhook3"
-#define OEM_HOOK4_SERVICE_NAME "oemhook4"
+#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
@@ -93,7 +89,7 @@ typedef struct CommandInfo {
 
 RequestInfo * addRequestToList(int serial, int slotId, int request);
 
-char * RIL_getRilSocketName();
+char * RIL_getServiceName();
 
 void releaseWakeLock();
 
index 306d7cb..6618ddb 100644 (file)
@@ -7931,26 +7931,13 @@ void radio::registerService(RIL_RadioFunctions *callbacks, CommandInfo *commands
     using namespace android::hardware;
     int simCount = 1;
     const char *serviceNames[] = {
-            android::RIL_getRilSocketName()
+            android::RIL_getServiceName()
             #if (SIM_COUNT >= 2)
-            , SOCKET2_NAME_RIL
+            , RIL2_SERVICE_NAME
             #if (SIM_COUNT >= 3)
-            , SOCKET3_NAME_RIL
+            , RIL3_SERVICE_NAME
             #if (SIM_COUNT >= 4)
-            , SOCKET4_NAME_RIL
-            #endif
-            #endif
-            #endif
-            };
-
-    const char *oemHookServiceNames[] = {
-            OEM_HOOK_SERVICE_NAME
-            #if (SIM_COUNT >= 2)
-            , OEM_HOOK2_SERVICE_NAME
-            #if (SIM_COUNT >= 3)
-            , OEM_HOOK3_SERVICE_NAME
-            #if (SIM_COUNT >= 4)
-            , OEM_HOOK4_SERVICE_NAME
+            , RIL4_SERVICE_NAME
             #endif
             #endif
             #endif
@@ -7972,7 +7959,7 @@ void radio::registerService(RIL_RadioFunctions *callbacks, CommandInfo *commands
         oemHookService[i]->mSlotId = i;
         RLOGD("registerService: starting IRadio %s", serviceNames[i]);
         android::status_t status = radioService[i]->registerAsService(serviceNames[i]);
-        status = oemHookService[i]->registerAsService(oemHookServiceNames[i]);
+        status = oemHookService[i]->registerAsService(serviceNames[i]);
 
         ret = pthread_rwlock_unlock(radioServiceRwlockPtr);
         assert(ret == 0);
index 29c2f38..7bed05a 100644 (file)
@@ -919,13 +919,13 @@ void sap::registerService(RIL_RadioFunctions *callbacks) {
     using namespace android::hardware;
     int simCount = 1;
     const char *serviceNames[] = {
-        "sap_uim_socket1"
+        android::RIL_getServiceName()
         #if (SIM_COUNT >= 2)
-        , "sap_uim_socket2"
+        , RIL2_SERVICE_NAME
         #if (SIM_COUNT >= 3)
-        , "sap_uim_socket3"
+        , RIL3_SERVICE_NAME
         #if (SIM_COUNT >= 4)
-        , "sap_uim_socket4"
+        , RIL4_SERVICE_NAME
         #endif
         #endif
         #endif
index 0ce9eaf..4c28fc0 100644 (file)
@@ -46,7 +46,8 @@ static void usage(const char *argv0) {
     exit(EXIT_FAILURE);
 }
 
-extern char rild[MAX_SOCKET_NAME_LENGTH];
+extern char ril_service_name_base[MAX_SERVICE_NAME_LENGTH];
+extern char ril_service_name[MAX_SERVICE_NAME_LENGTH];
 
 extern void RIL_register (const RIL_RadioFunctions *callbacks);
 extern void rilc_thread_pool ();
@@ -59,7 +60,7 @@ extern void RIL_onRequestComplete(RIL_Token t, RIL_Errno e,
 
 extern void RIL_onRequestAck(RIL_Token t);
 
-extern void RIL_setRilSocketName(char *);
+extern void RIL_setServiceName(char *);
 
 #if defined(ANDROID_MULTI_SIM)
 extern void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
@@ -147,8 +148,9 @@ int main(int argc, char **argv) {
         exit(0);
     }
     if (strncmp(clientId, "0", MAX_CLIENT_ID_LENGTH)) {
-        strlcat(rild, clientId, MAX_SOCKET_NAME_LENGTH);
-        RIL_setRilSocketName(rild);
+        strncpy(ril_service_name, ril_service_name_base, MAX_SERVICE_NAME_LENGTH);
+        strncat(ril_service_name, clientId, MAX_SERVICE_NAME_LENGTH);
+        RIL_setServiceName(ril_service_name);
     }
 
     if (rilLibPath == NULL) {