From aa113b17449e67dbd808587b411aeb21ea869974 Mon Sep 17 00:00:00 2001 From: andromeda Date: Mon, 19 Oct 2026 18:54:26 -0400 Subject: minimal running stub --- lib/uefi.c3l/uefi/uefi.c3i | 59 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 lib/uefi.c3l/uefi/uefi.c3i (limited to 'lib/uefi.c3l/uefi/uefi.c3i') diff --git a/lib/uefi.c3l/uefi/uefi.c3i b/lib/uefi.c3l/uefi/uefi.c3i new file mode 100644 index 0000000..ab215c2 --- /dev/null +++ b/lib/uefi.c3l/uefi/uefi.c3i @@ -0,0 +1,59 @@ +module uefi; + +alias EfiHandle = void*; +typedef EfiEvent = void*; + +struct TableHeader { + ulong signature; + uint revision; + uint headerSize; + uint crc32; + uint reserved; +} + +struct ConfigurationTable { + EfiGuid vendorGuid; + void* vendorTable; +} + +struct SystemTable { + TableHeader header; + EfiString firmwareVendor; + uint firmwareRevision; + EfiHandle consoleInHandle; + SimpleTextInputProtocol* conIn; + EfiHandle consoleOutHandle; + SimpleTextOutputProtocol* conOut; + EfiHandle standardErrorHandle; + SimpleTextOutputProtocol* stdErr; + RuntimeServices* runtimeServices; + BootServices* bootServices; + ulong numberOfTableEntries; + ConfigurationTable* configurationTable; +} + +alias WChar = ushort; +typedef EfiString = inline WChar*; +typedef WString = inline WChar[]; +macro WString @w(String $string) @builtin @public => $$wstr16($string); + +// Time related definitions +struct EfiTime @packed { + ushort year; + char month; + char day; + char hour; + char minute; + char second; + char _pad1; + uint nanosecond; + short timezone; + EfiDaylightFlags daylight; + char _pad2; +} + +bitstruct EfiDaylightFlags : char { + bool adjust : 0; + bool in_daylight : 1; + char reserved : 2..7; +} -- cgit v1.3.1