summaryrefslogtreecommitdiffstats
path: root/include/libirecovery.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libirecovery.h')
-rw-r--r--include/libirecovery.h88
1 files changed, 49 insertions, 39 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
30enum irecv_mode { 40enum 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;
111typedef irecv_client_private* irecv_client_t; 121typedef irecv_client_private* irecv_client_t;
112 122
113/* library */ 123/* library */
114void irecv_set_debug_level(int level); 124IRECV_API void irecv_set_debug_level(int level);
115const char* irecv_strerror(irecv_error_t error); 125IRECV_API const char* irecv_strerror(irecv_error_t error);
116void irecv_init(void); /* deprecated: libirecovery has constructor now */ 126IRECV_API void irecv_init(void); /* deprecated: libirecovery has constructor now */
117void irecv_exit(void); /* deprecated: libirecovery has destructor now */ 127IRECV_API void irecv_exit(void); /* deprecated: libirecovery has destructor now */
118 128
119/* device connectivity */ 129/* device connectivity */
120irecv_error_t irecv_open_with_ecid(irecv_client_t* client, uint64_t ecid); 130IRECV_API irecv_error_t irecv_open_with_ecid(irecv_client_t* client, uint64_t ecid);
121irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, uint64_t ecid, int attempts); 131IRECV_API irecv_error_t irecv_open_with_ecid_and_attempts(irecv_client_t* pclient, uint64_t ecid, int attempts);
122irecv_error_t irecv_reset(irecv_client_t client); 132IRECV_API irecv_error_t irecv_reset(irecv_client_t client);
123irecv_error_t irecv_close(irecv_client_t client); 133IRECV_API irecv_error_t irecv_close(irecv_client_t client);
124irecv_client_t irecv_reconnect(irecv_client_t client, int initial_pause); 134IRECV_API irecv_client_t irecv_reconnect(irecv_client_t client, int initial_pause);
125 135
126/* misc */ 136/* misc */
127irecv_error_t irecv_receive(irecv_client_t client); 137IRECV_API irecv_error_t irecv_receive(irecv_client_t client);
128irecv_error_t irecv_execute_script(irecv_client_t client, const char* script); 138IRECV_API irecv_error_t irecv_execute_script(irecv_client_t client, const char* script);
129irecv_error_t irecv_reset_counters(irecv_client_t client); 139IRECV_API irecv_error_t irecv_reset_counters(irecv_client_t client);
130irecv_error_t irecv_finish_transfer(irecv_client_t client); 140IRECV_API irecv_error_t irecv_finish_transfer(irecv_client_t client);
131irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client); 141IRECV_API irecv_error_t irecv_trigger_limera1n_exploit(irecv_client_t client);
132 142
133/* usb helpers */ 143/* usb helpers */
134irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configuration); 144IRECV_API irecv_error_t irecv_usb_set_configuration(irecv_client_t client, int configuration);
135irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, int usb_alt_interface); 145IRECV_API irecv_error_t irecv_usb_set_interface(irecv_client_t client, int usb_interface, int usb_alt_interface);
136int 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); 146IRECV_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);
137int irecv_usb_bulk_transfer(irecv_client_t client, unsigned char endpoint, unsigned char *data, int length, int *transferred, unsigned int timeout); 147IRECV_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 */
140typedef void(*irecv_device_event_cb_t)(const irecv_device_event_t* event, void *user_data); 150typedef void(*irecv_device_event_cb_t)(const irecv_device_event_t* event, void *user_data);
141typedef struct irecv_device_event_context* irecv_device_event_context_t; 151typedef struct irecv_device_event_context* irecv_device_event_context_t;
142irecv_error_t irecv_device_event_subscribe(irecv_device_event_context_t *context, irecv_device_event_cb_t callback, void *user_data); 152IRECV_API irecv_error_t irecv_device_event_subscribe(irecv_device_event_context_t *context, irecv_device_event_cb_t callback, void *user_data);
143irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_context_t context); 153IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_context_t context);
144typedef int(*irecv_event_cb_t)(irecv_client_t client, const irecv_event_t* event); 154typedef int(*irecv_event_cb_t)(irecv_client_t client, const irecv_event_t* event);
145irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type, irecv_event_cb_t callback, void *user_data); 155IRECV_API irecv_error_t irecv_event_subscribe(irecv_client_t client, irecv_event_type type, irecv_event_cb_t callback, void *user_data);
146irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type type); 156IRECV_API irecv_error_t irecv_event_unsubscribe(irecv_client_t client, irecv_event_type type);
147 157
148/* I/O */ 158/* I/O */
149irecv_error_t irecv_send_file(irecv_client_t client, const char* filename, int dfu_notify_finished); 159IRECV_API irecv_error_t irecv_send_file(irecv_client_t client, const char* filename, int dfu_notify_finished);
150irecv_error_t irecv_send_command(irecv_client_t client, const char* command); 160IRECV_API irecv_error_t irecv_send_command(irecv_client_t client, const char* command);
151irecv_error_t irecv_send_command_breq(irecv_client_t client, const char* command, uint8_t b_request); 161IRECV_API irecv_error_t irecv_send_command_breq(irecv_client_t client, const char* command, uint8_t b_request);
152irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, unsigned long length, int dfu_notify_finished); 162IRECV_API irecv_error_t irecv_send_buffer(irecv_client_t client, unsigned char* buffer, unsigned long length, int dfu_notify_finished);
153irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned long length); 163IRECV_API irecv_error_t irecv_recv_buffer(irecv_client_t client, char* buffer, unsigned long length);
154 164
155/* commands */ 165/* commands */
156irecv_error_t irecv_saveenv(irecv_client_t client); 166IRECV_API irecv_error_t irecv_saveenv(irecv_client_t client);
157irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** value); 167IRECV_API irecv_error_t irecv_getenv(irecv_client_t client, const char* variable, char** value);
158irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const char* value); 168IRECV_API irecv_error_t irecv_setenv(irecv_client_t client, const char* variable, const char* value);
159irecv_error_t irecv_setenv_np(irecv_client_t client, const char* variable, const char* value); 169IRECV_API irecv_error_t irecv_setenv_np(irecv_client_t client, const char* variable, const char* value);
160irecv_error_t irecv_reboot(irecv_client_t client); 170IRECV_API irecv_error_t irecv_reboot(irecv_client_t client);
161irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value); 171IRECV_API irecv_error_t irecv_getret(irecv_client_t client, unsigned int* value);
162 172
163/* device information */ 173/* device information */
164irecv_error_t irecv_get_mode(irecv_client_t client, int* mode); 174IRECV_API irecv_error_t irecv_get_mode(irecv_client_t client, int* mode);
165const struct irecv_device_info* irecv_get_device_info(irecv_client_t client); 175IRECV_API const struct irecv_device_info* irecv_get_device_info(irecv_client_t client);
166 176
167/* device database queries */ 177/* device database queries */
168irecv_device_t irecv_devices_get_all(void); 178IRECV_API irecv_device_t irecv_devices_get_all(void);
169irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_device_t* device); 179IRECV_API irecv_error_t irecv_devices_get_device_by_client(irecv_client_t client, irecv_device_t* device);
170irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, irecv_device_t* device); 180IRECV_API irecv_error_t irecv_devices_get_device_by_product_type(const char* product_type, irecv_device_t* device);
171irecv_error_t irecv_devices_get_device_by_hardware_model(const char* hardware_model, irecv_device_t* device); 181IRECV_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}