| call.h | | call.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | | * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| | | | |
| skipping to change at line 67 | | skipping to change at line 67 | |
| #define IPC_CALL_STATE_RELEASED 0x04 | | #define IPC_CALL_STATE_RELEASED 0x04 | |
| #define IPC_CALL_STATE_CONNECTING 0x05 | | #define IPC_CALL_STATE_CONNECTING 0x05 | |
| | | | |
| #define IPC_CALL_LIST_ENTRY_STATE_ACTIVE 0x01 | | #define IPC_CALL_LIST_ENTRY_STATE_ACTIVE 0x01 | |
| #define IPC_CALL_LIST_ENTRY_STATE_HOLDING 0x02 | | #define IPC_CALL_LIST_ENTRY_STATE_HOLDING 0x02 | |
| #define IPC_CALL_LIST_ENTRY_STATE_DIALING 0x03 | | #define IPC_CALL_LIST_ENTRY_STATE_DIALING 0x03 | |
| #define IPC_CALL_LIST_ENTRY_STATE_ALERTING 0x04 | | #define IPC_CALL_LIST_ENTRY_STATE_ALERTING 0x04 | |
| #define IPC_CALL_LIST_ENTRY_STATE_INCOMING 0x05 | | #define IPC_CALL_LIST_ENTRY_STATE_INCOMING 0x05 | |
| #define IPC_CALL_LIST_ENTRY_STATE_WAITING 0x06 | | #define IPC_CALL_LIST_ENTRY_STATE_WAITING 0x06 | |
| | | | |
|
| | | #define IPC_CALL_END_CAUSE_NORMAL 0x05 | |
| | | #define IPC_CALL_END_CAUSE_REJECTED 0x2F | |
| | | #define IPC_CALL_END_CAUSE_UNSPECIFIED 0x10 | |
| | | | |
| #define IPC_CALL_TERM_MO 0x01 | | #define IPC_CALL_TERM_MO 0x01 | |
| #define IPC_CALL_TERM_MT 0x02 | | #define IPC_CALL_TERM_MT 0x02 | |
| | | | |
| #define IPC_CALL_DTMF_STATE_START 0x01 | | #define IPC_CALL_DTMF_STATE_START 0x01 | |
| #define IPC_CALL_DTMF_STATE_STOP 0x02 | | #define IPC_CALL_DTMF_STATE_STOP 0x02 | |
| | | | |
| struct ipc_message_info; | | struct ipc_message_info; | |
| | | | |
| struct ipc_call_cont_dtmf { | | struct ipc_call_cont_dtmf { | |
| unsigned char state; | | unsigned char state; | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 5 lines changed or added | |
|
| gprs.h | | gprs.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2011 Simon Busch <morphis@gravedo.de> | | * Copyright (C) 2011 Simon Busch <morphis@gravedo.de> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| | | | |
| skipping to change at line 40 | | skipping to change at line 40 | |
| #define IPC_GPRS_MS_CLASS 0x0D07 | | #define IPC_GPRS_MS_CLASS 0x0D07 | |
| #define IPC_GPRS_3G_QUAL_SERVICE_PROFILE 0x0D08 | | #define IPC_GPRS_3G_QUAL_SERVICE_PROFILE 0x0D08 | |
| #define IPC_GPRS_IP_CONFIGURATION 0x0D09 | | #define IPC_GPRS_IP_CONFIGURATION 0x0D09 | |
| #define IPC_GPRS_DEFINE_SEC_PDP_CONTEXT 0x0D0A | | #define IPC_GPRS_DEFINE_SEC_PDP_CONTEXT 0x0D0A | |
| #define IPC_GPRS_TFT 0x0D0B | | #define IPC_GPRS_TFT 0x0D0B | |
| #define IPC_GPRS_HSDPA_STATUS 0x0D0C | | #define IPC_GPRS_HSDPA_STATUS 0x0D0C | |
| #define IPC_GPRS_CURRENT_SESSION_DATA_COUNT 0x0D0D | | #define IPC_GPRS_CURRENT_SESSION_DATA_COUNT 0x0D0D | |
| #define IPC_GPRS_DATA_DORMANT 0x0D0E | | #define IPC_GPRS_DATA_DORMANT 0x0D0E | |
| #define IPC_GPRS_DUN_PIN_CTRL 0x0D0F | | #define IPC_GPRS_DUN_PIN_CTRL 0x0D0F | |
| #define IPC_GPRS_CALL_STATUS 0x0D10 | | #define IPC_GPRS_CALL_STATUS 0x0D10 | |
|
| | | #define IPC_GPRS_PORT_LIST 0x0D11 | |
| | | | |
|
| #define IPC_GPRS_CALL_STATUS_TYPE_ON 0x0 | | #define IPC_GPRS_STATE_NOT_ENABLED 0x00 | |
| #define IPC_GPRS_CALL_STATUS_TYPE_OFF 0x3 | | #define IPC_GPRS_STATE_ENABLED 0x01 | |
| | | #define IPC_GPRS_STATE_DISABLED 0x03 | |
| | | | |
| | | #define IPC_GPRS_FAIL_INSUFFICIENT_RESOURCES 0x0004 | |
| | | #define IPC_GPRS_FAIL_MISSING_UKNOWN_APN 0x0005 | |
| | | #define IPC_GPRS_FAIL_UNKNOWN_PDP_ADDRESS_TYPE 0x0006 | |
| | | #define IPC_GPRS_FAIL_USER_AUTHENTICATION 0x0007 | |
| | | #define IPC_GPRS_FAIL_ACTIVATION_REJECT_GGSN 0x0008 | |
| | | #define IPC_GPRS_FAIL_ACTIVATION_REJECT_UNSPECIFIED 0x0009 | |
| | | #define IPC_GPRS_FAIL_SERVICE_OPTION_NOT_SUPPORTED 0x000A | |
| | | #define IPC_GPRS_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED 0x000B | |
| | | #define IPC_GPRS_FAIL_SERVICE_OPTION_OUT_OF_ORDER 0x000C | |
| | | #define IPC_GPRS_FAIL_NSAPI_IN_USE 0x000D | |
| | | | |
|
| #define IPC_GPRS_ERROR_UNAVAILABLE 0x94 | | #define IPC_GPRS_PDP_CONTEXT_GET_DESC_COUNT 3 | |
| #define IPC_GPRS_ERROR_NOT_SUBSCRIBED 0x0B | | | |
| | | | |
| struct ipc_gprs_define_pdp_context { | | struct ipc_gprs_define_pdp_context { | |
|
| unsigned char unk0[3]; | | unsigned char enable; | |
| | | unsigned char cid; | |
| | | unsigned char unk; | |
| unsigned char apn[124]; | | unsigned char apn[124]; | |
| }; | | }; | |
| | | | |
|
| | | struct ipc_gprs_pdp_context_set { | |
| | | unsigned char enable; | |
| | | unsigned char cid; | |
| | | unsigned char unk0[4]; | |
| | | unsigned char username[32]; | |
| | | unsigned char password[32]; | |
| | | unsigned char unk1[32]; | |
| | | unsigned char unk2; | |
| | | }; | |
| | | | |
| | | struct ipc_gprs_pdp_context_get_desc { | |
| | | unsigned char cid; | |
| | | unsigned char state; | |
| | | }; | |
| | | | |
| | | struct ipc_gprs_pdp_context_get { | |
| | | unsigned char unk; | |
| | | struct ipc_gprs_pdp_context_get_desc desc[IPC_GPRS_PDP_CONTEXT_GET_DESC | |
| | | _COUNT]; | |
| | | }; | |
| | | | |
| struct ipc_gprs_ip_configuration { | | struct ipc_gprs_ip_configuration { | |
|
| unsigned char unk0; | | unsigned char cid; | |
| unsigned char field_flag; | | unsigned char field_flag; | |
| unsigned char unk1; | | unsigned char unk1; | |
| unsigned char ip[4]; | | unsigned char ip[4]; | |
| unsigned char dns1[4]; | | unsigned char dns1[4]; | |
| unsigned char dns2[4]; | | unsigned char dns2[4]; | |
| unsigned char gateway[4]; | | unsigned char gateway[4]; | |
| unsigned char subnet_mask[4]; | | unsigned char subnet_mask[4]; | |
| unsigned char unk2[4]; | | unsigned char unk2[4]; | |
| }; | | }; | |
| | | | |
|
| struct ipc_gprs_ip_configuration_response { | | | |
| unsigned char unk0[376]; | | | |
| }; | | | |
| | | | |
| struct ipc_gprs_call_status { | | struct ipc_gprs_call_status { | |
| unsigned char cid; | | unsigned char cid; | |
|
| unsigned char state; // IPC_GPRS_CALL_STATUS_TYPE_... | | unsigned char state; | |
| unsigned short reason; | | unsigned short fail_cause; | |
| }; | | }; | |
| | | | |
| struct ipc_gprs_hsdpa_status { | | struct ipc_gprs_hsdpa_status { | |
|
| unsigned char unk; | | unsigned char reg_state; | |
| }; | | | |
| | | | |
| struct ipc_gprs_pdp_context { | | | |
| unsigned char unk0[6]; | | | |
| unsigned char username[32]; | | | |
| unsigned char password[32]; | | | |
| unsigned char unk1[32]; | | | |
| unsigned char unk2; | | | |
| }; | | }; | |
| | | | |
| struct ipc_gprs_ps { | | struct ipc_gprs_ps { | |
| unsigned char unk[2]; | | unsigned char unk[2]; | |
| }; | | }; | |
| | | | |
| struct ipc_gprs_current_session_data_counter { | | struct ipc_gprs_current_session_data_counter { | |
|
| unsigned char unk[9]; | | unsigned char cid; | |
| | | unsigned int rx_count; | |
| | | unsigned int tx_count; | |
| | | }; | |
| | | | |
| | | struct ipc_gprs_port_list { | |
| | | unsigned char unk[804]; | |
| }; | | }; | |
| | | | |
|
| void ipc_gprs_pdp_context_setup(struct ipc_gprs_pdp_context *message, int a | | void ipc_gprs_port_list_setup(struct ipc_gprs_port_list *message); | |
| ctivate, char *username, char *password); | | void ipc_gprs_pdp_context_setup(struct ipc_gprs_pdp_context_set *message, | |
| void ipc_gprs_define_pdp_context_setup(struct ipc_gprs_define_pdp_context * | | unsigned char cid, int enable, char *username, char *password); | |
| message, char *apn); | | void ipc_gprs_define_pdp_context_setup(struct ipc_gprs_define_pdp_context * | |
| | | message, | |
| | | unsigned char cid, int enable, char *apn); | |
| | | | |
| #endif | | #endif | |
| | | | |
| // vim:ts=4:sw=4:expandtab | | // vim:ts=4:sw=4:expandtab | |
| | | | |
End of changes. 12 change blocks. |
| 27 lines changed or deleted | | 58 lines changed or added | |
|
| misc.h | | misc.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | | * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| | | | |
| skipping to change at line 35 | | skipping to change at line 35 | |
| #include "device/ipc-v4/misc.h" | | #include "device/ipc-v4/misc.h" | |
| #elif defined(DEVICE_H1) | | #elif defined(DEVICE_H1) | |
| #include "device/h1/misc.h" | | #include "device/h1/misc.h" | |
| #endif | | #endif | |
| | | | |
| struct ipc_message_info; | | struct ipc_message_info; | |
| | | | |
| #define IPC_MISC_ME_VERSION 0x0A01 | | #define IPC_MISC_ME_VERSION 0x0A01 | |
| #define IPC_MISC_ME_IMSI 0x0A02 | | #define IPC_MISC_ME_IMSI 0x0A02 | |
| #define IPC_MISC_ME_SN 0x0A03 | | #define IPC_MISC_ME_SN 0x0A03 | |
|
| #define IPC_MISC_TIME_INFO 0x0A07 | | #define IPC_MISC_TIME_INFO 0x0A05 | |
| | | #define IPC_MISC_DEBUG_LEVEL 0x0A0C | |
| | | | |
| #define IPC_MISC_ME_SN_SERIAL_NUM 0x01 | | #define IPC_MISC_ME_SN_SERIAL_NUM 0x01 | |
| #define IPC_MISC_ME_SN_SERIAL_NUM_SERIAL 0x04 | | #define IPC_MISC_ME_SN_SERIAL_NUM_SERIAL 0x04 | |
| #define IPC_MISC_ME_SN_SERIAL_NUM_MANUFACTURE_DATE 0x05 | | #define IPC_MISC_ME_SN_SERIAL_NUM_MANUFACTURE_DATE 0x05 | |
| #define IPC_MISC_ME_SN_SERIAL_NUM_BARCODE 0x06 | | #define IPC_MISC_ME_SN_SERIAL_NUM_BARCODE 0x06 | |
| | | | |
| struct ipc_misc_time_info { | | struct ipc_misc_time_info { | |
| unsigned char tz_valid, daylight_valid; | | unsigned char tz_valid, daylight_valid; | |
| unsigned char year, mon, day; | | unsigned char year, mon, day; | |
| unsigned char hour, min, sec; | | unsigned char hour, min, sec; | |
|
| unsigned char tz, dl, dv; | | char tz, dl, dv; | |
| char plmn[6]; | | char plmn[6]; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| char* ipc_misc_me_imsi_response_get_imsi(struct ipc_message_info *response)
; | | char* ipc_misc_me_imsi_response_get_imsi(struct ipc_message_info *response)
; | |
| | | | |
| #endif | | #endif | |
| | | | |
| // vim:ts=4:sw=4:expandtab | | // vim:ts=4:sw=4:expandtab | |
| | | | |
End of changes. 3 change blocks. |
| 3 lines changed or deleted | | 4 lines changed or added | |
|
| net.h | | net.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | | * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| | | | |
| skipping to change at line 66 | | skipping to change at line 66 | |
| #define IPC_NET_REGISTRATION_STATE_ROAMING 0x06 | | #define IPC_NET_REGISTRATION_STATE_ROAMING 0x06 | |
| | | | |
| #define IPC_NET_SERVICE_DOMAIN_GSM 0x02 | | #define IPC_NET_SERVICE_DOMAIN_GSM 0x02 | |
| #define IPC_NET_SERVICE_DOMAIN_GPRS 0x03 | | #define IPC_NET_SERVICE_DOMAIN_GPRS 0x03 | |
| | | | |
| #define IPC_NET_MODE_SEL_GSM_UMTS 0x01 | | #define IPC_NET_MODE_SEL_GSM_UMTS 0x01 | |
| #define IPC_NET_MODE_SEL_GSM_ONLY 0x02 | | #define IPC_NET_MODE_SEL_GSM_ONLY 0x02 | |
| #define IPC_NET_MODE_SEL_UMTS_ONLY 0x03 | | #define IPC_NET_MODE_SEL_UMTS_ONLY 0x03 | |
| | | | |
| struct ipc_net_regist_get { | | struct ipc_net_regist_get { | |
|
| | | /* ignore, ipc_net_regist_get_setup will do for you */ | |
| unsigned char net; | | unsigned char net; | |
|
| | | /* IPC_NET_SERVICE_DOMAIN_.. */ | |
| unsigned char domain; | | unsigned char domain; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
|
| struct ipc_net_regist { | | struct ipc_net_regist_response { | |
| unsigned char act; // IPC_NET_ACCESS_TECHNOLOGY_... | | /* IPC_NET_ACCESS_TECHNOLOGY_... */ | |
| unsigned char domain; // IPC_NET_SERVICE_DOMAIN_... | | unsigned char act; | |
| unsigned char reg_state; // IPC_NET_REGISTRATION_STATE_... | | /* IPC_NET_SERVICE_DOMAIN_... */ | |
| | | unsigned char domain; | |
| | | /* IPC_NET_REGISTRATION_STATE_... */ | |
| | | unsigned char reg_state; | |
| unsigned char edge; | | unsigned char edge; | |
| unsigned short lac; | | unsigned short lac; | |
| unsigned int cid; | | unsigned int cid; | |
| char rej_cause; | | char rej_cause; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_net_plmn_entry { | | struct ipc_net_plmn_entry { | |
| unsigned char status; // IPC_NET_PLMN_STATUS_... | | unsigned char status; // IPC_NET_PLMN_STATUS_... | |
| char plmn[6]; | | char plmn[6]; | |
| unsigned char type; | | unsigned char type; | |
| | | | |
| skipping to change at line 105 | | skipping to change at line 110 | |
| struct ipc_net_plmn_sel_get { | | struct ipc_net_plmn_sel_get { | |
| unsigned char plmn_sel; | | unsigned char plmn_sel; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_net_plmn_sel_set { | | struct ipc_net_plmn_sel_set { | |
| unsigned char mode; | | unsigned char mode; | |
| char plmn[6]; // 5 plmn bytes + 1 '#' byte | | char plmn[6]; // 5 plmn bytes + 1 '#' byte | |
| unsigned char act; // IPC_NET_ACCESS_TECHNOLOGY_... | | unsigned char act; // IPC_NET_ACCESS_TECHNOLOGY_... | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
|
| void ipc_net_regist_setup(struct ipc_net_regist_get *message, unsigned char | | void ipc_net_regist_get_setup(struct ipc_net_regist_get *message, unsigned | |
| domain); | | char domain); | |
| void ipc_net_plmn_sel_setup(struct ipc_net_plmn_sel_set *message, unsigned | | void ipc_net_plmn_sel_set_setup(struct ipc_net_plmn_sel_set *message, unsig | |
| char mode, char *plmn, unsigned char act); | | ned char mode, char *plmn, unsigned char act); | |
| | | | |
| #endif | | #endif | |
| | | | |
| // vim:ts=4:sw=4:expandtab | | // vim:ts=4:sw=4:expandtab | |
| | | | |
End of changes. 5 change blocks. |
| 9 lines changed or deleted | | 14 lines changed or added | |
|
| radio.h | | radio.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | | * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| */ | | */ | |
| | | | |
| #ifndef __RADIO_H__ | | #ifndef __RADIO_H__ | |
| #define __RADIO_H__ | | #define __RADIO_H__ | |
| | | | |
| #include <stdint.h> | | #include <stdint.h> | |
| | | | |
| #include "types.h" | | #include "types.h" | |
|
| #include "util.h" | | | |
| | | | |
| #define IPC_CLIENT_TYPE_FMT 0 | | #define IPC_CLIENT_TYPE_FMT 0 | |
| #define IPC_CLIENT_TYPE_RFS 1 | | #define IPC_CLIENT_TYPE_RFS 1 | |
| | | | |
| #define IPC_COMMAND(f) ((f->group << 8) | f->index) | | #define IPC_COMMAND(f) ((f->group << 8) | f->index) | |
| #define IPC_GROUP(m) (m >> 8) | | #define IPC_GROUP(m) (m >> 8) | |
| #define IPC_INDEX(m) (m & 0xff) | | #define IPC_INDEX(m) (m & 0xff) | |
| | | | |
| struct ipc_header { | | struct ipc_header { | |
| unsigned short length; | | unsigned short length; | |
| unsigned char mseq, aseq; | | unsigned char mseq, aseq; | |
| unsigned char group, index, type; | | unsigned char group, index, type; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_message_info { | | struct ipc_message_info { | |
| unsigned char mseq; | | unsigned char mseq; | |
| unsigned char aseq; | | unsigned char aseq; | |
| unsigned char group; | | unsigned char group; | |
| unsigned char index; | | unsigned char index; | |
|
| | | unsigned short cmd; | |
| unsigned char type; | | unsigned char type; | |
| unsigned int length; | | unsigned int length; | |
| unsigned char *data; | | unsigned char *data; | |
| }; | | }; | |
| | | | |
| struct ipc_client; | | struct ipc_client; | |
| struct ipc_handlers; | | struct ipc_handlers; | |
| | | | |
|
| | | struct ipc_client_gprs_capabilities { | |
| | | int port_list; | |
| | | int cid_max; | |
| | | }; | |
| | | | |
| typedef void (*ipc_client_log_handler_cb)(const char *message, void *user_d
ata); | | typedef void (*ipc_client_log_handler_cb)(const char *message, void *user_d
ata); | |
| | | | |
| typedef int (*ipc_io_handler_cb)(void *data, unsigned int size, void *io_da
ta); | | typedef int (*ipc_io_handler_cb)(void *data, unsigned int size, void *io_da
ta); | |
| typedef int (*ipc_handler_cb)(void *io_data); | | typedef int (*ipc_handler_cb)(void *io_data); | |
| | | | |
| struct ipc_client* ipc_client_new(int client_type); | | struct ipc_client* ipc_client_new(int client_type); | |
| struct ipc_client *ipc_client_new_for_device(int device_type, int client_ty
pe); | | struct ipc_client *ipc_client_new_for_device(int device_type, int client_ty
pe); | |
| int ipc_client_free(struct ipc_client *client); | | int ipc_client_free(struct ipc_client *client); | |
| | | | |
| int ipc_client_set_log_handler(struct ipc_client *client, ipc_client_log_ha
ndler_cb log_handler_cb, void *user_data); | | int ipc_client_set_log_handler(struct ipc_client *client, ipc_client_log_ha
ndler_cb log_handler_cb, void *user_data); | |
| | | | |
| int ipc_client_set_handlers(struct ipc_client *client, struct ipc_handlers
*handlers); | | int ipc_client_set_handlers(struct ipc_client *client, struct ipc_handlers
*handlers); | |
| int ipc_client_set_io_handlers(struct ipc_client *client, | | int ipc_client_set_io_handlers(struct ipc_client *client, | |
| ipc_io_handler_cb read, void *read_data, | | ipc_io_handler_cb read, void *read_data, | |
| ipc_io_handler_cb write, void *write_data); | | ipc_io_handler_cb write, void *write_data); | |
|
| | | | |
| int ipc_client_set_handlers_common_data(struct ipc_client *client, void *da
ta); | | int ipc_client_set_handlers_common_data(struct ipc_client *client, void *da
ta); | |
| void *ipc_client_get_handlers_common_data(struct ipc_client *client); | | void *ipc_client_get_handlers_common_data(struct ipc_client *client); | |
| int ipc_client_create_handlers_common_data(struct ipc_client *client); | | int ipc_client_create_handlers_common_data(struct ipc_client *client); | |
| int ipc_client_destroy_handlers_common_data(struct ipc_client *client); | | int ipc_client_destroy_handlers_common_data(struct ipc_client *client); | |
| int ipc_client_set_handlers_common_data_fd(struct ipc_client *client, int f
d); | | int ipc_client_set_handlers_common_data_fd(struct ipc_client *client, int f
d); | |
| int ipc_client_get_handlers_common_data_fd(struct ipc_client *client); | | int ipc_client_get_handlers_common_data_fd(struct ipc_client *client); | |
| | | | |
| int ipc_client_bootstrap_modem(struct ipc_client *client); | | int ipc_client_bootstrap_modem(struct ipc_client *client); | |
| int ipc_client_open(struct ipc_client *client); | | int ipc_client_open(struct ipc_client *client); | |
| int ipc_client_close(struct ipc_client *client); | | int ipc_client_close(struct ipc_client *client); | |
| int ipc_client_power_on(struct ipc_client *client); | | int ipc_client_power_on(struct ipc_client *client); | |
| int ipc_client_power_off(struct ipc_client *client); | | int ipc_client_power_off(struct ipc_client *client); | |
|
| | | int ipc_client_gprs_handlers_available(struct ipc_client *client); | |
| | | int ipc_client_gprs_activate(struct ipc_client *client, int cid); | |
| | | int ipc_client_gprs_deactivate(struct ipc_client *client, int cid); | |
| | | char *ipc_client_gprs_get_iface(struct ipc_client *client, int cid); | |
| | | int ipc_client_gprs_get_capabilities(struct ipc_client *client, struct ipc_ | |
| | | client_gprs_capabilities *cap); | |
| | | | |
| int ipc_client_recv(struct ipc_client *client, struct ipc_message_info *res
ponse); | | int ipc_client_recv(struct ipc_client *client, struct ipc_message_info *res
ponse); | |
|
| | | void ipc_client_response_free(struct ipc_client *client, struct ipc_message
_info *response); | |
| | | | |
| /* Convenience functions for ipc_send */ | | /* Convenience functions for ipc_send */ | |
| void ipc_client_send(struct ipc_client *client, const unsigned short comman
d, const char type, unsigned char *data, | | void ipc_client_send(struct ipc_client *client, const unsigned short comman
d, const char type, unsigned char *data, | |
| const int length, unsigned char mseq); | | const int length, unsigned char mseq); | |
| void ipc_client_send_get(struct ipc_client *client, const unsigned short co
mmand, unsigned char mseq); | | void ipc_client_send_get(struct ipc_client *client, const unsigned short co
mmand, unsigned char mseq); | |
| void ipc_client_send_exec(struct ipc_client *client, const unsigned short c
ommand, unsigned char mseq); | | void ipc_client_send_exec(struct ipc_client *client, const unsigned short c
ommand, unsigned char mseq); | |
| | | | |
| /* Utility functions */ | | /* Utility functions */ | |
|
| | | void ipc_client_log_recv(struct ipc_client *client, | |
| | | struct ipc_message_info *response, const char *prefix); | |
| | | void ipc_client_log_send(struct ipc_client *client, | |
| | | struct ipc_message_info *request, const char *prefix); | |
| const char *ipc_response_type_to_str(int type); | | const char *ipc_response_type_to_str(int type); | |
| const char *ipc_request_type_to_str(int type); | | const char *ipc_request_type_to_str(int type); | |
| const char *ipc_command_to_str(int command); | | const char *ipc_command_to_str(int command); | |
|
| void ipc_hex_dump(struct ipc_client *client, void *data, int size); | | | |
| void *ipc_mtd_read(struct ipc_client *client, char *mtd_name, int size, int | | void ipc_client_hex_dump(struct ipc_client *client, void *data, int size); | |
| block_size); | | void *ipc_client_mtd_read(struct ipc_client *client, char *mtd_name, int si | |
| void *ipc_file_read(struct ipc_client *client, char *file_name, int size, i | | ze, int block_size); | |
| nt block_size); | | void *ipc_client_file_read(struct ipc_client *client, char *file_name, int | |
| | | size, int block_size); | |
| | | | |
| #endif | | #endif | |
| | | | |
| // vim:ts=4:sw=4:expandtab | | // vim:ts=4:sw=4:expandtab | |
| | | | |
End of changes. 9 change blocks. |
| 7 lines changed or deleted | | 25 lines changed or added | |
|
| rfs.h | | rfs.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2011 Paul Kocialkowski <contact@paulk.fr> | | * Copyright (C) 2011 Paul Kocialkowski <contact@paulk.fr> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| | | | |
| skipping to change at line 30 | | skipping to change at line 30 | |
| | | | |
| #ifndef __RFS_H__ | | #ifndef __RFS_H__ | |
| #define __RFS_H__ | | #define __RFS_H__ | |
| | | | |
| struct ipc_client; | | struct ipc_client; | |
| struct ipc_message_info; | | struct ipc_message_info; | |
| | | | |
| #define IPC_RFS_NV_READ_ITEM 0x4201 | | #define IPC_RFS_NV_READ_ITEM 0x4201 | |
| #define IPC_RFS_NV_WRITE_ITEM 0x4202 | | #define IPC_RFS_NV_WRITE_ITEM 0x4202 | |
| | | | |
|
| #define NV_DATA_MD5_SECRET "Samsung_Android_RIL" | | #define NV_DATA_PATH_DEFAULT "/efs/nv_data.bin" | |
| #define NV_DATA_SIZE 0x200000 | | #define NV_DATA_MD5_PATH_DEFAULT "/efs/nv_data.bin.md5" | |
| | | #define NV_DATA_BAK_PATH_DEFAULT "/efs/.nv_data.bak" | |
| | | #define NV_DATA_MD5_BAK_PATH_DEFAULT "/efs/.nv_data.bak.md5" | |
| | | #define NV_STATE_PATH_DEFAULT "/efs/.nv_state" | |
| | | #define NV_DATA_SECRET_DEFAULT "Samsung_Android_RIL" | |
| | | #define NV_DATA_SIZE_DEFAULT 0x200000 | |
| | | #define NV_DATA_CHUNK_SIZE_DEFAULT 0x1000 | |
| | | | |
| #define MD5_STRING_SIZE MD5_DIGEST_LENGTH * 2 + 1 | | #define MD5_STRING_SIZE MD5_DIGEST_LENGTH * 2 + 1 | |
| | | | |
| struct ipc_rfs_io { | | struct ipc_rfs_io { | |
| unsigned int offset; | | unsigned int offset; | |
| unsigned int length; | | unsigned int length; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_rfs_io_confirm { | | struct ipc_rfs_io_confirm { | |
| unsigned char confirm; | | unsigned char confirm; | |
| unsigned int offset; | | unsigned int offset; | |
| unsigned int length; | | unsigned int length; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| void md5hash2string(char *out, uint8_t *in); | | void md5hash2string(char *out, uint8_t *in); | |
|
| | | char *nv_data_path(struct ipc_client *client); | |
| | | char *nv_data_md5_path(struct ipc_client *client); | |
| | | char *nv_data_bak_path(struct ipc_client *client); | |
| | | char *nv_data_md5_bak_path(struct ipc_client *client); | |
| | | char *nv_state_path(struct ipc_client *client); | |
| | | char *nv_data_secret(struct ipc_client *client); | |
| | | int nv_data_size(struct ipc_client *client); | |
| | | int nv_data_chunk_size(struct ipc_client *client); | |
| void nv_data_generate(struct ipc_client *client); | | void nv_data_generate(struct ipc_client *client); | |
|
| void nv_data_md5_compute(void *data_p, int size, void *hash); | | void nv_data_md5_compute(void *data_p, int size, char *secret, void *hash); | |
| void nv_data_md5_generate(struct ipc_client *client); | | void nv_data_md5_generate(struct ipc_client *client); | |
| void nv_data_backup_create(struct ipc_client *client); | | void nv_data_backup_create(struct ipc_client *client); | |
| void nv_data_backup_restore(struct ipc_client *client); | | void nv_data_backup_restore(struct ipc_client *client); | |
|
| void nv_data_check(struct ipc_client *client); | | int nv_data_check(struct ipc_client *client); | |
| void nv_data_md5_check(struct ipc_client *client); | | int nv_data_md5_check(struct ipc_client *client); | |
| int nv_data_read(struct ipc_client *client, int offset, int length, char *b
uf); | | int nv_data_read(struct ipc_client *client, int offset, int length, char *b
uf); | |
| int nv_data_write(struct ipc_client *client, int offset, int length, char *
buf); | | int nv_data_write(struct ipc_client *client, int offset, int length, char *
buf); | |
| | | | |
| void ipc_rfs_send_io_confirm_for_nv_write_item(struct ipc_client *client, s
truct ipc_message_info *info); | | void ipc_rfs_send_io_confirm_for_nv_write_item(struct ipc_client *client, s
truct ipc_message_info *info); | |
| void ipc_rfs_send_io_confirm_for_nv_read_item(struct ipc_client *client, st
ruct ipc_message_info *info); | | void ipc_rfs_send_io_confirm_for_nv_read_item(struct ipc_client *client, st
ruct ipc_message_info *info); | |
| | | | |
| #endif | | #endif | |
| | | | |
| // vim:ts=4:sw=4:expandtab | | // vim:ts=4:sw=4:expandtab | |
| | | | |
End of changes. 5 change blocks. |
| 6 lines changed or deleted | | 20 lines changed or added | |
|
| sec.h | | sec.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | | * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | |
| * Copyright (C) 2011 Paul Kocialkowski <contact@paulk.fr> | | * Copyright (C) 2011 Paul Kocialkowski <contact@paulk.fr> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| */ | | */ | |
| | | | |
| #ifndef __SEC_H__ | | #ifndef __SEC_H__ | |
| #define __SEC_H__ | | #define __SEC_H__ | |
| | | | |
| struct ipc_message_info; | | struct ipc_message_info; | |
| | | | |
|
| #define IPC_SEC_PIN_STATUS 0x0501 | | /* Possible SEC related IPC message types */ | |
| #define IPC_SEC_PHONE_LOCK 0x0502 | | #define IPC_SEC_SIM_STATUS 0x0501 | |
| #define IPC_SEC_CHANGE_LOCKING_PW 0x0503 | | #define IPC_SEC_PHONE_LOCK 0x0502 | |
| #define IPC_SEC_SIM_LANG 0x0504 | | #define IPC_SEC_CHANGE_LOCKING_PW 0x0503 | |
| #define IPC_SEC_RSIM_ACCESS 0x0505 | | #define IPC_SEC_SIM_LANG 0x0504 | |
| #define IPC_SEC_GSIM_ACCESS 0x0506 | | #define IPC_SEC_RSIM_ACCESS 0x0505 | |
| #define IPC_SEC_SIM_ICC_TYPE 0x0507 | | #define IPC_SEC_GSIM_ACCESS 0x0506 | |
| #define IPC_SEC_LOCK_INFO 0x0508 | | #define IPC_SEC_SIM_ICC_TYPE 0x0507 | |
| #define IPC_SEC_ISIM_AUTH 0x0509 | | #define IPC_SEC_LOCK_INFO 0x0508 | |
| | | #define IPC_SEC_ISIM_AUTH 0x0509 | |
| #define IPC_SEC_PIN_SIM_INITIALIZING 0x00 | | | |
| #define IPC_SEC_PIN_SIM_SIM_LOCK_REQUIRED 0x01 | | /* SIM status */ | |
| #define IPC_SEC_PIN_SIM_INSIDE_PF_ERROR 0x02 | | #define IPC_SEC_SIM_STATUS_READY 0x00 | |
| #define IPC_SEC_PIN_SIM_LOCK_SC 0x03 | | #define IPC_SEC_SIM_STATUS_SIM_LOCK_REQUIRED 0x01 | |
| #define IPC_SEC_PIN_SIM_LOCK_FD 0x04 | | #define IPC_SEC_SIM_STATUS_INSIDE_PF_ERROR 0x02 | |
| #define IPC_SEC_PIN_SIM_LOCK_PN 0x05 | | #define IPC_SEC_SIM_STATUS_LOCK_SC 0x03 | |
| #define IPC_SEC_PIN_SIM_LOCK_PU 0x06 | | #define IPC_SEC_SIM_STATUS_LOCK_FD 0x04 | |
| #define IPC_SEC_PIN_SIM_LOCK_PP 0x07 | | #define IPC_SEC_SIM_STATUS_LOCK_PN 0x05 | |
| #define IPC_SEC_PIN_SIM_LOCK_PC 0x08 | | #define IPC_SEC_SIM_STATUS_LOCK_PU 0x06 | |
| #define IPC_SEC_PIN_SIM_CARD_NOT_PRESENT 0x80 | | #define IPC_SEC_SIM_STATUS_LOCK_PP 0x07 | |
| #define IPC_SEC_PIN_SIM_CARD_ERROR 0x81 | | #define IPC_SEC_SIM_STATUS_LOCK_PC 0x08 | |
| #define IPC_SEC_PIN_SIM_INIT_COMPLETE 0x82 | | #define IPC_SEC_SIM_STATUS_CARD_NOT_PRESENT 0x80 | |
| #define IPC_SEC_PIN_SIM_PB_INIT_COMPLETE 0x83 | | #define IPC_SEC_SIM_STATUS_CARD_ERROR 0x81 | |
| | | #define IPC_SEC_SIM_STATUS_INIT_COMPLETE 0x82 | |
| /* Key types for the SIM card (SC) facility */ | | #define IPC_SEC_SIM_STATUS_PB_INIT_COMPLETE 0x83 | |
| #define IPC_SEC_PIN_SIM_LOCK_SC_PIN1_REQ 0x01 | | | |
| #define IPC_SEC_PIN_SIM_LOCK_SC_PUK_REQ 0x02 | | /* SIM/Network facility types */ | |
| #define IPC_SEC_PIN_SIM_LOCK_SC_CARD_BLOCKED 0x05 | | #define IPC_SEC_FACILITY_TYPE_SC 0x03 | |
| | | #define IPC_SEC_FACILITY_TYPE_FD 0x04 | |
| #define IPC_SEC_PIN_TYPE_PIN1 0x03 | | #define IPC_SEC_FACILITY_TYPE_PN 0x05 | |
| #define IPC_SEC_PIN_TYPE_PIN2 0x09 | | #define IPC_SEC_FACILITY_TYPE_PU 0x06 | |
| | | #define IPC_SEC_FACILITY_TYPE_PP 0x07 | |
| #define IPC_SEC_SIM_CARD_TYPE_UNKNOWN 0x00 | | #define IPC_SEC_FACILITY_TYPE_PC 0x08 | |
| #define IPC_SEC_SIM_CARD_TYPE_SIM 0x01 | | | |
| #define IPC_SEC_SIM_CARD_TYPE_USIM 0x02 | | /* SIM card (SC) facility lock types */ | |
| | | #define IPC_SEC_FACILITY_LOCK_TYPE_SC_UNLOCKED 0x00 | |
| #define IPC_SEC_RSIM_COMMAND_READ_BINARY 0xb0 | | #define IPC_SEC_FACILITY_LOCK_TYPE_SC_PIN1_REQ 0x01 | |
| #define IPC_SEC_RSIM_COMMAND_READ_RECORD 0xc0 | | #define IPC_SEC_FACILITY_LOCK_TYPE_SC_PUK_REQ 0x02 | |
| #define IPC_SEC_RSIM_COMMAND_UPDATE_BINARY 0xd6 | | #define IPC_SEC_FACILITY_LOCK_TYPE_SC_CARD_BLOCKED 0x05 | |
| #define IPC_SEC_RSIM_COMMAND_STATUS 0xf2 | | | |
| | | /* PIN type */ | |
| | | #define IPC_SEC_PIN_TYPE_PIN1 0x03 | |
| | | #define IPC_SEC_PIN_TYPE_PIN2 0x09 | |
| | | | |
| | | /* Type of the used SIM card */ | |
| | | #define IPC_SEC_SIM_CARD_TYPE_UNKNOWN 0x00 | |
| | | #define IPC_SEC_SIM_CARD_TYPE_SIM 0x01 | |
| | | #define IPC_SEC_SIM_CARD_TYPE_USIM 0x02 | |
| | | | |
| | | /* Possible RSIM commads (see TS 27.00.1 8.18) */ | |
| | | #define IPC_SEC_RSIM_COMMAND_READ_BINARY 0xb0 | |
| | | #define IPC_SEC_RSIM_COMMAND_READ_RECORD 0xb2 | |
| | | #define IPC_SEC_RSIM_COMMAND_GET_RESPONSE 0xc0 | |
| | | #define IPC_SEC_RSIM_COMMAND_UPDATE_BINARY 0xd6 | |
| | | #define IPC_SEC_RSIM_COMMAND_UPDATE_RECORD 0xdc | |
| | | #define IPC_SEC_RSIM_COMMAND_STATUS 0xf2 | |
| | | #define IPC_SEC_RSIM_COMMAND_RETRIEVE_DATA 0xcb | |
| | | #define IPC_SEC_RSIM_COMMAND_SET_DATA 0xdb | |
| | | | |
|
| struct ipc_sec_pin_status_response { | | #define IPC_SEC_RSIM_FILE_STRUCTURE_TRANSPARENT 0x83 | |
| unsigned char type; | | #define IPC_SEC_RSIM_FILE_STRUCTURE_LINEAR_FIXED 0x00 | |
| unsigned char key; | | | |
| | | struct ipc_sec_sim_status_response { | |
| | | /* IPC_SEC_SIM_STATUS_... */ | |
| | | unsigned char status; | |
| | | /* IPC_SEC_FACILITY_LOCK_TYPE_... */ | |
| | | unsigned char facility_lock; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_sec_pin_status_set { | | struct ipc_sec_pin_status_set { | |
|
| | | /* IPC_SEC_SIM_STATUS_... */ | |
| unsigned char type; | | unsigned char type; | |
| unsigned char length1; | | unsigned char length1; | |
| unsigned char length2; | | unsigned char length2; | |
| unsigned char pin1[8]; | | unsigned char pin1[8]; | |
| unsigned char pin2[8]; | | unsigned char pin2[8]; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_sec_phone_lock_set { | | struct ipc_sec_phone_lock_set { | |
|
| unsigned char type; // IPC_SEC_PIN_SIM_LOCK_... | | /* IPC_SEC_SIM_STATUS_... */ | |
| unsigned char lock; | | unsigned char type; | |
| | | unsigned char lock; /* 1: lock, 0: unlock */ | |
| unsigned char length; | | unsigned char length; | |
| unsigned char password[39]; | | unsigned char password[39]; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_sec_phone_lock_get { | | struct ipc_sec_phone_lock_get { | |
|
| unsigned char type; // IPC_SEC_PIN_SIM_LOCK_... | | /* IPC_SEC_FACILITY_TYPE_... */ | |
| | | unsigned char facility; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_sec_phone_lock_response { | | struct ipc_sec_phone_lock_response { | |
|
| unsigned char type; | | /* IPC_SEC_FACILITY_TYPE_... */ | |
| unsigned char status; | | unsigned char facility; | |
| | | unsigned char status; /* 1: active, 0: not active */ | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
|
| struct ipc_sec_change_locking_pw { | | struct ipc_sec_change_locking_pw_set { | |
| unsigned char type; // IPC_SEC_PIN_SIM_LOCK_... | | /* IPC_SEC_FACILITY_TYPE_... */ | |
| | | unsigned char facility; | |
| unsigned char length_old; | | unsigned char length_old; | |
| unsigned char length_new; | | unsigned char length_new; | |
| unsigned char password_old[39]; | | unsigned char password_old[39]; | |
| unsigned char password_new[39]; | | unsigned char password_new[39]; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
|
| struct ipc_sec_rsim_access_request { | | struct ipc_sec_rsim_access_get { | |
| | | /* IPC_SEC_RSIM_COMMAND_... */ | |
| unsigned char command; | | unsigned char command; | |
| unsigned short fileid; | | unsigned short fileid; | |
| unsigned char p1, p2, p3; | | unsigned char p1, p2, p3; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_sec_rsim_access_response { | | struct ipc_sec_rsim_access_response { | |
| unsigned char sw1, sw2; | | unsigned char sw1, sw2; | |
| unsigned char len; | | unsigned char len; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
|
| struct ipc_sec_lock_info_request { | | // This is the data structure for SIM ICC type != 1 | |
| unsigned char unk0; | | struct ipc_sec_rsim_access_response_data { | |
| | | unsigned char unk1[3]; | |
| | | unsigned char offset; | |
| | | unsigned char unk2[2]; | |
| | | unsigned char file_structure; | |
| | | unsigned char record_length; | |
| | | } __attribute__((__packed__)); | |
| | | | |
| | | struct ipc_sec_lock_info_get { | |
| | | unsigned char unk0; /* needs to be "1" */ | |
| | | /* IPC_SEC_PIN_TYPE_... */ | |
| unsigned char pin_type; | | unsigned char pin_type; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_sec_lock_info_response { | | struct ipc_sec_lock_info_response { | |
| unsigned char num; | | unsigned char num; | |
|
| | | /* IPC_SEC_PIN_TYPE_... */ | |
| unsigned char type; | | unsigned char type; | |
| unsigned char key; | | unsigned char key; | |
| unsigned char attempts; | | unsigned char attempts; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| struct ipc_sec_sim_icc_type { | | struct ipc_sec_sim_icc_type { | |
| unsigned char type; | | unsigned char type; | |
| } __attribute__((__packed__)); | | } __attribute__((__packed__)); | |
| | | | |
| void ipc_sec_pin_status_set_setup(struct ipc_sec_pin_status_set *message, | | void ipc_sec_pin_status_set_setup(struct ipc_sec_pin_status_set *message, | |
| unsigned char pin_type, char *pin1, char
*pin2); | | unsigned char pin_type, char *pin1, char
*pin2); | |
| | | | |
|
| | | void ipc_sec_lock_info_get_setup(struct ipc_sec_lock_info_get *message, | |
| | | unsigned char pin_type); | |
| | | | |
| | | void ipc_sec_phone_lock_set_setup(struct ipc_sec_phone_lock_set *message, | |
| | | int pin_type, int enable, char *passwd); | |
| | | | |
| char* ipc_sec_rsim_access_response_get_file_data(struct ipc_message_info *r
esponse); | | char* ipc_sec_rsim_access_response_get_file_data(struct ipc_message_info *r
esponse); | |
| | | | |
|
| | | void ipc_sec_change_locking_pw_set_setup(struct ipc_sec_change_locking_pw_s | |
| | | et *message, | |
| | | int type, char *passwd_old, char * | |
| | | passwd_new); | |
| | | | |
| #endif | | #endif | |
| | | | |
| // vim:ts=4:sw=4:expandtab | | // vim:ts=4:sw=4:expandtab | |
| | | | |
End of changes. 13 change blocks. |
| 54 lines changed or deleted | | 105 lines changed or added | |
|
| sms.h | | sms.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | | * Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| | | | |
| skipping to change at line 55 | | skipping to change at line 55 | |
| #define IPC_SMS_PARAM_COUNT 0x0410 | | #define IPC_SMS_PARAM_COUNT 0x0410 | |
| #define IPC_SMS_PARAM 0x0411 | | #define IPC_SMS_PARAM 0x0411 | |
| | | | |
| #define IPC_SMS_MSG_MULTIPLE 1 | | #define IPC_SMS_MSG_MULTIPLE 1 | |
| #define IPC_SMS_MSG_SINGLE 2 | | #define IPC_SMS_MSG_SINGLE 2 | |
| | | | |
| #define IPC_SMS_TYPE_POINT_TO_POINT 1 | | #define IPC_SMS_TYPE_POINT_TO_POINT 1 | |
| #define IPC_SMS_TYPE_STATUS_REPORT 2 | | #define IPC_SMS_TYPE_STATUS_REPORT 2 | |
| #define IPC_SMS_TYPE_OUTGOING 2 | | #define IPC_SMS_TYPE_OUTGOING 2 | |
| | | | |
|
| unsigned char* ipc_sms_send_msg_pack(struct ipc_sms_send_msg *msg, char *sm
sc, unsigned char *pdu, int length); | | unsigned char* ipc_sms_send_msg_pack(struct ipc_sms_send_msg_request *msg,
char *smsc, unsigned char *pdu, int length); | |
| | | | |
| #endif | | #endif | |
| | | | |
| // vim:ts=4:sw=4:expandtab | | // vim:ts=4:sw=4:expandtab | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| snd.h | | snd.h | |
| /** | | /** | |
| * This file is part of libsamsung-ipc. | | * This file is part of libsamsung-ipc. | |
| * | | * | |
| * Copyright (C) 2011 Paul Kocialkowski <contact@oaulk.fr> | | * Copyright (C) 2011 Paul Kocialkowski <contact@oaulk.fr> | |
| * | | * | |
| * libsamsung-ipc is free software: you can redistribute it and/or modify | | * libsamsung-ipc is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
|
| * the Free Software Foundation, either version 3 of the License, or | | * the Free Software Foundation, either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * libsamsung-ipc is distributed in the hope that it will be useful, | | * libsamsung-ipc is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | | * GNU General Public License for more details. | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | | * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. | |
| * | | * | |
| */ | | */ | |
| | | | |
| #ifndef __SND_H__ | | #ifndef __SND_H__ | |
| #define __SND_H__ | | #define __SND_H__ | |
| | | | |
| struct ipc_message_info; | | struct ipc_message_info; | |
| | | | |
| #define IPC_SND_SPKR_VOLUME_CTRL 0x0901 | | #define IPC_SND_SPKR_VOLUME_CTRL 0x0901 | |
| #define IPC_SND_MIC_MUTE_CTRL 0x0902 | | #define IPC_SND_MIC_MUTE_CTRL 0x0902 | |
| #define IPC_SND_AUDIO_PATH_CTRL 0x0903 | | #define IPC_SND_AUDIO_PATH_CTRL 0x0903 | |
|
| | | #define IPC_SND_AUDIO_SOURCE_CTRL 0x0904 | |
| | | #define IPC_SND_LOOPBACK_CTRL 0x0905 | |
| | | #define IPC_SND_VOICE_RECORDING_CTRL 0x0906 | |
| | | #define IPC_SND_VIDEO_CALL_CTRL 0x0907 | |
| #define IPC_SND_RINGBACK_TONE_CTRL 0x0908 | | #define IPC_SND_RINGBACK_TONE_CTRL 0x0908 | |
| #define IPC_SND_CLOCK_CTRL 0x0909 | | #define IPC_SND_CLOCK_CTRL 0x0909 | |
|
| | | #define IPC_SND_WB_AMR_STATUS 0x090A | |
| | | | |
| #define IPC_SND_VOLUME_TYPE_VOICE 0x01 | | #define IPC_SND_VOLUME_TYPE_VOICE 0x01 | |
| #define IPC_SND_VOLUME_TYPE_SPEAKER 0x11 | | #define IPC_SND_VOLUME_TYPE_SPEAKER 0x11 | |
| #define IPC_SND_VOLUME_TYPE_HEADSET 0x31 | | #define IPC_SND_VOLUME_TYPE_HEADSET 0x31 | |
| #define IPC_SND_VOLUME_TYPE_BTVOICE 0x41 | | #define IPC_SND_VOLUME_TYPE_BTVOICE 0x41 | |
| | | | |
| #define IPC_SND_AUDIO_PATH_HANDSET 0x01 | | #define IPC_SND_AUDIO_PATH_HANDSET 0x01 | |
| #define IPC_SND_AUDIO_PATH_HEADSET 0x02 | | #define IPC_SND_AUDIO_PATH_HEADSET 0x02 | |
| #define IPC_SND_AUDIO_PATH_SPEAKER 0x06 | | #define IPC_SND_AUDIO_PATH_SPEAKER 0x06 | |
| #define IPC_SND_AUDIO_PATH_BLUETOOTH 0x04 | | #define IPC_SND_AUDIO_PATH_BLUETOOTH 0x04 | |
| | | | |
End of changes. 3 change blocks. |
| 1 lines changed or deleted | | 6 lines changed or added | |
|