add initial source and build system

This commit is contained in:
Josh Holtrop 2020-03-31 15:02:20 -04:00
commit 768871596d
4 changed files with 57 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/.rscons*
/build/

11
Rsconscript Normal file
View File

@ -0,0 +1,11 @@
build do
Environment.new do |env|
env["CC"] = "x86_64-w64-mingw32-gcc"
env["CPPPATH"] += %w[/usr/include/efi /usr/include/efi/x86_64]
env["CFLAGS"] += %w[-ffreestanding]
env["LDFLAGS"] += %w[-nostdlib -Wl,-dll -shared -Wl,--subsystem,10 -e efi_main]
env["LIBS"] += %w[gcc]
env["sources"] = glob("*.c")
env.Program("^/BOOTX64.EFI", "${sources}")
end
end

23
main.c Normal file
View File

@ -0,0 +1,23 @@
#include <efi.h>
#include <efilib.h>
EFI_STATUS
efi_main(EFI_HANDLE image_handle, EFI_SYSTEM_TABLE * system_table)
{
EFI_STATUS status;
EFI_INPUT_KEY key;
status = system_table->ConOut->OutputString(system_table->ConOut, L"My first EFI loader\n\r");
if (EFI_ERROR(status))
return status;
status = system_table->ConIn->Reset(system_table->ConIn, FALSE);
if (EFI_ERROR(status))
return status;
while ((status = system_table->ConIn->ReadKeyStroke(system_table->ConIn, &key)) == EFI_NOT_READY)
{
}
return status;
}

21
rscons Executable file

File diff suppressed because one or more lines are too long