OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OpenControl.c
Go to the documentation of this file.
1
15#include <Uefi.h>
16#include <Library/BaseLib.h>
17#include <Library/BaseMemoryLib.h>
18#include <Library/UefiApplicationEntryPoint.h>
19#include <Library/UefiBootServicesTableLib.h>
20#include <Library/OcMiscLib.h>
21#include <Library/OcStringLib.h>
22#include <Library/UefiLib.h>
24
25EFI_STATUS
26EFIAPI
28 IN EFI_HANDLE ImageHandle,
29 IN EFI_SYSTEM_TABLE *SystemTable
30 )
31{
32 EFI_STATUS Status;
33 UINTN Argc;
34 CHAR16 **Argv;
36 OC_FWRT_CONFIG Config;
37
38 Status = GetArguments (&Argc, &Argv);
39 if (!EFI_ERROR (Status) && (Argc == 2)) {
40 Status = gBS->LocateProtocol (
42 NULL,
43 (VOID **)&FwRuntime
44 );
45
46 if (EFI_ERROR (Status)) {
47 Print (L"FwRuntime protocol is unavailable - %r\n", Status);
48 return EFI_SUCCESS;
49 }
50
51 if (OcStriCmp (Argv[1], L"disable") == 0) {
52 ZeroMem (&Config, sizeof (Config));
53 FwRuntime->SetOverride (&Config);
54 return EFI_SUCCESS;
55 }
56
57 if (OcStriCmp (Argv[1], L"restore") == 0) {
58 FwRuntime->SetOverride (NULL);
59 return EFI_SUCCESS;
60 }
61 }
62
63 Print (L"Usage: OpenControl <disable|restore>\n");
64 return EFI_SUCCESS;
65}
EFI_BOOT_SERVICES * gBS
EFI_GUID gOcFirmwareRuntimeProtocolGuid
EFI_STATUS GetArguments(OUT UINTN *Argc, OUT CHAR16 ***Argv)
INTN EFIAPI OcStriCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString)
EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition OpenControl.c:27
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)