diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2013-06-27 12:58:30 +0200 |
---|---|---|
committer | Paul Kocialkowski <contact@paulk.fr> | 2013-06-27 12:58:30 +0200 |
commit | b73c6cf5a94e1c7f9be38917f26da37e13fe452e (patch) | |
tree | 569586654512f79d70a1bb065b15b8f9f3373a0e /samsung-ipc/ipc.h | |
parent | 0916c6823f2af47257b09899ba62e44eb56eee72 (diff) | |
download | external_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.h | 51 |
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; |