#include <stdint.h>
typedef uint64_t vm_address_t;
typedef uint64_t vm_size_t;
#define KMOD_MAX_NAME 64
#pragma pack(push, 4)
typedef struct kmod_info {
struct kmod_info * next;
int32_t info_version; uint32_t id;
char name[KMOD_MAX_NAME];
char version[KMOD_MAX_NAME];
int32_t reference_count; void * reference_list; vm_address_t address; vm_size_t size; vm_size_t hdr_size; void * start;
void * stop;
} kmod_info_t;
#pragma pack(pop)
#define KMOD_INFO_NAME kmod_info
#define KMOD_INFO_VERSION 1
#define KMOD_DECL(name, version) \
static kmod_start_func_t name ## _module_start; \
static kmod_stop_func_t name ## _module_stop; \
kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U, \
{ #name }, { version }, -1, 0, 0, 0, 0, \
name ## _module_start, \
name ## _module_stop };
#define KMOD_EXPLICIT_DECL(name, version, start, stop) \
kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U, \
{ #name }, { version }, -1, 0, 0, 0, 0, \
start, stop };