diff options
Diffstat (limited to 'samsung-ipc/ipc.h')
-rw-r--r-- | samsung-ipc/ipc.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/samsung-ipc/ipc.h b/samsung-ipc/ipc.h index 1cfa757..dfeea11 100644 --- a/samsung-ipc/ipc.h +++ b/samsung-ipc/ipc.h @@ -78,6 +78,49 @@ struct ipc_client_gprs_specs { struct ipc_client_gprs_capabilities *capabilities); }; +struct ipc_client_modem_driver_ops { + int (*power)(struct ipc_client *client, int device_fd, int power); + int (*download_enable)(struct ipc_client *client, int device_fd, + int enable); + int (*bus_power)(struct ipc_client *client, int power); + int (*link_control_enable)(struct ipc_client *client, int device_fd, + int enable); + int (*link_control_active)(struct ipc_client *client, int device_fd, + int active); + int (*link_connected_wait)(struct ipc_client *client, int device_fd); + int (*link_get_hostwake_wait)(struct ipc_client *client, int device_fd); + int (*wait_status_online)( + __attribute__((unused)) struct ipc_client *client, + int device_fd); + int (*open)(struct ipc_client *client, int type); + int (*close)(struct ipc_client *client, int fd); + int (*read)(struct ipc_client *client, int fd, void *buffer, + size_t length); + int (*write)(struct ipc_client *client, int fd, const void *buffer, + size_t length); + int (*poll)(struct ipc_client *client, int fd, struct ipc_poll_fds *fds, + struct timeval *timeout); + + int (*fmt_send)(struct ipc_client *client, struct ipc_message *message); + int (*fmt_recv)(struct ipc_client *client, struct ipc_message *message); + int (*rfs_send)(struct ipc_client *client, struct ipc_message *message); + int (*rfs_recv)(struct ipc_client *client, struct ipc_message *message); + //TODO: find a better name not to conflict with fmt/rfs send + // like block-data send (used for firmware) + // what about firmware->MAIN + // and data_send firmware_send + // or send_partition + // or send_block + int (*data_send)(struct ipc_client *client, int device_fd, const void *data, + size_t size, int address); + + char * (*gprs_get_iface)(struct ipc_client *client, unsigned int cid); + int (*gprs_get_capabilities)( + struct ipc_client *client, + struct ipc_client_gprs_capabilities *capabilities); +}; + + struct ipc_client_nv_data_specs { char *nv_data_path; char *nv_data_md5_path; @@ -98,6 +141,7 @@ struct ipc_client { struct ipc_client_handlers *handlers; struct ipc_client_gprs_specs *gprs_specs; struct ipc_client_nv_data_specs *nv_data_specs; + struct ipc_client_modem_driver_ops *modem_driver_ops; }; /* |