aboutsummaryrefslogtreecommitdiffstats
path: root/samsung-ipc/ipc.h
diff options
context:
space:
mode:
authorPaul Kocialkowski <contact@paulk.fr>2013-06-27 12:58:30 +0200
committerPaul Kocialkowski <contact@paulk.fr>2013-06-27 12:58:30 +0200
commitb73c6cf5a94e1c7f9be38917f26da37e13fe452e (patch)
tree569586654512f79d70a1bb065b15b8f9f3373a0e /samsung-ipc/ipc.h
parent0916c6823f2af47257b09899ba62e44eb56eee72 (diff)
downloadexternal_libsamsung-ipc-b73c6cf5a94e1c7f9be38917f26da37e13fe452e.zip
external_libsamsung-ipc-b73c6cf5a94e1c7f9be38917f26da37e13fe452e.tar.gz
external_libsamsung-ipc-b73c6cf5a94e1c7f9be38917f26da37e13fe452e.tar.bz2
Rework handlers and ipc functions for better consistency
Detailed list of the changes introduced by this commit: * Rename ipc_client_bootstrap_modem to ipc_client_bootstrap * Rename ipc_client_new/free to ipc_client_create/destroy * Rename log_handler to log_callback and change arguments order * Remove handlers common data and fd mechanisms * Set transport, power and gprs common data for handlers * Add data_create and data_destroy handlers * Rework arguments order for handlers * Add poll transport handler * Remove functions types typedefs * Remove dumb ipc_client_send_* functions * Remove ipc_client_gprs_handlers_available * Adapt device files for the new API changes * Adapt modemctrl for the new API changes Change-Id: Ia9ba1045dbbf9f5e31a201aa8629b49019158972 Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'samsung-ipc/ipc.h')
-rw-r--r--samsung-ipc/ipc.h51
1 files changed, 24 insertions, 27 deletions
diff --git a/samsung-ipc/ipc.h b/samsung-ipc/ipc.h
index d52e949..7e98004 100644
--- a/samsung-ipc/ipc.h
+++ b/samsung-ipc/ipc.h
@@ -18,6 +18,8 @@
*
*/
+#include <time.h>
+
#include <samsung-ipc.h>
#ifndef __IPC_H__
@@ -34,41 +36,36 @@ struct ipc_ops {
};
struct ipc_handlers {
- /* Transport handlers/data */
- ipc_io_handler_cb read;
- void *read_data;
- ipc_io_handler_cb write;
- void *write_data;
+ /* Transport handlers */
+ int (*open)(void *transport_data, int type);
+ int (*close)(void *transport_data);
+
+ int (*read)(void *transport_data, void *buffer, unsigned int length);
+ int (*write)(void *transport_data, void *buffer, unsigned int length);
+ int (*poll)(void *transport_data, struct timeval *timeout);
- int (*open)(int type, void *io_data);
- int (*close)(void *io_data);
- void *open_data;
- void *close_data;
+ void *transport_data;
/* Power handlers */
- ipc_handler_cb power_on;
- void *power_on_data;
- ipc_handler_cb power_off;
- void *power_off_data;
+ int (*power_on)(void *power_data);
+ int (*power_off)(void *power_data);
+
+ void *power_data;
/* GPRS handlers */
- int (*gprs_activate)(void *io_data, int cid);
- void *gprs_activate_data;
- int (*gprs_deactivate)(void *io_data, int cid);
- void *gprs_deactivate_data;
-
- /* Handlers common data*/
- void *common_data;
-
- void *(*common_data_create)(void);
- int (*common_data_destroy)(void *io_data);
- int (*common_data_set_fd)(void *io_data, int fd);
- int (*common_data_get_fd)(void *io_data);
+ int (*gprs_activate)(void *gprs_data, int cid);
+ int (*gprs_deactivate)(void *gprs_data, int cid);
+
+ void *gprs_data;
+
+ /* Data */
+ int (*data_create)(void **transport_data, void **power_data, void **gprs_data);
+ int (*data_destroy)(void *transport_data, void *power_data, void *gprs_data);
};
struct ipc_gprs_specs {
char *(*gprs_get_iface)(int cid);
- int (*gprs_get_capabilities)(struct ipc_client_gprs_capabilities *cap);
+ int (*gprs_get_capabilities)(struct ipc_client_gprs_capabilities *capabilities);
};
struct ipc_nv_data_specs {
@@ -85,7 +82,7 @@ struct ipc_nv_data_specs {
struct ipc_client {
int type;
- ipc_client_log_handler_cb log_handler;
+ void (*log_callback)(void *log_data, const char *message);
void *log_data;
struct ipc_ops *ops;