/* * dmazar: UEFI wrapper for Mach-O definitions * xnu/EXTERNAL_HEADERS/mach-o/loader.h * */ #ifndef _UEFI_MACHO_LOADER_H_ #define _UEFI_MACHO_LOADER_H_ // // Base UEFI types // #include // // From xnu/EXTERNAL_HEADERS/stdint.h: // typedef u_int8_t uint8_t; /* u_int8_t is defined in */ // typedef u_int16_t uint16_t; /* u_int16_t is defined in */ // typedef u_int32_t uint32_t; /* u_int32_t is defined in */ // typedef u_int64_t uint64_t; /* u_int64_t is defined in */ // typedef UINT8 uint8_t; typedef UINT16 uint16_t; typedef UINT32 uint32_t; typedef UINT64 uint64_t; // // From xnu/osfmk/mach/machine.h: // typedef integer_t cpu_type_t; // typedef integer_t cpu_subtype_t; // // From xnu/osfmk/mach/i386/vm_types.h: // typedef int integer_t; // typedef INT32 cpu_type_t; typedef INT32 cpu_subtype_t; // // From xnu/osfmk/mach/vm_prot.h: // typedef int vm_prot_t; typedef INT32 vm_prot_t; // // And finally the xnu/EXTERNAL_HEADERS/mach-o/loader.h // //#include "loader.h" #include // // Additionally, only needed thread state definitions for LC_UNIXTHREAD // are included here to avoid more header files. // // // From xnu/bsd/i386/types.h: // typedef unsigned long long __uint64_t; // typedef UINT64 __uint64_t; // // From xnu/osfmk/mach/i386/_structs.h: // // //#define _STRUCT_X86_THREAD_STATE32 struct __darwin_i386_thread_state //_STRUCT_X86_THREAD_STATE32 //{ // // all fields are unsigned int in xnu rources // UINT32 eax; // UINT32 ebx; // UINT32 ecx; // UINT32 edx; // UINT32 edi; // UINT32 esi; // UINT32 ebp; // UINT32 esp; // UINT32 ss; // UINT32 eflags; // UINT32 eip; // UINT32 cs; // UINT32 ds; // UINT32 es; // UINT32 fs; // UINT32 gs; //}; // //#define _STRUCT_X86_THREAD_STATE64 struct __darwin_x86_thread_state64 //_STRUCT_X86_THREAD_STATE64 //{ // __uint64_t rax; // __uint64_t rbx; // __uint64_t rcx; // __uint64_t rdx; // __uint64_t rdi; // __uint64_t rsi; // __uint64_t rbp; // __uint64_t rsp; // __uint64_t r8; // __uint64_t r9; // __uint64_t r10; // __uint64_t r11; // __uint64_t r12; // __uint64_t r13; // __uint64_t r14; // __uint64_t r15; // __uint64_t rip; // __uint64_t rflags; // __uint64_t cs; // __uint64_t fs; // __uint64_t gs; //}; // //// //// From xnu/osfmk/mach/i386/thread_status.h: //// //typedef _STRUCT_X86_THREAD_STATE32 i386_thread_state_t; //typedef _STRUCT_X86_THREAD_STATE64 x86_thread_state64_t; // #endif /* _UEFI_MACHO_LOADER_H_ */