Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | #ifndef __LOAD_H__ #define __LOAD_H__ #ifdef __cplusplus extern "C" { #endif #include "dgraph.h" #ifdef KERNEL #else #include "KXKext.h" #endif /* KERNEL */ #ifndef KERNEL typedef KXKextManagerError kload_error; enum { kload_error_none = kKXKextManagerErrorNone, kload_error_unspecified = kKXKextManagerErrorUnspecified, kload_error_invalid_argument = kKXKextManagerErrorInvalidArgument, kload_error_no_memory = kKXKextManagerErrorNoMemory, kload_error_user_abort = kKXKextManagerErrorUserAbort, kload_error_kernel_error = kKXKextManagerErrorKernelError, kload_error_kernel_permission = kKXKextManagerErrorKernelPermission, kload_error_executable_bad = kKXKextManagerErrorLoadExecutableBad, kload_error_already_loaded = kKXKextManagerErrorAlreadyLoaded, kload_error_loaded_version_differs = kKXKextManagerErrorLoadedVersionDiffers, kload_error_dependency_loaded_version_differs = kKXKextManagerErrorDependencyLoadedVersionDiffers, kload_error_link_load = kKXKextManagerErrorLinkLoad }; typedef KXKextManagerLogLevel kload_log_level; enum { kload_log_level_silent = kKXKextManagerLogLevelSilent, kload_log_level_errors_only = kKXKextManagerLogLevelErrorsOnly, kload_log_level_default = kKXKextManagerLogLevelDefault, kload_log_level_basic = kKXKextManagerLogLevelBasic, kload_log_level_load_basic = kKXKextManagerLogLevelLoadBasic, kload_log_level_details = kKXKextManagerLogLevelDetails, kload_log_level_kexts = kKXKextManagerLogLevelKexts, kload_log_level_kext_details = kKXKextManagerLogLevelKextDetails, kload_log_level_load_details = kKXKextManagerLogLevelLoadDetails }; #else typedef enum { kload_error_none, kload_error_unspecified, kload_error_invalid_argument, kload_error_no_memory, kload_error_user_abort, kload_error_kernel_error, kload_error_kernel_permission, kload_error_executable_bad, kload_error_already_loaded, kload_error_loaded_version_differs, kload_error_dependency_loaded_version_differs, kload_error_link_load } kload_error; typedef enum { kload_log_level_silent = -2, // no notices, no errors kload_log_level_errors_only = -1, kload_log_level_default = 0, kload_log_level_basic = 1, kload_log_level_load_basic = 2, kload_log_level_details = 3, kload_log_level_kexts = 4, kload_log_level_kext_details = 5, kload_log_level_load_details = 6 } kload_log_level; #endif /* KERNEL */ kload_error kload_load_dgraph(dgraph_t * dgraph #ifndef KERNEL , const char * kernel_file, const char * patch_file, const char * patch_dir, const char * symbol_file, const char * symbol_dir, int do_load, int do_start_kmod, int do_prelink, int interactive_level, int ask_overwrite_symbols, int overwrite_symbols #endif /* not KERNEL */ ); #ifndef KERNEL kload_error kload_load_with_arglist( int argc, char **argv, const char * kernel_file, const char * patch_file, const char * patch_dir, const char * symbol_file, const char * symbol_dir, int do_load, int do_start_kmod, int interactive_level, int ask_overwrite_symbols, int overwrite_symbols); #endif /* not KERNEL */ kload_error kload_map_dgraph(dgraph_t * dgraph #ifndef KERNEL , const char * kernel_file #endif /* not KERNEL */ ); kload_error kload_map_entry(dgraph_entry_t * entry); #ifndef KERNEL int kload_file_exists(const char * path); kload_error kload_request_load_addresses( dgraph_t * dgraph, const char * kernel_file); kload_error kload_set_load_addresses_from_args( dgraph_t * dgraph, const char * kernel_file, char ** addresses); #endif /* not KERNEL */ kload_error kload_set_load_addresses_from_kernel( dgraph_t * dgraph #ifndef KERNEL , const char * kernel_file, int do_load #endif /* not KERNEL */ ); void kload_set_log_level(kload_log_level level); #ifndef KERNEL void kload_set_log_function( void (*)(const char * format, ...)); void kload_set_error_log_function( void (*)(const char * format, ...)); void kload_set_user_approve_function( int (*)(int default_answer, const char * format, ...)); void kload_set_user_veto_function( int (*)(int default_answer, const char * format, ...)); void kload_set_user_input_function( const char * (*)(const char * format, ...)); void kload_log_message(const char * format, ...); void kload_log_error(const char * format, ...); #define KNL "" #else #define kload_log_message IOLog #define kload_log_error IOLog #define KNL "\n" #endif /* not KERNEL */ #endif /* __LOAD_H__ */ #ifdef __cplusplus } #endif |