1 /*! 2 * @header 3 * Shims for the SPI. 4 */ 5 #ifndef __IMG4_SHIM_H 6 #define __IMG4_SHIM_H 7 8 #ifndef __IMG4_INDIRECT 9 #error "Please #include <img4/firmware.h> instead of this file directly" 10 #endif // __IMG4_INDIRECT 11 12 #include <stdint.h> 13 #include <stddef.h> 14 #include <stdbool.h> 15 16 #if KERNEL 17 #define IMG4_TARGET_SHIM_FOUND 1 18 #define IMG4_TARGET_XNU 1 19 20 #if __has_include(<img4/shim_xnu.h>) 21 #include <img4/shim_xnu.h> 22 #endif 23 24 #if XNU_KERNEL_PRIVATE 25 #define IMG4_TARGET_XNU_PROPER 1 26 #else 27 #define IMG4_TARGET_XNU_PROPER 0 28 #endif 29 #endif // KERNEL 30 31 32 #if !IMG4_TARGET_SHIM_FOUND 33 #if EFI 34 #define IMG4_TARGET_EFI 1 35 #if __has_include(<img4/shim_efi.h>) 36 #pragma clang diagnostic push 37 #pragma clang diagnostic ignored "-Wpragma-pack" 38 #include <img4/shim_efi.h> 39 #pragma clang diagnostic pop 40 #endif // __has_include(<img4/shim_efi.h>) 41 #elif SEP // EFI 42 #define IMG4_TARGET_SEP 1 43 #include <img4/shim_sep.h> 44 #else // EFI 45 #define IMG4_TARGET_DARWIN 1 46 #if __has_include(<img4/shim_darwin.h>) 47 #include <img4/shim_darwin.h> 48 #endif 49 #endif // EFI 50 #endif // !IMG4_TARGET_SHIM_FOUND 51 52 #if IMG4_TARGET_XNU || IMG4_TARGET_DARWIN 53 #define IMG4_TARGET_DARWIN_GENERIC 1 54 #endif 55 56 #endif // __IMG4_SHIM_H 57