aboutsummaryrefslogtreecommitdiffstats
path: root/samsung-ipc/ipc.h
diff options
context:
space:
mode:
Diffstat (limited to 'samsung-ipc/ipc.h')
-rw-r--r--samsung-ipc/ipc.h44
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;
};
/*