diff options
| -rw-r--r-- | include/libirecovery.h | 88 | ||||
| -rw-r--r-- | src/libirecovery.c | 88 |
2 files changed, 88 insertions, 88 deletions
diff --git a/include/libirecovery.h b/include/libirecovery.h index a33e49a..94522d7 100644 --- a/include/libirecovery.h +++ b/include/libirecovery.h | |||
| @@ -27,6 +27,16 @@ extern "C" { | |||
| 27 | 27 | ||
| 28 | #include <stdint.h> | 28 | #include <stdint.h> |
| 29 | 29 | ||
| 30 | #ifdef WIN32 | ||
| 31 | #define IRECV_API __declspec( dllexport ) | ||
| 32 | #else | ||
| 33 | #ifdef HAVE_FVISIBILITY | ||
| 34 | #define IRECV_API __attribute__((visibility("default"))) | ||
| 35 | #else | ||
| 36 | #define IRECV_API | ||
| 37 | #endif | ||
| 38 | #endif | ||
| 39 | |||
| 30 | enum irecv_mode { | 40 | enum irecv_mode { |
| 31 | IRECV_K_RECOVERY_MODE_1 = 0x1280, | 41 | IRECV_K_RECOVERY_MODE_1 = 0x1280, |
| 32 | IRECV_K_RECOVERY_MODE_2 = 0x1281, | 42 | IRECV_K_RECOVERY_MODE_2 = 0x1281, |
| @@ -111,64 +121,64 @@ typedef struct irecv_client_private irecv_client_private; | |||
| 111 | typedef irecv_client_private* irecv_client_t; | 121 | typedef irecv_client_private* irecv_client_t; |
| 112 | 122 | ||
| 113 | /* library */ | 123 | /* library */ |
| 114 | void irecv_set_debug_level(int level); | 124 | IRECV_API void irecv_set_debug_level(int level); |
| 115 | const char* irecv_strerror(irecv_error_t error); | 125 | IRECV_API const char* irecv_strerror(irecv_error_t error); |
| 116 | void irecv_init(void); /* deprecated: libirecovery has constructor now */ | 126 | IRECV_API void irecv_init(void); /* deprecated: libirecovery has constructor now */ |
| 117 | void irecv_exit(void); /* deprecated: libirecovery has destructor now */ | 127 | IRECV_API void irecv_exit(void); /* deprecated: libirecovery has destructor now */ |
| 118 | 128 | ||
| 119 | /* device connectivity */ | 129 | /* device connectivity */ |
| 120 | irecv_error_t irecv_open_with_ecid(irecv_client_t* client, uint64_t ecid); | 130 | IRECV_API irecv_error_t irecv_open_with_ecid(irecv_client_t* client, uint64_t ecid); |
| 121 | irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, uint64_t ecid, int attempts); | 131 | IRECV_API irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, uint64_t ecid, int attempts); |
| 122 | irecv_error_t irecv_reset(irecv_client_t client); | 132 | IRECV_API irecv_error_t irecv_reset(irecv_client_t client); |
| 123 | irecv_error_t irecv_close(irecv_client_t client); | 133 | IRECV_API irecv_error_t irecv_close(irecv_client_t client); |
| 124 | irecv_client_t irecv_reconnect(irecv_client_t client, int initial_pause); | 134 | IRECV_API irecv_client_t irecv_reconnect(irecv_client_t client, int initial_pause); |
| 125 | 135 | ||
| 126 | /* misc */ | 136 | /* misc */ |
| 127 | irecv_error_t irecv_receive(irecv_client_t client); | 137 | IRECV_API irecv_error_t irecv_receive(irecv_client_t client); |
| 128 | irecv_error_t irecv_execute_script(irecv_client_t client, const char* script); | 138 | IRECV_API irecv_error_t irecv_execute_script(irecv_client_t client, const char* script); |
| 129 | irecv_error_t irecv_reset_counters(irecv_client_t client); | 139 | IRECV_API irecv_error_t irecv_reset_counters(irecv_client_t client); |
| 130 | irecv_error_t irecv_finish_transfer(irecv_client_t client); | 140 | IRECV_API irecv_error_t irecv_finish_transfer(irecv_client_t client); |
| 131 | irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client); | 141 | IRECV_API irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client); |
| 132 | 142 | ||
| 133 | /* usb helpers */ | 143 | /* usb helpers */ |
| 134 | irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configuration); | 144 | IRECV_API irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configuration); |
| 135 | irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, int usb_alt_interface); | 145 | IRECV_API irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, int usb_alt_interface); |
| 136 | int irecv_usb_control_transfer(irecv_client_t client, uint8_t bm_request_type, uint8_t b_request, uint16_t w_value, uint16_t w_index, unsigned char *data, uint16_t w_length, unsigned int timeout); | 146 | IRECV_API int irecv_usb_control_transfer(irecv_client_t client, uint8_t bm_request_type, uint8_t b_request, uint16_t w_value, uint16_t w_index, unsigned char *data, uint16_t w_length, unsigned int timeout); |
| 137 | int irecv_usb_bulk_transfer(irecv_client_t client, unsigned char endpoint, unsigned char *data, int length, int *transferred, unsigned int timeout); | 147 | IRECV_API int irecv_usb_bulk_transfer(irecv_client_t client, unsigned char endpoint, unsigned char *data, int length, int *transferred, unsigned int timeout); |
| 138 | 148 | ||
| 139 | /* events */ | 149 | /* events */ |
| 140 | typedef void(*irecv_device_event_cb_t)(const irecv_device_event_t* event, void *user_data); | 150 | typedef void(*irecv_device_event_cb_t)(const irecv_device_event_t* event, void *user_data); |
| 141 | typedef struct irecv_device_event_context* irecv_device_event_context_t; | 151 | typedef struct irecv_device_event_context* irecv_device_event_context_t; |
| 142 | irecv_error_t irecv_device_event_subscribe(irecv_device_event_context_t *context, irecv_device_event_cb_t callback, void *user_data); | 152 | IRECV_API irecv_error_t irecv_device_event_subscribe(irecv_device_event_context_t *context, irecv_device_event_cb_t callback, void *user_data); |
| 143 | irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_context_t context); | 153 | IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_context_t context); |
| 144 | typedef int(*irecv_event_cb_t)(irecv_client_t client, const irecv_event_t* event); | 154 | typedef int(*irecv_event_cb_t)(irecv_client_t client, const irecv_event_t* event); |
| 145 | irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type, irecv_event_cb_t callback, void *user_data); | 155 | IRECV_API irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type, irecv_event_cb_t callback, void *user_data); |
| 146 | irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type type); | 156 | IRECV_API irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type type); |
| 147 | 157 | ||
| 148 | /* I/O */ | 158 | /* I/O */ |
| 149 | irecv_error_t irecv_send_file(irecv_client_t client, const char* filename, int dfu_notify_finished); | 159 | IRECV_API irecv_error_t irecv_send_file(irecv_client_t client, const char* filename, int dfu_notify_finished); |
| 150 | irecv_error_t irecv_send_command(irecv_client_t client, const char* command); | 160 | IRECV_API irecv_error_t irecv_send_command(irecv_client_t client, const char* command); |
| 151 | irecv_error_t irecv_send_command_breq(irecv_client_t client, const char* command, uint8_t b_request); | 161 | IRECV_API irecv_error_t irecv_send_command_breq(irecv_client_t client, const char* command, uint8_t b_request); |
| 152 | irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, unsigned long length, int dfu_notify_finished); | 162 | IRECV_API irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, unsigned long length, int dfu_notify_finished); |
| 153 | irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned long length); | 163 | IRECV_API irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned long length); |
| 154 | 164 | ||
| 155 | /* commands */ | 165 | /* commands */ |
| 156 | irecv_error_t irecv_saveenv(irecv_client_t client); | 166 | IRECV_API irecv_error_t irecv_saveenv(irecv_client_t client); |
| 157 | irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** value); | 167 | IRECV_API irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** value); |
| 158 | irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const char* value); | 168 | IRECV_API irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const char* value); |
| 159 | irecv_error_t irecv_setenv_np(irecv_client_t client, const char* variable, const char* value); | 169 | IRECV_API irecv_error_t irecv_setenv_np(irecv_client_t client, const char* variable, const char* value); |
| 160 | irecv_error_t irecv_reboot(irecv_client_t client); | 170 | IRECV_API irecv_error_t irecv_reboot(irecv_client_t client); |
| 161 | irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value); | 171 | IRECV_API irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value); |
| 162 | 172 | ||
| 163 | /* device information */ | 173 | /* device information */ |
| 164 | irecv_error_t irecv_get_mode(irecv_client_t client, int* mode); | 174 | IRECV_API irecv_error_t irecv_get_mode(irecv_client_t client, int* mode); |
| 165 | const struct irecv_device_info* irecv_get_device_info(irecv_client_t client); | 175 | IRECV_API const struct irecv_device_info* irecv_get_device_info(irecv_client_t client); |
| 166 | 176 | ||
| 167 | /* device database queries */ | 177 | /* device database queries */ |
| 168 | irecv_device_t irecv_devices_get_all(void); | 178 | IRECV_API irecv_device_t irecv_devices_get_all(void); |
| 169 | irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_device_t* device); | 179 | IRECV_API irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_device_t* device); |
| 170 | irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, irecv_device_t* device); | 180 | IRECV_API irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, irecv_device_t* device); |
| 171 | irecv_error_t irecv_devices_get_device_by_hardware_model(const char* hardware_model, irecv_device_t* device); | 181 | IRECV_API irecv_error_t irecv_devices_get_device_by_hardware_model(const char* hardware_model, irecv_device_t* device); |
| 172 | 182 | ||
| 173 | #ifdef __cplusplus | 183 | #ifdef __cplusplus |
| 174 | } | 184 | } |
diff --git a/src/libirecovery.c b/src/libirecovery.c index 8ebc9fa..6edb948 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c | |||
| @@ -57,16 +57,6 @@ | |||
| 57 | #endif | 57 | #endif |
| 58 | #endif | 58 | #endif |
| 59 | 59 | ||
| 60 | #ifdef WIN32 | ||
| 61 | #define IRECV_API __declspec( dllexport ) | ||
| 62 | #else | ||
| 63 | #ifdef HAVE_FVISIBILITY | ||
| 64 | #define IRECV_API __attribute__((visibility("default"))) | ||
| 65 | #else | ||
| 66 | #define IRECV_API | ||
| 67 | #endif | ||
| 68 | #endif | ||
| 69 | |||
| 70 | #include "libirecovery.h" | 60 | #include "libirecovery.h" |
| 71 | 61 | ||
| 72 | struct irecv_client_private { | 62 | struct irecv_client_private { |
| @@ -1040,14 +1030,14 @@ static int check_context(irecv_client_t client) { | |||
| 1040 | } | 1030 | } |
| 1041 | #endif | 1031 | #endif |
| 1042 | 1032 | ||
| 1043 | IRECV_API void irecv_init(void) | 1033 | void irecv_init(void) |
| 1044 | { | 1034 | { |
| 1045 | #ifndef USE_DUMMY | 1035 | #ifndef USE_DUMMY |
| 1046 | thread_once(&init_once, _irecv_init); | 1036 | thread_once(&init_once, _irecv_init); |
| 1047 | #endif | 1037 | #endif |
| 1048 | } | 1038 | } |
| 1049 | 1039 | ||
| 1050 | IRECV_API void irecv_exit(void) | 1040 | void irecv_exit(void) |
| 1051 | { | 1041 | { |
| 1052 | #ifndef USE_DUMMY | 1042 | #ifndef USE_DUMMY |
| 1053 | thread_once(&deinit_once, _irecv_deinit); | 1043 | thread_once(&deinit_once, _irecv_deinit); |
| @@ -1089,7 +1079,7 @@ static int iokit_usb_control_transfer(irecv_client_t client, uint8_t bm_request_ | |||
| 1089 | #endif | 1079 | #endif |
| 1090 | #endif | 1080 | #endif |
| 1091 | 1081 | ||
| 1092 | IRECV_API int irecv_usb_control_transfer(irecv_client_t client, uint8_t bm_request_type, uint8_t b_request, uint16_t w_value, uint16_t w_index, unsigned char *data, uint16_t w_length, unsigned int timeout) { | 1082 | int irecv_usb_control_transfer(irecv_client_t client, uint8_t bm_request_type, uint8_t b_request, uint16_t w_value, uint16_t w_index, unsigned char *data, uint16_t w_length, unsigned int timeout) { |
| 1093 | #ifdef USE_DUMMY | 1083 | #ifdef USE_DUMMY |
| 1094 | return IRECV_E_UNSUPPORTED; | 1084 | return IRECV_E_UNSUPPORTED; |
| 1095 | #else | 1085 | #else |
| @@ -1199,7 +1189,7 @@ static int iokit_usb_bulk_transfer(irecv_client_t client, | |||
| 1199 | #endif | 1189 | #endif |
| 1200 | #endif | 1190 | #endif |
| 1201 | 1191 | ||
| 1202 | IRECV_API int irecv_usb_bulk_transfer(irecv_client_t client, | 1192 | int irecv_usb_bulk_transfer(irecv_client_t client, |
| 1203 | unsigned char endpoint, | 1193 | unsigned char endpoint, |
| 1204 | unsigned char *data, | 1194 | unsigned char *data, |
| 1205 | int length, | 1195 | int length, |
| @@ -1420,7 +1410,7 @@ static irecv_error_t iokit_open_with_ecid(irecv_client_t* pclient, uint64_t ecid | |||
| 1420 | #endif | 1410 | #endif |
| 1421 | #endif | 1411 | #endif |
| 1422 | 1412 | ||
| 1423 | IRECV_API irecv_error_t irecv_open_with_ecid(irecv_client_t* pclient, uint64_t ecid) { | 1413 | irecv_error_t irecv_open_with_ecid(irecv_client_t* pclient, uint64_t ecid) { |
| 1424 | #ifdef USE_DUMMY | 1414 | #ifdef USE_DUMMY |
| 1425 | return IRECV_E_UNSUPPORTED; | 1415 | return IRECV_E_UNSUPPORTED; |
| 1426 | #else | 1416 | #else |
| @@ -1573,7 +1563,7 @@ IRECV_API irecv_error_t irecv_open_with_ecid(irecv_client_t* pclient, uint64_t e | |||
| 1573 | #endif | 1563 | #endif |
| 1574 | } | 1564 | } |
| 1575 | 1565 | ||
| 1576 | IRECV_API irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configuration) { | 1566 | irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configuration) { |
| 1577 | #ifdef USE_DUMMY | 1567 | #ifdef USE_DUMMY |
| 1578 | return IRECV_E_UNSUPPORTED; | 1568 | return IRECV_E_UNSUPPORTED; |
| 1579 | #else | 1569 | #else |
| @@ -1689,7 +1679,7 @@ static irecv_error_t iokit_usb_set_interface(irecv_client_t client, int usb_inte | |||
| 1689 | #endif | 1679 | #endif |
| 1690 | #endif | 1680 | #endif |
| 1691 | 1681 | ||
| 1692 | IRECV_API irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, int usb_alt_interface) { | 1682 | irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, int usb_alt_interface) { |
| 1693 | #ifdef USE_DUMMY | 1683 | #ifdef USE_DUMMY |
| 1694 | return IRECV_E_UNSUPPORTED; | 1684 | return IRECV_E_UNSUPPORTED; |
| 1695 | #else | 1685 | #else |
| @@ -1725,7 +1715,7 @@ IRECV_API irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_i | |||
| 1725 | #endif | 1715 | #endif |
| 1726 | } | 1716 | } |
| 1727 | 1717 | ||
| 1728 | IRECV_API irecv_error_t irecv_reset(irecv_client_t client) { | 1718 | irecv_error_t irecv_reset(irecv_client_t client) { |
| 1729 | #ifdef USE_DUMMY | 1719 | #ifdef USE_DUMMY |
| 1730 | return IRECV_E_UNSUPPORTED; | 1720 | return IRECV_E_UNSUPPORTED; |
| 1731 | #else | 1721 | #else |
| @@ -1758,7 +1748,7 @@ IRECV_API irecv_error_t irecv_reset(irecv_client_t client) { | |||
| 1758 | #endif | 1748 | #endif |
| 1759 | } | 1749 | } |
| 1760 | 1750 | ||
| 1761 | IRECV_API irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, uint64_t ecid, int attempts) { | 1751 | irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, uint64_t ecid, int attempts) { |
| 1762 | #ifdef USE_DUMMY | 1752 | #ifdef USE_DUMMY |
| 1763 | return IRECV_E_UNSUPPORTED; | 1753 | return IRECV_E_UNSUPPORTED; |
| 1764 | #else | 1754 | #else |
| @@ -1781,7 +1771,7 @@ IRECV_API irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclien | |||
| 1781 | #endif | 1771 | #endif |
| 1782 | } | 1772 | } |
| 1783 | 1773 | ||
| 1784 | IRECV_API irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type, irecv_event_cb_t callback, void* user_data) { | 1774 | irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type, irecv_event_cb_t callback, void* user_data) { |
| 1785 | #ifdef USE_DUMMY | 1775 | #ifdef USE_DUMMY |
| 1786 | return IRECV_E_UNSUPPORTED; | 1776 | return IRECV_E_UNSUPPORTED; |
| 1787 | #else | 1777 | #else |
| @@ -1818,7 +1808,7 @@ IRECV_API irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event | |||
| 1818 | #endif | 1808 | #endif |
| 1819 | } | 1809 | } |
| 1820 | 1810 | ||
| 1821 | IRECV_API irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type type) { | 1811 | irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type type) { |
| 1822 | #ifdef USE_DUMMY | 1812 | #ifdef USE_DUMMY |
| 1823 | return IRECV_E_UNSUPPORTED; | 1813 | return IRECV_E_UNSUPPORTED; |
| 1824 | #else | 1814 | #else |
| @@ -2426,7 +2416,7 @@ static void *_irecv_event_handler(void* data) | |||
| 2426 | } | 2416 | } |
| 2427 | #endif /* !USE_DUMMY */ | 2417 | #endif /* !USE_DUMMY */ |
| 2428 | 2418 | ||
| 2429 | IRECV_API irecv_error_t irecv_device_event_subscribe(irecv_device_event_context_t *context, irecv_device_event_cb_t callback, void *user_data) | 2419 | irecv_error_t irecv_device_event_subscribe(irecv_device_event_context_t *context, irecv_device_event_cb_t callback, void *user_data) |
| 2430 | { | 2420 | { |
| 2431 | #ifdef USE_DUMMY | 2421 | #ifdef USE_DUMMY |
| 2432 | return IRECV_E_UNSUPPORTED; | 2422 | return IRECV_E_UNSUPPORTED; |
| @@ -2472,7 +2462,7 @@ IRECV_API irecv_error_t irecv_device_event_subscribe(irecv_device_event_context_ | |||
| 2472 | #endif | 2462 | #endif |
| 2473 | } | 2463 | } |
| 2474 | 2464 | ||
| 2475 | IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_context_t context) | 2465 | irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_context_t context) |
| 2476 | { | 2466 | { |
| 2477 | #ifdef USE_DUMMY | 2467 | #ifdef USE_DUMMY |
| 2478 | return IRECV_E_UNSUPPORTED; | 2468 | return IRECV_E_UNSUPPORTED; |
| @@ -2524,7 +2514,7 @@ IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_contex | |||
| 2524 | #endif | 2514 | #endif |
| 2525 | } | 2515 | } |
| 2526 | 2516 | ||
| 2527 | IRECV_API irecv_error_t irecv_close(irecv_client_t client) { | 2517 | irecv_error_t irecv_close(irecv_client_t client) { |
| 2528 | #ifdef USE_DUMMY | 2518 | #ifdef USE_DUMMY |
| 2529 | return IRECV_E_UNSUPPORTED; | 2519 | return IRECV_E_UNSUPPORTED; |
| 2530 | #else | 2520 | #else |
| @@ -2580,7 +2570,7 @@ IRECV_API irecv_error_t irecv_close(irecv_client_t client) { | |||
| 2580 | #endif | 2570 | #endif |
| 2581 | } | 2571 | } |
| 2582 | 2572 | ||
| 2583 | IRECV_API void irecv_set_debug_level(int level) { | 2573 | void irecv_set_debug_level(int level) { |
| 2584 | libirecovery_debug = level; | 2574 | libirecovery_debug = level; |
| 2585 | #ifndef USE_DUMMY | 2575 | #ifndef USE_DUMMY |
| 2586 | #ifndef WIN32 | 2576 | #ifndef WIN32 |
| @@ -2612,7 +2602,7 @@ static irecv_error_t irecv_send_command_raw(irecv_client_t client, const char* c | |||
| 2612 | } | 2602 | } |
| 2613 | #endif | 2603 | #endif |
| 2614 | 2604 | ||
| 2615 | IRECV_API irecv_error_t irecv_send_command_breq(irecv_client_t client, const char* command, uint8_t b_request) { | 2605 | irecv_error_t irecv_send_command_breq(irecv_client_t client, const char* command, uint8_t b_request) { |
| 2616 | #ifdef USE_DUMMY | 2606 | #ifdef USE_DUMMY |
| 2617 | return IRECV_E_UNSUPPORTED; | 2607 | return IRECV_E_UNSUPPORTED; |
| 2618 | #else | 2608 | #else |
| @@ -2656,11 +2646,11 @@ IRECV_API irecv_error_t irecv_send_command_breq(irecv_client_t client, const cha | |||
| 2656 | #endif | 2646 | #endif |
| 2657 | } | 2647 | } |
| 2658 | 2648 | ||
| 2659 | IRECV_API irecv_error_t irecv_send_command(irecv_client_t client, const char* command) { | 2649 | irecv_error_t irecv_send_command(irecv_client_t client, const char* command) { |
| 2660 | return irecv_send_command_breq(client, command, 0); | 2650 | return irecv_send_command_breq(client, command, 0); |
| 2661 | } | 2651 | } |
| 2662 | 2652 | ||
| 2663 | IRECV_API irecv_error_t irecv_send_file(irecv_client_t client, const char* filename, int dfu_notify_finished) { | 2653 | irecv_error_t irecv_send_file(irecv_client_t client, const char* filename, int dfu_notify_finished) { |
| 2664 | #ifdef USE_DUMMY | 2654 | #ifdef USE_DUMMY |
| 2665 | return IRECV_E_UNSUPPORTED; | 2655 | return IRECV_E_UNSUPPORTED; |
| 2666 | #else | 2656 | #else |
| @@ -2719,7 +2709,7 @@ static irecv_error_t irecv_get_status(irecv_client_t client, unsigned int* statu | |||
| 2719 | } | 2709 | } |
| 2720 | #endif | 2710 | #endif |
| 2721 | 2711 | ||
| 2722 | IRECV_API irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, unsigned long length, int dfu_notify_finished) { | 2712 | irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, unsigned long length, int dfu_notify_finished) { |
| 2723 | #ifdef USE_DUMMY | 2713 | #ifdef USE_DUMMY |
| 2724 | return IRECV_E_UNSUPPORTED; | 2714 | return IRECV_E_UNSUPPORTED; |
| 2725 | #else | 2715 | #else |
| @@ -2886,7 +2876,7 @@ IRECV_API irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* | |||
| 2886 | #endif | 2876 | #endif |
| 2887 | } | 2877 | } |
| 2888 | 2878 | ||
| 2889 | IRECV_API irecv_error_t irecv_receive(irecv_client_t client) { | 2879 | irecv_error_t irecv_receive(irecv_client_t client) { |
| 2890 | #ifdef USE_DUMMY | 2880 | #ifdef USE_DUMMY |
| 2891 | return IRECV_E_UNSUPPORTED; | 2881 | return IRECV_E_UNSUPPORTED; |
| 2892 | #else | 2882 | #else |
| @@ -2920,7 +2910,7 @@ IRECV_API irecv_error_t irecv_receive(irecv_client_t client) { | |||
| 2920 | #endif | 2910 | #endif |
| 2921 | } | 2911 | } |
| 2922 | 2912 | ||
| 2923 | IRECV_API irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** value) { | 2913 | irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** value) { |
| 2924 | #ifdef USE_DUMMY | 2914 | #ifdef USE_DUMMY |
| 2925 | return IRECV_E_UNSUPPORTED; | 2915 | return IRECV_E_UNSUPPORTED; |
| 2926 | #else | 2916 | #else |
| @@ -2960,7 +2950,7 @@ IRECV_API irecv_error_t irecv_getenv(irecv_client_t client, const char* variable | |||
| 2960 | #endif | 2950 | #endif |
| 2961 | } | 2951 | } |
| 2962 | 2952 | ||
| 2963 | IRECV_API irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value) { | 2953 | irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value) { |
| 2964 | #ifdef USE_DUMMY | 2954 | #ifdef USE_DUMMY |
| 2965 | return IRECV_E_UNSUPPORTED; | 2955 | return IRECV_E_UNSUPPORTED; |
| 2966 | #else | 2956 | #else |
| @@ -2983,7 +2973,7 @@ IRECV_API irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value) | |||
| 2983 | #endif | 2973 | #endif |
| 2984 | } | 2974 | } |
| 2985 | 2975 | ||
| 2986 | IRECV_API irecv_error_t irecv_get_mode(irecv_client_t client, int* mode) { | 2976 | irecv_error_t irecv_get_mode(irecv_client_t client, int* mode) { |
| 2987 | #ifdef USE_DUMMY | 2977 | #ifdef USE_DUMMY |
| 2988 | return IRECV_E_UNSUPPORTED; | 2978 | return IRECV_E_UNSUPPORTED; |
| 2989 | #else | 2979 | #else |
| @@ -2996,7 +2986,7 @@ IRECV_API irecv_error_t irecv_get_mode(irecv_client_t client, int* mode) { | |||
| 2996 | #endif | 2986 | #endif |
| 2997 | } | 2987 | } |
| 2998 | 2988 | ||
| 2999 | IRECV_API const struct irecv_device_info* irecv_get_device_info(irecv_client_t client) | 2989 | const struct irecv_device_info* irecv_get_device_info(irecv_client_t client) |
| 3000 | { | 2990 | { |
| 3001 | #ifdef USE_DUMMY | 2991 | #ifdef USE_DUMMY |
| 3002 | return NULL; | 2992 | return NULL; |
| @@ -3024,7 +3014,7 @@ static void *iokit_limera1n_usb_submit_request(void *argv) { | |||
| 3024 | #endif | 3014 | #endif |
| 3025 | #endif | 3015 | #endif |
| 3026 | 3016 | ||
| 3027 | IRECV_API irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client) { | 3017 | irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client) { |
| 3028 | #ifdef USE_DUMMY | 3018 | #ifdef USE_DUMMY |
| 3029 | return IRECV_E_UNSUPPORTED; | 3019 | return IRECV_E_UNSUPPORTED; |
| 3030 | #else | 3020 | #else |
| @@ -3075,7 +3065,7 @@ IRECV_API irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client) { | |||
| 3075 | #endif | 3065 | #endif |
| 3076 | } | 3066 | } |
| 3077 | 3067 | ||
| 3078 | IRECV_API irecv_error_t irecv_execute_script(irecv_client_t client, const char* script) { | 3068 | irecv_error_t irecv_execute_script(irecv_client_t client, const char* script) { |
| 3079 | #ifdef USE_DUMMY | 3069 | #ifdef USE_DUMMY |
| 3080 | return IRECV_E_UNSUPPORTED; | 3070 | return IRECV_E_UNSUPPORTED; |
| 3081 | #else | 3071 | #else |
| @@ -3107,7 +3097,7 @@ IRECV_API irecv_error_t irecv_execute_script(irecv_client_t client, const char* | |||
| 3107 | #endif | 3097 | #endif |
| 3108 | } | 3098 | } |
| 3109 | 3099 | ||
| 3110 | IRECV_API irecv_error_t irecv_saveenv(irecv_client_t client) { | 3100 | irecv_error_t irecv_saveenv(irecv_client_t client) { |
| 3111 | #ifdef USE_DUMMY | 3101 | #ifdef USE_DUMMY |
| 3112 | return IRECV_E_UNSUPPORTED; | 3102 | return IRECV_E_UNSUPPORTED; |
| 3113 | #else | 3103 | #else |
| @@ -3120,7 +3110,7 @@ IRECV_API irecv_error_t irecv_saveenv(irecv_client_t client) { | |||
| 3120 | #endif | 3110 | #endif |
| 3121 | } | 3111 | } |
| 3122 | 3112 | ||
| 3123 | IRECV_API irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const char* value) { | 3113 | irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const char* value) { |
| 3124 | #ifdef USE_DUMMY | 3114 | #ifdef USE_DUMMY |
| 3125 | return IRECV_E_UNSUPPORTED; | 3115 | return IRECV_E_UNSUPPORTED; |
| 3126 | #else | 3116 | #else |
| @@ -3144,7 +3134,7 @@ IRECV_API irecv_error_t irecv_setenv(irecv_client_t client, const char* variable | |||
| 3144 | #endif | 3134 | #endif |
| 3145 | } | 3135 | } |
| 3146 | 3136 | ||
| 3147 | IRECV_API irecv_error_t irecv_setenv_np(irecv_client_t client, const char* variable, const char* value) { | 3137 | irecv_error_t irecv_setenv_np(irecv_client_t client, const char* variable, const char* value) { |
| 3148 | #ifdef USE_DUMMY | 3138 | #ifdef USE_DUMMY |
| 3149 | return IRECV_E_UNSUPPORTED; | 3139 | return IRECV_E_UNSUPPORTED; |
| 3150 | #else | 3140 | #else |
| @@ -3168,7 +3158,7 @@ IRECV_API irecv_error_t irecv_setenv_np(irecv_client_t client, const char* varia | |||
| 3168 | #endif | 3158 | #endif |
| 3169 | } | 3159 | } |
| 3170 | 3160 | ||
| 3171 | IRECV_API irecv_error_t irecv_reboot(irecv_client_t client) { | 3161 | irecv_error_t irecv_reboot(irecv_client_t client) { |
| 3172 | #ifdef USE_DUMMY | 3162 | #ifdef USE_DUMMY |
| 3173 | return IRECV_E_UNSUPPORTED; | 3163 | return IRECV_E_UNSUPPORTED; |
| 3174 | #else | 3164 | #else |
| @@ -3181,7 +3171,7 @@ IRECV_API irecv_error_t irecv_reboot(irecv_client_t client) { | |||
| 3181 | #endif | 3171 | #endif |
| 3182 | } | 3172 | } |
| 3183 | 3173 | ||
| 3184 | IRECV_API const char* irecv_strerror(irecv_error_t error) { | 3174 | const char* irecv_strerror(irecv_error_t error) { |
| 3185 | switch (error) { | 3175 | switch (error) { |
| 3186 | case IRECV_E_SUCCESS: | 3176 | case IRECV_E_SUCCESS: |
| 3187 | return "Command completed successfully"; | 3177 | return "Command completed successfully"; |
| @@ -3229,7 +3219,7 @@ IRECV_API const char* irecv_strerror(irecv_error_t error) { | |||
| 3229 | return NULL; | 3219 | return NULL; |
| 3230 | } | 3220 | } |
| 3231 | 3221 | ||
| 3232 | IRECV_API irecv_error_t irecv_reset_counters(irecv_client_t client) { | 3222 | irecv_error_t irecv_reset_counters(irecv_client_t client) { |
| 3233 | #ifdef USE_DUMMY | 3223 | #ifdef USE_DUMMY |
| 3234 | return IRECV_E_UNSUPPORTED; | 3224 | return IRECV_E_UNSUPPORTED; |
| 3235 | #else | 3225 | #else |
| @@ -3244,7 +3234,7 @@ IRECV_API irecv_error_t irecv_reset_counters(irecv_client_t client) { | |||
| 3244 | #endif | 3234 | #endif |
| 3245 | } | 3235 | } |
| 3246 | 3236 | ||
| 3247 | IRECV_API irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned long length) { | 3237 | irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned long length) { |
| 3248 | #ifdef USE_DUMMY | 3238 | #ifdef USE_DUMMY |
| 3249 | return IRECV_E_UNSUPPORTED; | 3239 | return IRECV_E_UNSUPPORTED; |
| 3250 | #else | 3240 | #else |
| @@ -3290,7 +3280,7 @@ IRECV_API irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, u | |||
| 3290 | #endif | 3280 | #endif |
| 3291 | } | 3281 | } |
| 3292 | 3282 | ||
| 3293 | IRECV_API irecv_error_t irecv_finish_transfer(irecv_client_t client) { | 3283 | irecv_error_t irecv_finish_transfer(irecv_client_t client) { |
| 3294 | #ifdef USE_DUMMY | 3284 | #ifdef USE_DUMMY |
| 3295 | return IRECV_E_UNSUPPORTED; | 3285 | return IRECV_E_UNSUPPORTED; |
| 3296 | #else | 3286 | #else |
| @@ -3312,11 +3302,11 @@ IRECV_API irecv_error_t irecv_finish_transfer(irecv_client_t client) { | |||
| 3312 | #endif | 3302 | #endif |
| 3313 | } | 3303 | } |
| 3314 | 3304 | ||
| 3315 | IRECV_API irecv_device_t irecv_devices_get_all(void) { | 3305 | irecv_device_t irecv_devices_get_all(void) { |
| 3316 | return irecv_devices; | 3306 | return irecv_devices; |
| 3317 | } | 3307 | } |
| 3318 | 3308 | ||
| 3319 | IRECV_API irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_device_t* device) { | 3309 | irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_device_t* device) { |
| 3320 | #ifdef USE_DUMMY | 3310 | #ifdef USE_DUMMY |
| 3321 | return IRECV_E_UNSUPPORTED; | 3311 | return IRECV_E_UNSUPPORTED; |
| 3322 | #else | 3312 | #else |
| @@ -3342,7 +3332,7 @@ IRECV_API irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client | |||
| 3342 | #endif | 3332 | #endif |
| 3343 | } | 3333 | } |
| 3344 | 3334 | ||
| 3345 | IRECV_API irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, irecv_device_t* device) { | 3335 | irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, irecv_device_t* device) { |
| 3346 | int i = 0; | 3336 | int i = 0; |
| 3347 | 3337 | ||
| 3348 | if (!product_type || !device) | 3338 | if (!product_type || !device) |
| @@ -3360,7 +3350,7 @@ IRECV_API irecv_error_t irecv_devices_get_device_by_product_type(const char* pro | |||
| 3360 | return IRECV_E_NO_DEVICE; | 3350 | return IRECV_E_NO_DEVICE; |
| 3361 | } | 3351 | } |
| 3362 | 3352 | ||
| 3363 | IRECV_API irecv_error_t irecv_devices_get_device_by_hardware_model(const char* hardware_model, irecv_device_t* device) { | 3353 | irecv_error_t irecv_devices_get_device_by_hardware_model(const char* hardware_model, irecv_device_t* device) { |
| 3364 | int i = 0; | 3354 | int i = 0; |
| 3365 | 3355 | ||
| 3366 | if (!hardware_model || !device) | 3356 | if (!hardware_model || !device) |
| @@ -3378,7 +3368,7 @@ IRECV_API irecv_error_t irecv_devices_get_device_by_hardware_model(const char* h | |||
| 3378 | return IRECV_E_NO_DEVICE; | 3368 | return IRECV_E_NO_DEVICE; |
| 3379 | } | 3369 | } |
| 3380 | 3370 | ||
| 3381 | IRECV_API irecv_client_t irecv_reconnect(irecv_client_t client, int initial_pause) { | 3371 | irecv_client_t irecv_reconnect(irecv_client_t client, int initial_pause) { |
| 3382 | #ifdef USE_DUMMY | 3372 | #ifdef USE_DUMMY |
| 3383 | return NULL; | 3373 | return NULL; |
| 3384 | #else | 3374 | #else |
