From f1da1a29a8e368ae883648e70bda8a4c5fa44ae6 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Fri, 29 Jan 2021 18:36:29 +0100 Subject: TODO: finish ipc_client conversion struct ipc_client needs to be added to all these functions possibly before adding support again in other daemon than rild / libsamsung-ril. It could probably be automated with coccinelle / spatch. As for the rest of the functions, they aren't exposed externally, so it's less an issue. Signed-off-by: Denis 'GNUtoo' Carikli --- include/misc.h | 9 ++++++--- include/net.h | 10 +++++++--- include/rfs.h | 8 ++++++-- include/samsung-ipc.h | 49 +++++++++++++++++++++++++++++-------------------- include/sec.h | 16 ++++++++++++---- include/sms.h | 19 ++++++++++++++----- include/svc.h | 5 ++++- 7 files changed, 78 insertions(+), 38 deletions(-) diff --git a/include/misc.h b/include/misc.h index 2a13fa6..b73d164 100644 --- a/include/misc.h +++ b/include/misc.h @@ -85,8 +85,11 @@ struct ipc_misc_time_info_data { * Helpers */ -int ipc_misc_me_version_setup(struct ipc_misc_me_version_request_data *data); -char *ipc_misc_me_imsi_imsi_extract(const void *data, size_t size); -char *ipc_misc_me_sn_extract(const struct ipc_misc_me_sn_response_data *data); +int ipc_misc_me_version_setup(struct ipc_client *client, + struct ipc_misc_me_version_request_data *data); +char *ipc_misc_me_imsi_imsi_extract(struct ipc_client *client, + const void *data, size_t size); +char *ipc_misc_me_sn_extract(struct ipc_client *client, + const struct ipc_misc_me_sn_response_data *data); #endif /* __SAMSUNG_IPC_MISC_H__ */ diff --git a/include/net.h b/include/net.h index bd3b664..432076b 100644 --- a/include/net.h +++ b/include/net.h @@ -131,13 +131,17 @@ struct ipc_net_mode_sel_data { * Helpers */ -int ipc_net_plmn_sel_setup(struct ipc_net_plmn_sel_request_data *data, +int ipc_net_plmn_sel_setup(struct ipc_client *client, + struct ipc_net_plmn_sel_request_data *data, unsigned char mode_sel, const char *plmn, unsigned char act); -int ipc_net_regist_setup(struct ipc_net_regist_request_data *data, +int ipc_net_regist_setup(struct ipc_client *client, + struct ipc_net_regist_request_data *data, unsigned char domain); -unsigned char ipc_net_plmn_list_count_extract(const void *data, size_t size); +unsigned char ipc_net_plmn_list_count_extract(struct ipc_client *client, + const void *data, size_t size); struct ipc_net_plmn_list_entry *ipc_net_plmn_list_entry_extract( + struct ipc_client *client, const void *data, size_t size, unsigned int index); #endif /* __SAMSUNG_IPC_NET_H__ */ diff --git a/include/rfs.h b/include/rfs.h index f2a091e..7b68280 100644 --- a/include/rfs.h +++ b/include/rfs.h @@ -84,12 +84,16 @@ void *ipc_nv_data_read(struct ipc_client *client, size_t size, int ipc_nv_data_write(struct ipc_client *client, const void *data, size_t size, unsigned int offset); size_t ipc_rfs_nv_data_item_size_setup( + struct ipc_client *client, struct ipc_rfs_nv_read_item_response_header *header, const void *nv_data, size_t nv_size); void *ipc_rfs_nv_read_item_setup( + struct ipc_client *client, struct ipc_rfs_nv_read_item_response_header *header, const void *nv_data, size_t nv_size); -size_t ipc_rfs_nv_write_item_size_extract(const void *data, size_t size); -void *ipc_rfs_nv_write_item_extract(const void *data, size_t size); +size_t ipc_rfs_nv_write_item_size_extract(struct ipc_client *client, + const void *data, size_t size); +void *ipc_rfs_nv_write_item_extract(struct ipc_client *client, + const void *data, size_t size); #endif /* __SAMSUNG_IPC_RFS_H__ */ diff --git a/include/samsung-ipc.h b/include/samsung-ipc.h index 25106c6..1e2dcf3 100644 --- a/include/samsung-ipc.h +++ b/include/samsung-ipc.h @@ -67,7 +67,7 @@ struct ipc_poll_fds { * Helpers */ -int ipc_device_detect(void); +int ipc_device_detect(struct ipc_client *client); struct ipc_client *ipc_client_create(int type); int ipc_client_destroy(struct ipc_client *client); @@ -132,12 +132,12 @@ char *ipc_client_nv_data_secret(struct ipc_client *client); size_t ipc_client_nv_data_size(struct ipc_client *client); size_t ipc_client_nv_data_chunk_size(struct ipc_client *client); -int ipc_seq_valid(unsigned char seq); +int ipc_seq_valid(struct ipc_client *client, unsigned char seq); -const char *ipc_request_type_string(unsigned char type); -const char *ipc_response_type_string(unsigned char type); -const char *ipc_command_string(unsigned short command); -const char *ipc_group_string(unsigned char group); +const char *ipc_request_type_string(struct ipc_client *client, unsigned char type); +const char *ipc_response_type_string(struct ipc_client *client, unsigned char type); +const char *ipc_command_string(struct ipc_client *client, unsigned short command); +const char *ipc_group_string(struct ipc_client *client, unsigned char group); int ipc_data_dump(struct ipc_client *client, const void *data, size_t size); void ipc_client_log_send(struct ipc_client *client, struct ipc_message *message, @@ -145,13 +145,17 @@ void ipc_client_log_send(struct ipc_client *client, struct ipc_message *message, void ipc_client_log_recv(struct ipc_client *client, struct ipc_message *message, const char *prefix); -int ipc_fmt_header_setup(struct ipc_fmt_header *header, +int ipc_fmt_header_setup(struct ipc_client *client, + struct ipc_fmt_header *header, const struct ipc_message *message); -int ipc_fmt_message_setup(const struct ipc_fmt_header *header, +int ipc_fmt_message_setup(struct ipc_client *client, + const struct ipc_fmt_header *header, struct ipc_message *message); -int ipc_rfs_header_setup(struct ipc_rfs_header *header, +int ipc_rfs_header_setup(struct ipc_client *client, + struct ipc_rfs_header *header, const struct ipc_message *message); -int ipc_rfs_message_setup(const struct ipc_rfs_header *header, +int ipc_rfs_message_setup(struct ipc_client *client, + const struct ipc_rfs_header *header, struct ipc_message *message); void *file_data_read(struct ipc_client *client, const char *path, size_t size, @@ -160,16 +164,21 @@ int file_data_write(struct ipc_client *client, const char *path, const void *data, size_t size, size_t chunk_size, unsigned int offset); off_t file_data_size(struct ipc_client *client, const char *path); -int network_iface_up(const char *iface, int domain, int type); -int network_iface_down(const char *iface, int domain, int type); -int sysfs_value_read(const char *path); -int sysfs_value_write(const char *path, int value); -char *sysfs_string_read(const char *path, size_t length); -int sysfs_string_write(const char *path, const char *buffer, size_t length); -size_t data2string_length(const void *data, size_t size); -char *data2string(const void *data, size_t size); -size_t string2data_size(const char *string); -void *string2data(const char *string); +int network_iface_up(struct ipc_client *client, const char *iface, int domain, + int type); +int network_iface_down(struct ipc_client *client, const char *iface, int domain, + int type); +int sysfs_value_read(struct ipc_client *client, const char *path); +int sysfs_value_write(struct ipc_client *client, const char *path, int value); +char *sysfs_string_read(struct ipc_client *client, const char *path, + size_t length); +int sysfs_string_write(struct ipc_client *client, const char *path, + const char *buffer, size_t length); +size_t data2string_length(struct ipc_client *client, const void *data, + size_t size); +char *data2string(struct ipc_client *client, const void *data, size_t size); +size_t string2data_size(struct ipc_client *client, const char *string); +void *string2data(struct ipc_client *client, const char *string); /* * Samsung-IPC protocol diff --git a/include/sec.h b/include/sec.h index cc3cd51..40eb503 100644 --- a/include/sec.h +++ b/include/sec.h @@ -166,26 +166,34 @@ struct ipc_sec_lock_information_response_data { * Helpers */ -int ipc_sec_pin_status_setup(struct ipc_sec_pin_status_request_data *data, +int ipc_sec_pin_status_setup(struct ipc_client *client, + struct ipc_sec_pin_status_request_data *data, unsigned char type, const char *pin1, const char *pin2); int ipc_sec_phone_lock_request_set_setup( + struct ipc_client *client, struct ipc_sec_phone_lock_request_set_data *data, unsigned char facility_type, unsigned char active, const char *password); -int ipc_sec_change_locking_pw_setup(struct ipc_sec_change_locking_pw_data *data, +int ipc_sec_change_locking_pw_setup(struct ipc_client *client, + struct ipc_sec_change_locking_pw_data *data, unsigned char facility_type, const char *password_old, const char *password_new); size_t ipc_sec_rsim_access_size_setup( + struct ipc_client *client, struct ipc_sec_rsim_access_request_header *header, const void *sim_io_data, size_t sim_io_size); void *ipc_sec_rsim_access_setup( + struct ipc_client *client, struct ipc_sec_rsim_access_request_header *header, const void *sim_io_data, size_t sim_io_size); -size_t ipc_sec_rsim_access_size_extract(const void *data, size_t size); -void *ipc_sec_rsim_access_extract(const void *data, size_t size); +size_t ipc_sec_rsim_access_size_extract(struct ipc_client *client, + const void *data, size_t size); +void *ipc_sec_rsim_access_extract(struct ipc_client *client, const void *data, + size_t size); int ipc_sec_lock_information_setup( + struct ipc_client *client, struct ipc_sec_lock_information_request_data *data, unsigned char type); #endif /* __SAMSUNG_IPC_SEC_H__ */ diff --git a/include/sms.h b/include/sms.h index 5068dd9..153222b 100644 --- a/include/sms.h +++ b/include/sms.h @@ -136,22 +136,31 @@ struct ipc_sms_svc_center_addr_header { */ size_t ipc_sms_send_msg_size_setup( + struct ipc_client *client, struct ipc_sms_send_msg_request_header *header, const void *smsc, size_t smsc_size, const void *pdu, size_t pdu_size); void *ipc_sms_send_msg_setup( + struct ipc_client *client, struct ipc_sms_send_msg_request_header *header, const void *smsc, size_t smsc_size, const void *pdu, size_t pdu_size); -size_t ipc_sms_incoming_msg_pdu_size_extract(const void *data, size_t size); -void *ipc_sms_incoming_msg_pdu_extract(const void *data, size_t size); +size_t ipc_sms_incoming_msg_pdu_size_extract(struct ipc_client *client, + const void *data, size_t size); +void *ipc_sms_incoming_msg_pdu_extract(struct ipc_client *client, + const void *data, size_t size); size_t ipc_sms_save_msg_size_setup( + struct ipc_client *client, struct ipc_sms_save_msg_request_header *header, const void *smsc, size_t smsc_size, const void *pdu, size_t pdu_size); void *ipc_sms_save_msg_setup( + struct ipc_client *client, struct ipc_sms_save_msg_request_header *header, const void *smsc, size_t smsc_size, const void *pdu, size_t pdu_size); -int ipc_sms_del_msg_setup(struct ipc_sms_del_msg_request_data *data, +int ipc_sms_del_msg_setup(struct ipc_client *client, + struct ipc_sms_del_msg_request_data *data, unsigned short index); -size_t ipc_sms_svc_center_addr_smsc_size_extract(const void *data, size_t size); -void *ipc_sms_svc_center_addr_smsc_extract(const void *data, size_t size); +size_t ipc_sms_svc_center_addr_smsc_size_extract(struct ipc_client *client, + const void *data, size_t size); +void *ipc_sms_svc_center_addr_smsc_extract(struct ipc_client *client, + const void *data, size_t size); #endif /* __SAMSUNG_IPC_SMS_H__ */ diff --git a/include/svc.h b/include/svc.h index a570271..6689a44 100644 --- a/include/svc.h +++ b/include/svc.h @@ -122,11 +122,14 @@ struct ipc_svc_change_svc_mode_data { * Helpers */ -int ipc_svc_enter_setup(struct ipc_svc_enter_data *data, +int ipc_svc_enter_setup(struct ipc_client *client, + struct ipc_svc_enter_data *data, unsigned char mode, unsigned char type); unsigned char ipc_svc_display_screen_count_extract( + struct ipc_client *client, const void *data, size_t size); struct ipc_svc_display_screen_entry *ipc_svc_display_screen_extract( + struct ipc_client *client, const void *data, size_t size, unsigned int index); #endif /* __SAMSUNG_IPC_SVC_H__ */ -- cgit v1.2.3