aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Blaesius <skate4life@gmx.de>2017-07-14 21:01:00 +0200
committerAndreas Blaesius <skate4life@gmx.de>2017-07-17 22:04:29 +0200
commit1f2b77a3b0279cd286349cf3d1b60bae7a91e824 (patch)
treec21e276f0e0d3f4455e5114219cad5e2003ccc5b
parentfa8776bb47a0005e613f6ef74373311e3d07eb0e (diff)
downloaddevice_samsung_espresso3g-1f2b77a3b0279cd286349cf3d1b60bae7a91e824.tar.gz
device_samsung_espresso3g-1f2b77a3b0279cd286349cf3d1b60bae7a91e824.tar.bz2
device_samsung_espresso3g-1f2b77a3b0279cd286349cf3d1b60bae7a91e824.zip
libsecril-shim: convert to C++
Change-Id: Id5b064ea4c7803e15e61cba185aac8df403cdbd8
-rw-r--r--rilsrc/libsecril-shim/Android.mk2
-rw-r--r--rilsrc/libsecril-shim/secril-shim.cpp (renamed from rilsrc/libsecril-shim/secril-shim.c)54
-rw-r--r--rilsrc/libsecril-shim/secril-shim.h2
3 files changed, 31 insertions, 27 deletions
diff --git a/rilsrc/libsecril-shim/Android.mk b/rilsrc/libsecril-shim/Android.mk
index 91519f2..176e05e 100644
--- a/rilsrc/libsecril-shim/Android.mk
+++ b/rilsrc/libsecril-shim/Android.mk
@@ -4,7 +4,7 @@ include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := \
- secril-shim.c
+ secril-shim.cpp
LOCAL_SHARED_LIBRARIES := \
liblog \
diff --git a/rilsrc/libsecril-shim/secril-shim.c b/rilsrc/libsecril-shim/secril-shim.cpp
index 0322a6e..71049bb 100644
--- a/rilsrc/libsecril-shim/secril-shim.c
+++ b/rilsrc/libsecril-shim/secril-shim.cpp
@@ -25,6 +25,25 @@ static void onRequestDial(int request, void *data, size_t datalen, RIL_Token t)
origRilFunctions->onRequest(request, &dial, sizeof(dial), t);
}
+static bool onRequestGetRadioCapability(RIL_Token t)
+{
+ RIL_RadioCapability rc[1] =
+ {
+ { /* rc[0] */
+ RIL_RADIO_CAPABILITY_VERSION, /* version */
+ 0, /* session */
+ RC_PHASE_CONFIGURED, /* phase */
+ RAF_GSM | RAF_GPRS | RAF_EDGE | RAF_HSUPA | RAF_HSDPA | RAF_HSPA | RAF_HSPAP | RAF_UMTS, /* rat */
+ { /* logicalModemUuid */
+ 0,
+ },
+ RC_STATUS_SUCCESS /* status */
+ }
+ };
+ rilEnv->OnRequestComplete(t, RIL_E_SUCCESS, rc, sizeof(rc));
+ return true;
+}
+
static void onRequestShim(int request, void *data, size_t datalen, RIL_Token t)
{
switch (request) {
@@ -38,24 +57,9 @@ static void onRequestShim(int request, void *data, size_t datalen, RIL_Token t)
/* Necessary; RILJ may fake this for us if we reply not supported, but we can just implement it. */
case RIL_REQUEST_GET_RADIO_CAPABILITY:
- ; /* lol C standard */
- RIL_RadioCapability rc[1] =
- {
- { /* rc[0] */
- RIL_RADIO_CAPABILITY_VERSION, /* version */
- 0, /* session */
- RC_PHASE_CONFIGURED, /* phase */
- RAF_GSM | RAF_GPRS | RAF_EDGE | RAF_HSUPA | RAF_HSDPA | RAF_HSPA | RAF_HSPAP | RAF_UMTS, /* rat */
- { /* logicalModemUuid */
- 0,
- },
- RC_STATUS_SUCCESS /* status */
- }
- };
- RLOGW("%s: got request %s: replied with our implementation!\n", __func__, requestToString(request));
- rilEnv->OnRequestComplete(t, RIL_E_SUCCESS, rc, sizeof(rc));
+ onRequestGetRadioCapability(t);
+ RLOGI("%s: got request %s: replied with our implementation!\n", __FUNCTION__, requestToString(request));
return;
-
/* The following requests were introduced post-4.3. */
case RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC:
case RIL_REQUEST_SIM_OPEN_CHANNEL: /* !!! */
@@ -77,12 +81,12 @@ static void onRequestShim(int request, void *data, size_t datalen, RIL_Token t)
case RIL_REQUEST_START_LCE:
case RIL_REQUEST_STOP_LCE:
case RIL_REQUEST_PULL_LCEDATA:
- RLOGW("%s: got request %s: replied with REQUEST_NOT_SUPPPORTED.\n", __func__, requestToString(request));
+ RLOGW("%s: got request %s: replied with REQUEST_NOT_SUPPPORTED.\n", __FUNCTION__, requestToString(request));
rilEnv->OnRequestComplete(t, RIL_E_REQUEST_NOT_SUPPORTED, NULL, 0);
return;
}
- RLOGD("%s: got request %s: forwarded to RIL.\n", __func__, requestToString(request));
+ RLOGD("%s: got request %s: forwarded to RIL.\n", __FUNCTION__, requestToString(request));
origRilFunctions->onRequest(request, data, datalen, t);
}
@@ -215,8 +219,8 @@ static void onRequestCompleteShim(RIL_Token t, RIL_Errno e, void *response, size
}
break;
}
+ RLOGD("%s: got request %s: forwarded to libril.\n", __FUNCTION__, requestToString(request));
- RLOGD("%s: got request %s: forwarded to libril.\n", __func__, requestToString(request));
null_token_exit:
rilEnv->OnRequestComplete(t, e, response, responselen);
}
@@ -255,21 +259,21 @@ const RIL_RadioFunctions* RIL_Init(const struct RIL_Env *env, int argc, char **a
/* Open and Init the original RIL. */
- origRil = dlopen(RIL_LIB_PATH, RTLD_LOCAL);
+ origRil = dlopen(RIL_LIB_PATH, RTLD_GLOBAL);
if (CC_UNLIKELY(!origRil)) {
- RLOGE("%s: failed to load '" RIL_LIB_PATH "': %s\n", __func__, dlerror());
+ RLOGE("%s: failed to load '" RIL_LIB_PATH "': %s\n", __FUNCTION__, dlerror());
return NULL;
}
- origRilInit = dlsym(origRil, "RIL_Init");
+ origRilInit = (const RIL_RadioFunctions *(*)(const struct RIL_Env *, int, char **))(dlsym(origRil, "RIL_Init"));
if (CC_UNLIKELY(!origRilInit)) {
- RLOGE("%s: couldn't find original RIL_Init!\n", __func__);
+ RLOGE("%s: couldn't find original RIL_Init!\n", __FUNCTION__);
goto fail_after_dlopen;
}
origRilFunctions = origRilInit(&shimmedEnv, argc, argv);
if (CC_UNLIKELY(!origRilFunctions)) {
- RLOGE("%s: the original RIL_Init derped.\n", __func__);
+ RLOGE("%s: the original RIL_Init derped.\n", __FUNCTION__);
goto fail_after_dlopen;
}
diff --git a/rilsrc/libsecril-shim/secril-shim.h b/rilsrc/libsecril-shim/secril-shim.h
index 19ef464..dd73e13 100644
--- a/rilsrc/libsecril-shim/secril-shim.h
+++ b/rilsrc/libsecril-shim/secril-shim.h
@@ -19,7 +19,7 @@
#define RIL_LIB_PATH "/vendor/lib/libsec-ril.so"
-extern const char * requestToString(int request);
+extern "C" const char * requestToString(int request);
typedef struct
{