The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/libsa/load.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 4d91eb58e522c3ad2d2dd525fc0a2115


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.