diff options
author | Jay Freeman <saurik@saurik.com> | 2008-01-01 05:58:43 +0000 |
---|---|---|
committer | Jay Freeman <saurik@saurik.com> | 2008-01-01 05:58:43 +0000 |
commit | ea2670c18699e514ee1d65dfd35ad22c296a74e7 (patch) | |
tree | 6826a5266d78c22210c194772a8daed06ef0a19c /data/system-cmds/kextmanager.h | |
parent | a45e85d54e8df7a333946cc52fec519fc6aa4d87 (diff) |
Initial commit.
git-svn-id: http://svn.telesphoreo.org/trunk@2 514c082c-b64e-11dc-b46d-3d985efe055d
Diffstat (limited to 'data/system-cmds/kextmanager.h')
-rw-r--r-- | data/system-cmds/kextmanager.h | 615 |
1 files changed, 615 insertions, 0 deletions
diff --git a/data/system-cmds/kextmanager.h b/data/system-cmds/kextmanager.h new file mode 100644 index 000000000..92050fe49 --- /dev/null +++ b/data/system-cmds/kextmanager.h @@ -0,0 +1,615 @@ +#ifndef _kextmanager_user_ +#define _kextmanager_user_ + +/* Module kextmanager */ + +#include <string.h> +#include <mach/ndr.h> +#include <mach/boolean.h> +#include <mach/kern_return.h> +#include <mach/notify.h> +#include <mach/mach_types.h> +#include <mach/message.h> +#include <mach/mig_errors.h> +#include <mach/port.h> + +#ifdef AUTOTEST +#ifndef FUNCTION_PTR_T +#define FUNCTION_PTR_T +typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t); +typedef struct { + char *name; + function_ptr_t function; +} function_table_entry; +typedef function_table_entry *function_table_t; +#endif /* FUNCTION_PTR_T */ +#endif /* AUTOTEST */ + +#ifndef kextmanager_MSG_COUNT +#define kextmanager_MSG_COUNT 12 +#endif /* kextmanager_MSG_COUNT */ + +#include <mach/std_types.h> +#include <mach/mig.h> +#include <mach/mig.h> +#include <mach/mach_types.h> +#include <Security/Authorization.h> +#include <IOKit/kext/kextmanager_types.h> +#include <mach/kmod.h> +#include <sys/param.h> + +#ifdef __BeforeMigUserHeader +__BeforeMigUserHeader +#endif /* __BeforeMigUserHeader */ + +#include <sys/cdefs.h> +__BEGIN_DECLS + + +/* Routine kextmanager_path_for_bundle_id */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_path_for_bundle_id +( + mach_port_t server, + kext_bundle_id_t bundle_id, + posix_path_t path, + kext_result_t *kext_result +); + +/* Routine kextmanager_create_property_value_array */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_create_property_value_array +( + mach_port_t server, + property_key_t prop_key, + xmlDataOut_t *data, + mach_msg_type_number_t *dataCnt +); + +/* Routine kextmanager_user_did_log_in */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_user_did_log_in +( + mach_port_t server, + uint32_t euid, + AuthorizationExternalForm authref +); + +/* Routine kextmanager_user_will_log_out */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_user_will_log_out +( + mach_port_t server, + uint32_t euid +); + +/* Routine kextmanager_get_logged_in_userid */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_get_logged_in_userid +( + mach_port_t server, + uint32_t *euid +); + +/* Routine kextmanager_record_nonsecure_kextload */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_record_nonsecure_kextload +( + mach_port_t server, + xmlDataIn_t load_data, + mach_msg_type_number_t load_dataCnt +); + +/* Routine kextmanager_lock_reboot */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_lock_reboot +( + mach_port_t server, + mach_port_t reaper, + int waitForLock, + mountpoint_t busyVol, + int *busyStatus +); + +/* Routine kextmanager_lock_volume */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_lock_volume +( + mach_port_t server, + mach_port_t reaper, + uuid_t vol_uuid, + int waitForLock, + int *lockStatus +); + +/* Routine kextmanager_unlock_volume */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_unlock_volume +( + mach_port_t server, + mach_port_t clientIdent, + uuid_t vol_uuid, + int exitStatus +); + +/* Routine kextmanager_lock_kextload */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_lock_kextload +( + mach_port_t server, + mach_port_t clientPort, + int *lockstatus +); + +/* Routine kextmanager_unlock_kextload */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_unlock_kextload +( + mach_port_t server, + mach_port_t clientPort +); + +/* Routine kextmanager_record_path_for_bundle_id */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t kextmanager_record_path_for_bundle_id +( + mach_port_t server, + kext_bundle_id_t bundle_id, + posix_path_t path +); + +__END_DECLS + +/********************** Caution **************************/ +/* The following data types should be used to calculate */ +/* maximum message sizes only. The actual message may be */ +/* smaller, and the position of the arguments within the */ +/* message layout may vary from what is presented here. */ +/* For example, if any of the arguments are variable- */ +/* sized, and less than the maximum is sent, the data */ +/* will be packed tight in the actual message to reduce */ +/* the presence of holes. */ +/********************** Caution **************************/ + +/* typedefs for all requests */ + +#ifndef __Request__kextmanager_subsystem__defined +#define __Request__kextmanager_subsystem__defined + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kext_bundle_id_t bundle_id; + } __Request__kextmanager_path_for_bundle_id_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + property_key_t prop_key; + } __Request__kextmanager_create_property_value_array_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + uint32_t euid; + AuthorizationExternalForm authref; + } __Request__kextmanager_user_did_log_in_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + uint32_t euid; + } __Request__kextmanager_user_will_log_out_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + } __Request__kextmanager_get_logged_in_userid_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_ool_descriptor_t load_data; + /* end of the kernel processed data */ + NDR_record_t NDR; + mach_msg_type_number_t load_dataCnt; + } __Request__kextmanager_record_nonsecure_kextload_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t reaper; + /* end of the kernel processed data */ + NDR_record_t NDR; + int waitForLock; + } __Request__kextmanager_lock_reboot_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t reaper; + /* end of the kernel processed data */ + NDR_record_t NDR; + uuid_t vol_uuid; + int waitForLock; + } __Request__kextmanager_lock_volume_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t clientIdent; + /* end of the kernel processed data */ + NDR_record_t NDR; + uuid_t vol_uuid; + int exitStatus; + } __Request__kextmanager_unlock_volume_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t clientPort; + /* end of the kernel processed data */ + } __Request__kextmanager_lock_kextload_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t clientPort; + /* end of the kernel processed data */ + } __Request__kextmanager_unlock_kextload_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kext_bundle_id_t bundle_id; + posix_path_t path; + } __Request__kextmanager_record_path_for_bundle_id_t; +#ifdef __MigPackStructs +#pragma pack() +#endif +#endif /* !__Request__kextmanager_subsystem__defined */ + +/* union of all requests */ + +#ifndef __RequestUnion__kextmanager_subsystem__defined +#define __RequestUnion__kextmanager_subsystem__defined +union __RequestUnion__kextmanager_subsystem { + __Request__kextmanager_path_for_bundle_id_t Request_kextmanager_path_for_bundle_id; + __Request__kextmanager_create_property_value_array_t Request_kextmanager_create_property_value_array; + __Request__kextmanager_user_did_log_in_t Request_kextmanager_user_did_log_in; + __Request__kextmanager_user_will_log_out_t Request_kextmanager_user_will_log_out; + __Request__kextmanager_get_logged_in_userid_t Request_kextmanager_get_logged_in_userid; + __Request__kextmanager_record_nonsecure_kextload_t Request_kextmanager_record_nonsecure_kextload; + __Request__kextmanager_lock_reboot_t Request_kextmanager_lock_reboot; + __Request__kextmanager_lock_volume_t Request_kextmanager_lock_volume; + __Request__kextmanager_unlock_volume_t Request_kextmanager_unlock_volume; + __Request__kextmanager_lock_kextload_t Request_kextmanager_lock_kextload; + __Request__kextmanager_unlock_kextload_t Request_kextmanager_unlock_kextload; + __Request__kextmanager_record_path_for_bundle_id_t Request_kextmanager_record_path_for_bundle_id; +}; +#endif /* !__RequestUnion__kextmanager_subsystem__defined */ +/* typedefs for all replies */ + +#ifndef __Reply__kextmanager_subsystem__defined +#define __Reply__kextmanager_subsystem__defined + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + posix_path_t path; + kext_result_t kext_result; + } __Reply__kextmanager_path_for_bundle_id_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_ool_descriptor_t data; + /* end of the kernel processed data */ + NDR_record_t NDR; + mach_msg_type_number_t dataCnt; + } __Reply__kextmanager_create_property_value_array_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + } __Reply__kextmanager_user_did_log_in_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + } __Reply__kextmanager_user_will_log_out_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + uint32_t euid; + } __Reply__kextmanager_get_logged_in_userid_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + } __Reply__kextmanager_record_nonsecure_kextload_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + mountpoint_t busyVol; + char busyVolPad[2]; + int busyStatus; + } __Reply__kextmanager_lock_reboot_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + int lockStatus; + } __Reply__kextmanager_lock_volume_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + } __Reply__kextmanager_unlock_volume_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + int lockstatus; + } __Reply__kextmanager_lock_kextload_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + } __Reply__kextmanager_unlock_kextload_t; +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + } __Reply__kextmanager_record_path_for_bundle_id_t; +#ifdef __MigPackStructs +#pragma pack() +#endif +#endif /* !__Reply__kextmanager_subsystem__defined */ + +/* union of all replies */ + +#ifndef __ReplyUnion__kextmanager_subsystem__defined +#define __ReplyUnion__kextmanager_subsystem__defined +union __ReplyUnion__kextmanager_subsystem { + __Reply__kextmanager_path_for_bundle_id_t Reply_kextmanager_path_for_bundle_id; + __Reply__kextmanager_create_property_value_array_t Reply_kextmanager_create_property_value_array; + __Reply__kextmanager_user_did_log_in_t Reply_kextmanager_user_did_log_in; + __Reply__kextmanager_user_will_log_out_t Reply_kextmanager_user_will_log_out; + __Reply__kextmanager_get_logged_in_userid_t Reply_kextmanager_get_logged_in_userid; + __Reply__kextmanager_record_nonsecure_kextload_t Reply_kextmanager_record_nonsecure_kextload; + __Reply__kextmanager_lock_reboot_t Reply_kextmanager_lock_reboot; + __Reply__kextmanager_lock_volume_t Reply_kextmanager_lock_volume; + __Reply__kextmanager_unlock_volume_t Reply_kextmanager_unlock_volume; + __Reply__kextmanager_lock_kextload_t Reply_kextmanager_lock_kextload; + __Reply__kextmanager_unlock_kextload_t Reply_kextmanager_unlock_kextload; + __Reply__kextmanager_record_path_for_bundle_id_t Reply_kextmanager_record_path_for_bundle_id; +}; +#endif /* !__RequestUnion__kextmanager_subsystem__defined */ + +#ifndef subsystem_to_name_map_kextmanager +#define subsystem_to_name_map_kextmanager \ + { "kextmanager_path_for_bundle_id", 70000 },\ + { "kextmanager_create_property_value_array", 70001 },\ + { "kextmanager_user_did_log_in", 70002 },\ + { "kextmanager_user_will_log_out", 70003 },\ + { "kextmanager_get_logged_in_userid", 70004 },\ + { "kextmanager_record_nonsecure_kextload", 70005 },\ + { "kextmanager_lock_reboot", 70006 },\ + { "kextmanager_lock_volume", 70007 },\ + { "kextmanager_unlock_volume", 70008 },\ + { "kextmanager_lock_kextload", 70009 },\ + { "kextmanager_unlock_kextload", 70010 },\ + { "kextmanager_record_path_for_bundle_id", 70011 } +#endif + +#ifdef __AfterMigUserHeader +__AfterMigUserHeader +#endif /* __AfterMigUserHeader */ + +#endif /* _kextmanager_user_ */ |