1 #include <libkern/libkern.h> 2 #include <libkern/section_keywords.h> 3 #include <libkern/amfi/amfi.h> 4 5 SECURITY_READ_ONLY_LATE(const amfi_t*) amfi = NULL; 6 SECURITY_READ_ONLY_LATE(const CEKernelAPI_t*) libCoreEntitlements = NULL; 7 8 void amfi_interface_register(const amfi_t * mfi)9amfi_interface_register(const amfi_t *mfi) 10 { 11 if (amfi) { 12 panic("AppleMobileFileIntegrity interface already set"); 13 } 14 amfi = mfi; 15 } 16 17 void amfi_core_entitlements_register(const CEKernelAPI_t * implementation)18amfi_core_entitlements_register(const CEKernelAPI_t *implementation) 19 { 20 if (libCoreEntitlements) { 21 panic("libCoreEntitlements interface already set"); 22 } 23 libCoreEntitlements = implementation; 24 } 25