diff options
-rw-r--r-- | CleanSpec.mk | 2 | ||||
-rw-r--r-- | include/libril/ril_ex.h | 2 | ||||
-rw-r--r-- | libril/Android.mk | 2 | ||||
-rw-r--r-- | libril/RilSapSocket.h | 16 | ||||
-rw-r--r-- | libril/ril.cpp | 26 | ||||
-rw-r--r-- | libril/ril_service.cpp | 4 | ||||
-rw-r--r-- | libril/sap_service.cpp | 1 | ||||
-rw-r--r-- | librilutils/Android.mk | 7 | ||||
-rw-r--r-- | reference-ril/Android.mk | 5 | ||||
-rw-r--r-- | reference-ril/reference-ril.c | 29 | ||||
-rw-r--r-- | rild/Android.mk | 1 |
11 files changed, 31 insertions, 64 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk index ffa18d5..cca8c69 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -52,3 +52,5 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/rild) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/rild.rc) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libril.so) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/libril.so) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/librilutils.so) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/librilutils.so) diff --git a/include/libril/ril_ex.h b/include/libril/ril_ex.h index 251e8ff..757bcf9 100644 --- a/include/libril/ril_ex.h +++ b/include/libril/ril_ex.h @@ -22,6 +22,8 @@ #define NUM_ELEMS_SOCKET(a) (sizeof (a) / sizeof (a)[0]) +struct ril_event; + void rilEventAddWakeup_helper(struct ril_event *ev); int blockingWrite_helper(int fd, void* data, size_t len); diff --git a/libril/Android.mk b/libril/Android.mk index 0016839..5264a81 100644 --- a/libril/Android.mk +++ b/libril/Android.mk @@ -28,7 +28,7 @@ LOCAL_SHARED_LIBRARIES := \ LOCAL_STATIC_LIBRARIES := \ libprotobuf-c-nano-enable_malloc \ -LOCAL_CFLAGS += -Wno-unused-parameter +LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter -Werror ifeq ($(SIM_COUNT), 2) LOCAL_CFLAGS += -DANDROID_MULTI_SIM -DDSDA_RILD1 diff --git a/libril/RilSapSocket.h b/libril/RilSapSocket.h index 1f6163e..8c8c4bc 100644 --- a/libril/RilSapSocket.h +++ b/libril/RilSapSocket.h @@ -36,22 +36,6 @@ */ class RilSapSocket : public RilSocket { /** - * Function pointer to the ril initialization funtion. - * - * @param Ril environment variable with place request and - * response handlers and timeout handler. - * - * @param Number of arguements for the initialization function. - * - * @param Arguements to the initialization function used to - * generate instance id of the ril daemon. - * - * @return Radio functions with handlers for onRequest, onStateRequest, - * supports, onCancel and getVersion. - */ - RIL_RadioFunctions *(*UimInit)(const struct RIL_Env *, int argc, char **argv); - - /** * Place holder for the radio functions returned by the initialization * function. Currenty only onRequest handler is being used. */ diff --git a/libril/ril.cpp b/libril/ril.cpp index f07bd5a..6d375ca 100644 --- a/libril/ril.cpp +++ b/libril/ril.cpp @@ -114,12 +114,8 @@ RIL_RadioFunctions s_callbacks = {0, NULL, NULL, NULL, NULL, NULL}; static int s_registerCalled = 0; static pthread_t s_tid_dispatch; -static pthread_t s_tid_reader; static int s_started = 0; -static int s_fdDebug = -1; -static int s_fdDebug_socket2 = -1; - static int s_fdWakeupRead; static int s_fdWakeupWrite; @@ -128,44 +124,30 @@ int s_wakelock_count = 0; static struct ril_event s_wakeupfd_event; static pthread_mutex_t s_pendingRequestsMutex = PTHREAD_MUTEX_INITIALIZER; -static pthread_mutex_t s_writeMutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t s_wakeLockCountMutex = PTHREAD_MUTEX_INITIALIZER; static RequestInfo *s_pendingRequests = NULL; #if (SIM_COUNT >= 2) static pthread_mutex_t s_pendingRequestsMutex_socket2 = PTHREAD_MUTEX_INITIALIZER; -static pthread_mutex_t s_writeMutex_socket2 = PTHREAD_MUTEX_INITIALIZER; static RequestInfo *s_pendingRequests_socket2 = NULL; #endif #if (SIM_COUNT >= 3) static pthread_mutex_t s_pendingRequestsMutex_socket3 = PTHREAD_MUTEX_INITIALIZER; -static pthread_mutex_t s_writeMutex_socket3 = PTHREAD_MUTEX_INITIALIZER; static RequestInfo *s_pendingRequests_socket3 = NULL; #endif #if (SIM_COUNT >= 4) static pthread_mutex_t s_pendingRequestsMutex_socket4 = PTHREAD_MUTEX_INITIALIZER; -static pthread_mutex_t s_writeMutex_socket4 = PTHREAD_MUTEX_INITIALIZER; static RequestInfo *s_pendingRequests_socket4 = NULL; #endif -static struct ril_event s_wake_timeout_event; -static struct ril_event s_debug_event; - - static const struct timeval TIMEVAL_WAKE_TIMEOUT = {ANDROID_WAKE_LOCK_SECS,ANDROID_WAKE_LOCK_USECS}; static pthread_mutex_t s_startupMutex = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t s_startupCond = PTHREAD_COND_INITIALIZER; -static pthread_mutex_t s_dispatchMutex = PTHREAD_MUTEX_INITIALIZER; -static pthread_cond_t s_dispatchCond = PTHREAD_COND_INITIALIZER; - -static RequestInfo *s_toDispatchHead = NULL; -static RequestInfo *s_toDispatchTail = NULL; - static UserCallbackInfo *s_last_wake_timeout_info = NULL; static void *s_lastNITZTimeData = NULL; @@ -435,9 +417,6 @@ extern "C" void RIL_setcallbacks (const RIL_RadioFunctions *callbacks) { extern "C" void RIL_register (const RIL_RadioFunctions *callbacks) { - int ret; - int flags; - RLOGI("SIM_COUNT: %d", SIM_COUNT); if (callbacks == NULL) { @@ -573,9 +552,7 @@ checkAndDequeueRequestInfoIfAck(struct RequestInfo *pRI, bool isAck) { extern "C" void RIL_onRequestAck(RIL_Token t) { RequestInfo *pRI; - int ret; - size_t errorOffset; RIL_SOCKET_ID socket_id = RIL_SOCKET_1; pRI = (RequestInfo *)t; @@ -609,7 +586,6 @@ extern "C" void RIL_onRequestComplete(RIL_Token t, RIL_Errno e, void *response, size_t responselen) { RequestInfo *pRI; int ret; - size_t errorOffset; RIL_SOCKET_ID socket_id = RIL_SOCKET_1; pRI = (RequestInfo *)t; @@ -955,7 +931,7 @@ failCauseToString(RIL_Errno e) { case RIL_E_SIM_FULL: return "E_SIM_FULL"; case RIL_E_NETWORK_REJECT: return "E_NETWORK_REJECT"; case RIL_E_OPERATION_NOT_ALLOWED: return "E_OPERATION_NOT_ALLOWED"; - case RIL_E_EMPTY_RECORD: "E_EMPTY_RECORD"; + case RIL_E_EMPTY_RECORD: return "E_EMPTY_RECORD"; case RIL_E_INVALID_SMS_FORMAT: return "E_INVALID_SMS_FORMAT"; case RIL_E_ENCODING_ERR: return "E_ENCODING_ERR"; case RIL_E_INVALID_SMSC_ADDRESS: return "E_INVALID_SMSC_ADDRESS"; diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp index 06868b2..26aa4e1 100644 --- a/libril/ril_service.cpp +++ b/libril/ril_service.cpp @@ -1485,7 +1485,6 @@ Return<void> RadioImpl::writeSmsToSim(int32_t serial, const SmsWriteArgs& smsWri RIL_SMS_WriteArgs args; args.status = (int) smsWriteArgs.status; - int len; if (!copyHidlStringToRil(&args.pdu, smsWriteArgs.pdu, pRI)) { return Void(); } @@ -2346,7 +2345,6 @@ Return<void> RadioImpl::requestIccSimAuthentication(int32_t serial, int32_t auth pf.authContext = authContext; - int len; if (!copyHidlStringToRil(&pf.authData, authData, pRI)) { return Void(); } @@ -4277,7 +4275,6 @@ int radio::getNetworkSelectionModeResponse(int slotId, RadioResponseInfo responseInfo = {}; populateResponseInfo(responseInfo, serial, responseType, e); bool manual = false; - int serviceClass; if (response == NULL || responseLen != sizeof(int)) { RLOGE("getNetworkSelectionModeResponse Invalid response: NULL"); if (e == RIL_E_SUCCESS) responseInfo.error = RadioError::INVALID_RESPONSE; @@ -4511,7 +4508,6 @@ int radio::getMuteResponse(int slotId, RadioResponseInfo responseInfo = {}; populateResponseInfo(responseInfo, serial, responseType, e); bool enable = false; - int serviceClass; if (response == NULL || responseLen != sizeof(int)) { RLOGE("getMuteResponse Invalid response: NULL"); if (e == RIL_E_SUCCESS) responseInfo.error = RadioError::INVALID_RESPONSE; diff --git a/libril/sap_service.cpp b/libril/sap_service.cpp index 7bed05a..254d000 100644 --- a/libril/sap_service.cpp +++ b/libril/sap_service.cpp @@ -532,7 +532,6 @@ Return<void> SapImpl::setTransferProtocolReq(int32_t token, SapTransferProtocol void *sapDecodeMessage(MsgId msgId, MsgType msgType, uint8_t *payloadPtr, size_t payloadLen) { void *responsePtr = NULL; - bool decodeStatus = false; pb_istream_t stream; /* Create the stream */ diff --git a/librilutils/Android.mk b/librilutils/Android.mk index 455f9bc..275fea9 100644 --- a/librilutils/Android.mk +++ b/librilutils/Android.mk @@ -14,9 +14,12 @@ LOCAL_C_INCLUDES += \ LOCAL_EXPORT_C_INCLUDE_DIRS := \ $(LOCAL_PATH)/../include +LOCAL_CFLAGS := -Wall -Wextra -Werror + LOCAL_PROTOC_OPTIMIZE_TYPE := nanopb-c-enable_malloc LOCAL_MODULE:= librilutils +LOCAL_VENDOR_MODULE:= true include $(BUILD_SHARED_LIBRARY) @@ -36,9 +39,12 @@ LOCAL_C_INCLUDES += \ LOCAL_EXPORT_C_INCLUDE_DIRS := \ $(LOCAL_PATH)/../include +LOCAL_CFLAGS : -Wall -Wextra -Werror + LOCAL_PROTOC_OPTIMIZE_TYPE := nanopb-c-enable_malloc LOCAL_MODULE:= librilutils_static +LOCAL_VENDOR_MODULE:= true include $(BUILD_STATIC_LIBRARY) @@ -49,6 +55,7 @@ include $(CLEAR_VARS) src_proto := $(LOCAL_PATH) LOCAL_MODULE := sap-api-java-static LOCAL_SRC_FILES := proto/sap-api.proto +LOCAL_CFLAGS := -Wall -Wextra -Werror LOCAL_PROTOC_OPTIMIZE_TYPE := micro include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/reference-ril/Android.mk b/reference-ril/Android.mk index d9908c1..6afdbd3 100644 --- a/reference-ril/Android.mk +++ b/reference-ril/Android.mk @@ -14,8 +14,11 @@ LOCAL_SRC_FILES:= \ LOCAL_SHARED_LIBRARIES := \ liblog libcutils libutils libril librilutils +LOCAL_STATIC_LIBRARIES := libqemu_pipe libbase + # for asprinf LOCAL_CFLAGS := -D_GNU_SOURCE +LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-variable -Wno-unused-function -Werror LOCAL_C_INCLUDES := @@ -31,6 +34,8 @@ ifeq ($(TARGET_DEVICE),dream) LOCAL_CFLAGS += -DPOLL_CALL_STATE -DUSE_QMI endif +LOCAL_VENDOR_MODULE:= true + ifeq (foo,foo) #build shared library LOCAL_SHARED_LIBRARIES += \ diff --git a/reference-ril/reference-ril.c b/reference-ril/reference-ril.c index 22f93c5..f451fb0 100644 --- a/reference-ril/reference-ril.c +++ b/reference-ril/reference-ril.c @@ -37,7 +37,7 @@ #include <cutils/sockets.h> #include <sys/system_properties.h> #include <termios.h> -#include <system/qemu_pipe.h> +#include <qemu_pipe.h> #include "ril.h" @@ -802,9 +802,11 @@ static void requestGetCurrentCalls(void *data __unused, size_t datalen __unused, } return; +#ifdef WORKAROUND_ERRONEOUS_ANSWER error: RIL_onRequestComplete(t, RIL_E_GENERIC_FAILURE, NULL, 0); at_response_free(p_response); +#endif } static void requestDial(void *data, size_t datalen __unused, RIL_Token t) @@ -887,9 +889,13 @@ static void requestSignalStrength(void *data __unused, size_t datalen __unused, ATResponse *p_response = NULL; int err; char *line; - int count =0; - int numofElements=sizeof(RIL_SignalStrength_v6)/sizeof(int); - int response[numofElements]; + int count = 0; + // Accept a response that is at least v6, and up to v10 + int minNumOfElements=sizeof(RIL_SignalStrength_v6)/sizeof(int); + int maxNumOfElements=sizeof(RIL_SignalStrength_v10)/sizeof(int); + int response[maxNumOfElements]; + + memset(response, 0, sizeof(response)); err = at_send_command_singleline("AT+CSQ", "+CSQ:", &p_response); @@ -903,9 +909,9 @@ static void requestSignalStrength(void *data __unused, size_t datalen __unused, err = at_tok_start(&line); if (err < 0) goto error; - for (count =0; count < numofElements; count ++) { + for (count = 0; count < maxNumOfElements; count++) { err = at_tok_nextint(&line, &(response[count])); - if (err < 0) goto error; + if (err < 0 && count < minNumOfElements) goto error; } RIL_onRequestComplete(t, RIL_E_SUCCESS, response, sizeof(response)); @@ -1074,12 +1080,6 @@ static void requestCdmaDeviceIdentity(int request __unused, void *data __unused, RIL_onRequestComplete(t, RIL_E_SUCCESS, responseStr, count*sizeof(char*)); at_response_free(p_response); - - return; -error: - RLOGE("requestCdmaDeviceIdentity must never return an error when radio is on"); - at_response_free(p_response); - RIL_onRequestComplete(t, RIL_E_GENERIC_FAILURE, NULL, 0); } static void requestCdmaGetSubscriptionSource(int request __unused, void *data, @@ -1168,11 +1168,6 @@ static void requestCdmaSubscription(int request __unused, void *data __unused, responseStr[3] = "8587777777"; // MIN responseStr[4] = "1"; // PRL Version RIL_onRequestComplete(t, RIL_E_SUCCESS, responseStr, count*sizeof(char*)); - - return; -error: - RLOGE("requestRegistrationState must never return an error when radio is on"); - RIL_onRequestComplete(t, RIL_E_GENERIC_FAILURE, NULL, 0); } static void requestCdmaGetRoamingPreference(int request __unused, void *data __unused, diff --git a/rild/Android.mk b/rild/Android.mk index 4f5802b..7ac505c 100644 --- a/rild/Android.mk +++ b/rild/Android.mk @@ -17,6 +17,7 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \ librilutils_static LOCAL_CFLAGS := -DRIL_SHLIB +LOCAL_CFLAGS += -Wall -Wextra -Werror ifeq ($(SIM_COUNT), 2) LOCAL_CFLAGS += -DANDROID_MULTI_SIM |