#include <hayes-ril.h>
+/*
+ * Global
+ */
+
int ril_device_init(struct ril_device *ril_device_p)
{
int rc;
return -1;
}
- rc = ril_device_boot(ril_device_p);
+ rc = ril_device_power_boot(ril_device_p);
if(rc < 0) {
LOGE("Failed to boot device!");
return -1;
}
- rc = ril_device_open(ril_device_p);
+ rc = ril_device_transport_open(ril_device_p);
if(rc < 0) {
LOGE("Failed to open device!");
return -1;
int ril_device_deinit(struct ril_device *ril_device_p)
{
- ril_device_close(ril_device_p);
+ ril_device_transport_close(ril_device_p);
ril_device_power_off(ril_device_p);
return 0;
}
-int ril_device_boot(struct ril_device *ril_device_p)
+/*
+ * Power
+ */
+
+int ril_device_power_on(struct ril_device *ril_device_p)
{
int rc;
return -1;
}
- if(ril_device_p->handlers->power->boot == NULL) {
- LOGE("Missing device power boot handler!");
+ if(ril_device_p->handlers->power->power_on == NULL) {
+ LOGE("Missing device power on handler!");
return -1;
}
- LOGD("Booting modem...");
+ LOGD("Powering modem on...");
- rc = ril_device_p->handlers->power->boot(ril_device_p->handlers->power->sdata);
+ rc = ril_device_p->handlers->power->power_on(ril_device_p->handlers->power->sdata);
return rc;
}
-int ril_device_power_on(struct ril_device *ril_device_p)
+int ril_device_power_off(struct ril_device *ril_device_p)
{
int rc;
return -1;
}
- if(ril_device_p->handlers->power->power_on == NULL) {
- LOGE("Missing device power on handler!");
+ if(ril_device_p->handlers->power->power_off == NULL) {
+ LOGE("Missing device power off handler!");
return -1;
}
- LOGD("Powering modem on...");
+ LOGD("Powering modem off...");
- rc = ril_device_p->handlers->power->power_on(ril_device_p->handlers->power->sdata);
+ rc = ril_device_p->handlers->power->power_off(ril_device_p->handlers->power->sdata);
return rc;
}
-int ril_device_power_off(struct ril_device *ril_device_p)
+int ril_device_power_boot(struct ril_device *ril_device_p)
{
int rc;
return -1;
}
- if(ril_device_p->handlers->power->power_off == NULL) {
- LOGE("Missing device power off handler!");
+ if(ril_device_p->handlers->power->boot == NULL) {
+ LOGE("Missing device power boot handler!");
return -1;
}
- LOGD("Powering modem off...");
+ LOGD("Booting modem...");
- rc = ril_device_p->handlers->power->power_off(ril_device_p->handlers->power->sdata);
+ rc = ril_device_p->handlers->power->boot(ril_device_p->handlers->power->sdata);
return rc;
}
-int ril_device_open(struct ril_device *ril_device_p)
+/*
+ * Transport
+ */
+
+
+int ril_device_transport_open(struct ril_device *ril_device_p)
{
int rc;
return rc;
}
-int ril_device_close(struct ril_device *ril_device_p)
+int ril_device_transport_close(struct ril_device *ril_device_p)
{
int rc;
return rc;
}
-int ril_device_send(struct ril_device *ril_device_p, void *data, int length)
+int ril_device_transport_send(struct ril_device *ril_device_p, void *data, int length)
{
int rc;
return rc;
}
-int ril_device_recv(struct ril_device *ril_device_p, void **data, int length)
+int ril_device_transport_recv(struct ril_device *ril_device_p, void **data, int length)
{
int rc;
return rc;
}
-int ril_device_recv_poll(struct ril_device *ril_device_p)
+int ril_device_transport_recv_poll(struct ril_device *ril_device_p)
{
int rc;
return rc;
}
-int ril_device_recv_loop(struct ril_device *ril_device_p)
+int ril_device_transport_recv_loop(struct ril_device *ril_device_p)
{
struct at_response **responses = NULL;
int responses_count = 0;
// Return error after 5 consecutive poll/read failures
for(i=5 ; i > 0 ; i--) {
while(1) {
- rc = ril_device_recv_poll(ril_device_p);
+ rc = ril_device_transport_recv_poll(ril_device_p);
if(rc < 0) {
LOGE("Polling from transport recv failed!");
break;
length = rc;
- rc = ril_device_recv(ril_device_p, &data, length);
+ rc = ril_device_transport_recv(ril_device_p, &data, length);
if(rc <= 0 || data == NULL) {
LOGE("Reading from transport recv failed!");
break;
}
// When poll/read failed, close and reopen the device
- ril_device_close(ril_device_p);
+ ril_device_transport_close(ril_device_p);
usleep(500);
- ril_device_open(ril_device_p);
+ ril_device_transport_open(ril_device_p);
RIL_DEVICE_UNLOCK(ril_device_p);
}
return -1;
}
-void *ril_device_recv_thread(void *data)
+void *ril_device_transport_recv_thread(void *data)
{
struct ril_device *ril_device_p = (struct ril_device *) data;
int rc;
int i;
for(i = 5 ; i > 0 ; i--) {
- rc = ril_device_recv_loop(ril_device_p);
+ rc = ril_device_transport_recv_loop(ril_device_p);
if(rc < 0) {
LOGE("Recv loop failed too many times, restarting...");
return NULL;
}
-int ril_device_recv_thread_start(struct ril_device *ril_device_p)
+int ril_device_transport_recv_thread_start(struct ril_device *ril_device_p)
{
pthread_attr_t attr;
int rc;
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
- rc = pthread_create(&(ril_device_p->handlers->transport->recv_thread), &attr, ril_device_recv_thread, (void *) ril_device_p);
+ rc = pthread_create(&(ril_device_p->handlers->transport->recv_thread), &attr, ril_device_transport_recv_thread, (void *) ril_device_p);
if(rc != 0) {
LOGE("Creating transport recv thread failed!");
return -1;
int ril_device_data_create(struct ril_device *ril_device_p);
int ril_device_data_destroy(struct ril_device *ril_device_p);
-int ril_device_boot(struct ril_device *ril_device_p);
-int ril_device_boot(struct ril_device *ril_device_p);
int ril_device_power_on(struct ril_device *ril_device_p);
int ril_device_power_off(struct ril_device *ril_device_p);
-int ril_device_open(struct ril_device *ril_device_p);
-int ril_device_close(struct ril_device *ril_device_p);
-int ril_device_send(struct ril_device *ril_device_p, void *data, int length);
-int ril_device_recv(struct ril_device *ril_device_p, void **data, int length);
-int ril_device_recv_poll(struct ril_device *ril_device_p);
-int ril_device_recv_thread_start(struct ril_device *ril_device_p);
+int ril_device_power_boot(struct ril_device *ril_device_p);
+int ril_device_transport_open(struct ril_device *ril_device_p);
+int ril_device_transport_close(struct ril_device *ril_device_p);
+int ril_device_transport_send(struct ril_device *ril_device_p, void *data, int length);
+int ril_device_transport_recv(struct ril_device *ril_device_p, void **data, int length);
+int ril_device_transport_recv_poll(struct ril_device *ril_device_p);
+int ril_device_transport_recv_thread_start(struct ril_device *ril_device_p);
// Utils
char *ril_status_string(int status);