summaryrefslogtreecommitdiffstats
path: root/src/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.h')
-rw-r--r--src/common.h54
1 files changed, 35 insertions, 19 deletions
diff --git a/src/common.h b/src/common.h
index 8085a1a..3bb648a 100644
--- a/src/common.h
+++ b/src/common.h
@@ -40,6 +40,7 @@ extern "C" {
#include <libimobiledevice-glue/thread.h>
#include "idevicerestore.h"
+#include "log.h"
#define _MODE_UNKNOWN 0
#define _MODE_WTF 1
@@ -81,16 +82,6 @@ struct idevicerestore_mode_t {
const char* string;
};
-struct idevicerestore_entry_t {
- char* name;
- char* path;
- char* filename;
- char* blob_data;
- uint32_t blob_size;
- struct idevicerestore_entry* next;
- struct idevicerestore_entry* prev;
-};
-
struct idevicerestore_client_t {
int flags;
int debug_level;
@@ -104,7 +95,9 @@ struct idevicerestore_client_t {
int nonce_size;
int image4supported;
plist_t build_manifest;
+ plist_t firmware_preflight_info;
plist_t preflight_info;
+ plist_t parameters;
char* udid;
char* srnm;
ipsw_archive_t ipsw;
@@ -112,7 +105,6 @@ struct idevicerestore_client_t {
struct restore_client_t* restore;
struct recovery_client_t* recovery;
irecv_device_t device;
- struct idevicerestore_entry_t** entries;
struct idevicerestore_mode_t* mode;
char* version;
char* build;
@@ -131,25 +123,49 @@ struct idevicerestore_client_t {
cond_t device_event_cond;
int ignore_device_add_events;
plist_t macos_variant;
+ plist_t recovery_variant;
char* restore_variant;
char* filesystem;
int delete_fs;
int async_err;
};
+extern int global_quit_flag;
+
extern struct idevicerestore_mode_t idevicerestore_modes[];
extern int idevicerestore_debug;
-__attribute__((format(printf, 1, 2)))
-void info(const char* format, ...);
-__attribute__((format(printf, 1, 2)))
-void error(const char* format, ...);
-__attribute__((format(printf, 1, 2)))
-void debug(const char* format, ...);
+void set_banner_funcs(void (*showfunc)(const char*), void (*hidefunc)(void));
+void show_banner(const char* text);
+void hide_banner();
+
+struct progress_info_entry {
+ uint32_t tag;
+ char* label;
+ double progress;
+ int lastprog;
+};
+void set_update_progress_func(void (*func)(struct progress_info_entry** list, int count));
+void set_progress_granularity(double granularity);
+uint32_t progress_get_next_tag(void);
+void progress_reset_tag(void);
+void register_progress(uint32_t tag, const char* label);
+void set_progress(uint32_t tag, double progress);
+void finalize_progress(uint32_t tag);
+void print_progress_bar(const char* prefix, double progress);
+
+struct tuple {
+ int idx;
+ int len;
+ int plen;
+};
+
+int process_text_lines(const char* text, int maxwidth, struct tuple** lines_out, int* maxlen_out);
+
+void set_prompt_func(int (*func)(const char* title, const char* text));
+int prompt_user(const char* title, const char* message);
-void debug_plist(plist_t plist);
-void print_progress_bar(double progress);
int read_file(const char* filename, void** data, size_t* size);
int write_file(const char* filename, const void* data, size_t size);