dyld-832.7.1.tar.gz
[apple/dyld.git] / testing / kernel-cache-tests / kmod-info / kmod.h
1
2 #include <stdint.h>
3
4 typedef uint64_t vm_address_t;
5 typedef uint64_t vm_size_t;
6
7 // Taken from kmod.h
8 #define KMOD_MAX_NAME 64
9
10 #pragma pack(push, 4)
11 typedef struct kmod_info {
12 struct kmod_info * next;
13 int32_t info_version; // version of this structure
14 uint32_t id;
15 char name[KMOD_MAX_NAME];
16 char version[KMOD_MAX_NAME];
17 int32_t reference_count; // # linkage refs to this
18 void * reference_list; // who this refs (links on)
19 vm_address_t address; // starting address
20 vm_size_t size; // total size
21 vm_size_t hdr_size; // unwired hdr size
22 void * start;
23 void * stop;
24 } kmod_info_t;
25 #pragma pack(pop)
26
27 #define KMOD_INFO_NAME kmod_info
28 #define KMOD_INFO_VERSION 1
29 #define KMOD_DECL(name, version) \
30 static kmod_start_func_t name ## _module_start; \
31 static kmod_stop_func_t name ## _module_stop; \
32 kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U, \
33 { #name }, { version }, -1, 0, 0, 0, 0, \
34 name ## _module_start, \
35 name ## _module_stop };
36 #define KMOD_EXPLICIT_DECL(name, version, start, stop) \
37 kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U, \
38 { #name }, { version }, -1, 0, 0, 0, 0, \
39 start, stop };