X-Git-Url: https://code.delx.au/refind/blobdiff_plain/672b9a0c278036e626685ab3439631c298909a22..b04a842814ccc991ed93a52acbd7ac27768be686:/refind/apple.h diff --git a/refind/apple.h b/refind/apple.h index 33fd5b2..94062b1 100644 --- a/refind/apple.h +++ b/refind/apple.h @@ -18,9 +18,41 @@ * */ -extern CHAR16 *gCsrStatus; +#ifndef __APPLE_H_ +#define __APPLE_H_ -INTN GetCsrStatus(VOID); -VOID RecordgCsrStatus(INTN CsrStatus); -INTN RotateCsrValue(VOID); +// The constants related to Apple's System Integrity Protection (SIP).... +#define CSR_GUID { 0x7c436110, 0xab2a, 0x4bbb, { 0xa8, 0x80, 0xfe, 0x41, 0x99, 0x5c, 0x9f, 0x82 } }; +// These codes are returned in the first byte of the csr-active-config variable +#define CSR_ALLOW_UNTRUSTED_KEXTS 0x01 +#define CSR_ALLOW_UNRESTRICTED_FS 0x02 +#define CSR_ALLOW_TASK_FOR_PID 0x04 +#define CSR_ALLOW_KERNEL_DEBUGGER 0x08 +#define CSR_ALLOW_APPLE_INTERNAL 0x10 +#define CSR_ALLOW_UNRESTRICTED_DTRACE 0x20 +#define CSR_ALLOW_UNRESTRICTED_NVRAM 0x40 +#define CSR_END_OF_LIST 0xFFFFFFFF +// Some summaries.... +#define SIP_ENABLED CSR_ALLOW_APPLE_INTERNAL +#define SIP_DISABLED (CSR_ALLOW_UNRESTRICTED_NVRAM | \ + CSR_ALLOW_UNRESTRICTED_DTRACE | \ + CSR_ALLOW_APPLE_INTERNAL | \ + CSR_ALLOW_TASK_FOR_PID | \ + CSR_ALLOW_UNRESTRICTED_FS | \ + CSR_ALLOW_UNTRUSTED_KEXTS) +#define CSR_MAX_LEGAL_VALUE (CSR_ALLOW_UNTRUSTED_KEXTS | \ + CSR_ALLOW_UNRESTRICTED_FS | \ + CSR_ALLOW_TASK_FOR_PID | \ + CSR_ALLOW_KERNEL_DEBUGGER | \ + CSR_ALLOW_APPLE_INTERNAL | \ + CSR_ALLOW_UNRESTRICTED_DTRACE | \ + CSR_ALLOW_UNRESTRICTED_NVRAM) + +extern CHAR16 gCsrStatus[256]; + +EFI_STATUS GetCsrStatus(UINT32 *CsrValue); +VOID RecordgCsrStatus(UINT32 CsrStatus, BOOLEAN DisplayMessage); +VOID RotateCsrValue(VOID); EFI_STATUS SetAppleOSInfo(); + +#endif \ No newline at end of file