Populate UEFI entry point.
This commit is contained in:
parent
51641284bc
commit
c59a95ebfa
|
@ -0,0 +1,52 @@
|
|||
/************************
|
||||
*** Team Kitty, 2019 ***
|
||||
*** Sync ***
|
||||
***********************/
|
||||
|
||||
/* The entry point of the UEFI app.
|
||||
* When the firmware loads the app,
|
||||
* it calls the efi_main function.
|
||||
*
|
||||
* When it is called, the processor
|
||||
* is running in 32-bit Protected mode.
|
||||
* It is given a map of memory, and there
|
||||
* are a bunch of Boot Services provided
|
||||
* by the UEFI firmware.
|
||||
*
|
||||
* See uefi/docs for more information.
|
||||
*/
|
||||
|
||||
//Example stolen from osdev.org/uefi_bare_bones
|
||||
|
||||
#include <efi.h>
|
||||
#include <efilib.h>
|
||||
|
||||
EFI_STATUS efi_main(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_INPUT_KEY Key;
|
||||
|
||||
/* Store the system table for future use in other functions */
|
||||
ST = SystemTable;
|
||||
|
||||
/* Say hi */
|
||||
Status = ST->ConOut->OutputString(ST->ConOut, L"Hello World\n\r");
|
||||
if (EFI_ERROR(Status))
|
||||
return Status;
|
||||
|
||||
/* Now wait for a keystroke before continuing, otherwise your
|
||||
message will flash off the screen before you see it.
|
||||
|
||||
First, we need to empty the console input buffer to flush
|
||||
out any keystrokes entered before this point */
|
||||
Status = ST->ConIn->Reset(ST->ConIn, FALSE);
|
||||
if (EFI_ERROR(Status))
|
||||
return Status;
|
||||
|
||||
/* Now wait until a key becomes available. This is a simple
|
||||
polling implementation. You could try and use the WaitForKey
|
||||
event instead if you like */
|
||||
while ((Status = ST->ConIn->ReadKeyStroke(ST->ConIn, &Key)) == EFI_NOT_READY) ;
|
||||
|
||||
return Status;
|
||||
}
|
Loading…
Reference in New Issue
Block a user