#include "lib.h"
#include "screen.h"
#include "apple.h"
+#include "mystrings.h"
#include "refit_call_wrapper.h"
-CHAR16 *gCsrStatus = NULL;
+CHAR16 gCsrStatus[256];
// Get CSR (Apple's System Integrity Protection [SIP], or "rootless") status
// information.
*CsrStatus = *ReturnValue;
} else {
Status = EFI_BAD_BUFFER_SIZE;
+ SPrint(gCsrStatus, 255, L" Unknown System Integrity Protection version");
}
MyFreePool(ReturnValue);
} // if (Status == EFI_SUCCESS)
return Status;
} // INTN GetCsrStatus()
-// Store string describing CSR status byte in gCsrStatus variable, which appears
+// Store string describing CSR status value in gCsrStatus variable, which appears
// on the Info page. If DisplayMessage is TRUE, displays the new value of
// gCsrStatus on the screen for three seconds.
VOID RecordgCsrStatus(UINT32 CsrStatus, BOOLEAN DisplayMessage) {
BGColor.r = 100;
BGColor.a = 0;
- if (gCsrStatus == NULL)
- gCsrStatus = AllocateZeroPool(256 * sizeof(CHAR16));
-
switch (CsrStatus) {
case SIP_ENABLED:
SPrint(gCsrStatus, 255, L" System Integrity Protection is enabled (0x%02x)", CsrStatus);
// Find the current CSR status and reset it to the next one in the
// GlobalConfig.CsrValues list, or to the first value if the current
// value is not on the list.
-// Returns the value to which the CSR is being set.
VOID RotateCsrValue(VOID) {
- UINT32 CurrentValue;
+ UINT32 CurrentValue, TargetCsr;
UINT32_LIST *ListItem;
- UINT32 TargetCsr;
EFI_GUID CsrGuid = CSR_GUID;
EFI_STATUS Status;
Status = EfivarSetRaw(&CsrGuid, L"csr-active-config", (CHAR8 *) &TargetCsr, 4, TRUE);
if (Status == EFI_SUCCESS)
RecordgCsrStatus(TargetCsr, TRUE);
+ else
+ SPrint(gCsrStatus, 255, L" Error setting System Integrity Protection code.");
} // if
-} // INTN RotateCsrValue()
+} // VOID RotateCsrValue()
/*
Print(L"Out of resources in SetAppleOSInfo!\n");
}
if ((Status == EFI_SUCCESS) && (SetOs->Version == 2))
- Status = refit_call1_wrapper (SetOs->SetOsVendor, "Apple Inc.");
+ Status = refit_call1_wrapper (SetOs->SetOsVendor, (CHAR8 *) "Apple Inc.");
MyFreePool(AppleOSVersion);
} // if (AppleOSVersion)
} // if