diff options
| author | andromeda <andromeda@bsd.my.domain> | 2026-10-19 18:54:26 -0400 |
|---|---|---|
| committer | andromeda <andromeda@bsd.my.domain> | 2026-10-19 18:54:26 -0400 |
| commit | aa113b17449e67dbd808587b411aeb21ea869974 (patch) | |
| tree | b6b7f1b71d761cbc043d5e97f72345d428c140ac /lib/uefi.c3l/src/exports.c3 | |
| parent | 97d331175ae47aec3d0b990ada9754a9e4298e32 (diff) | |
minimal running stub
Diffstat (limited to 'lib/uefi.c3l/src/exports.c3')
| -rw-r--r-- | lib/uefi.c3l/src/exports.c3 | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/lib/uefi.c3l/src/exports.c3 b/lib/uefi.c3l/src/exports.c3 deleted file mode 100644 index 332311c..0000000 --- a/lib/uefi.c3l/src/exports.c3 +++ /dev/null @@ -1,216 +0,0 @@ -// ------------------------------------------------------------------ -module uefi; -import uefi::efi_system @public; - - -extern fn void initialize_lib(EfiHandle, SystemTable*); - -PanicFn panic_func = (PanicFn)&uefi::efilib::pre_load::default_panic; - - -// ------------------------------------------------------------------ -module uefi::io; -import uefi; -import uefi::efi_system @public; - - -// interface LibcFile -// { -// // -// } -// typedef OutStream (LibcFile) = uptr; -// const OutStream STDERR @export("stderr") = (OutStream)efi_system::efi_sys.console.stderr; - -macro EfiStatus? memdump( - void* ptr, - usz len, - usz $align = 16 -) @maydiscard => efi_system::efi_sys.console.printn(a2w(efi_system::efi_sys.create_memdump(ptr, len, $align))); -macro EfiStatus? cmemdump( - ConsoleColor color, - void* ptr, - usz len, - usz $align = 16 -) @maydiscard => efi_system::efi_sys.console.cprintn(color, a2w(efi_system::efi_sys.create_memdump(ptr, len, $align))); - -macro EfiStatus? wprint(EfiString str) @maydiscard => efi_system::efi_sys.console.print(str); -macro EfiStatus? wprintn(EfiString str) @maydiscard => efi_system::efi_sys.console.printn(str); -macro EfiStatus? wfprint( - SimpleTextOutputProtocol* stream, - EfiString str -) @maydiscard => efi_system::efi_sys.console.print(str, stream); -macro EfiStatus? wfprintn( - SimpleTextOutputProtocol* stream, - EfiString str -) @maydiscard => efi_system::efi_sys.console.printn(str, stream); -macro EfiStatus? wprinte(EfiString str, args...) @maydiscard => efi_system::efi_sys.console.printe(str, ...args); -macro EfiStatus? wfprinte( - SimpleTextOutputProtocol* stream, - EfiString str, - args... -) @maydiscard => efi_system::efi_sys.console.fprinte(stream, str, ...args); - -macro EfiStatus? print(AsciiString str) @maydiscard => efi_system::efi_sys.console.print(a2w(str)); -macro EfiStatus? printn(AsciiString str) @maydiscard => efi_system::efi_sys.console.printn(a2w(str)); -macro EfiStatus? fprint( - SimpleTextOutputProtocol* stream, - AsciiString str -) @maydiscard => efi_system::efi_sys.console.print(a2w(str), stream); -macro EfiStatus? fprintn( - SimpleTextOutputProtocol* stream, - AsciiString str -) @maydiscard => efi_system::efi_sys.console.printn(a2w(str), stream); -macro EfiStatus? printe(AsciiString str, args...) @maydiscard => efi_system::efi_sys.console.printn(a2w(str), ...args); -macro EfiStatus? fprinte( - SimpleTextOutputProtocol* stream, - AsciiString str, - args... -) @maydiscard => efi_system::efi_sys.console.printn(stream, a2w(str), ...args); - -macro EfiStatus? wcprint( - ConsoleColor color, - EfiString str -) @maydiscard => efi_system::efi_sys.console.cprint(color, str); -macro EfiStatus? wcprintn( - ConsoleColor color, - EfiString str -) @maydiscard => efi_system::efi_sys.console.cprintn(color, str); -macro EfiStatus? wcprinte( - ConsoleColor color, - EfiString str, - args... -) @maydiscard => efi_system::efi_sys.console.cprinte(color, str, ...args); -macro EfiStatus? cprint( - ConsoleColor color, - AsciiString str -) @maydiscard => efi_system::efi_sys.console.cprint(color, a2w(str)); -macro EfiStatus? cprintn( - ConsoleColor color, - AsciiString str -) @maydiscard => efi_system::efi_sys.console.cprintn(color, a2w(str)); -macro EfiStatus? cprinte( - ConsoleColor color, - AsciiString str, - args... -) @maydiscard => efi_system::efi_sys.console.cprinte(color, a2w(str), ...args); - - -// ------------------------------------------------------------------ -module uefi::str; -import uefi; -import uefi::efi_system @public; - - -// - - -// ------------------------------------------------------------------ -module uefi::console; -import uefi; -import uefi::efi_system @public; - - -macro void? clear_to( - ConsoleColor color, - bool preserve = false, - bool reset_cursor = true -) @maydiscard => efi_system::efi_sys.console.clear(color, preserve, reset_cursor); -macro void? clear() @maydiscard => (void)(efi_error( - efi_system::efi_sys.console.stdout.clear_screen(efi_system::efi_sys.console.stdout) -)!); - - -// ------------------------------------------------------------------ -module uefi::sys; -import uefi; -import uefi::efi_system @public; - - -macro BootServices* bs() => efi_system::efi_sys.boot_services; -macro RuntimeServices* rs() => efi_system::efi_sys.runtime_services; -macro SystemTable* st() => efi_system::efi_sys.system_table; -macro EfiHandle image() => efi_system::efi_sys.image_handle; - -macro SimpleTextOutputProtocol* stdout() => efi_system::efi_sys.console.stdout; -macro SimpleTextOutputProtocol* stderr() => efi_system::efi_sys.console.stderr; -macro any stdin() => !sys::stdin_extended() ? efi_system::efi_sys.console.stdin : efi_system::efi_sys.console.stdin_ex; -macro bool stdin_extended() => null != efi_system::efi_sys.console.stdin_ex; - -macro void @stall(usz $duration) @builtin => efi_system::efi_sys.stall($duration); - -macro void @reset( - ResetType $type, - EfiStatus code = SUCCESS, - char[] buffer = { } -) @noreturn @builtin => efi_system::efi_sys.reset($type, code, buffer); - -macro void hang() @noreturn -{ - sys::@disable_watchdog(); - while (true) sys::@stall(500_000); -} -macro void halt() @noreturn => sys::hang(); -fn void lock() @noreturn -{ - while (true);} - -macro void @panic( - $message -) @builtin => efi_system::efi_sys.panic( - "[" +++ $$FILE +++ ":" +++ $$FUNC +++ ":" +++ $$LINE +++ "] PANIC! " +++ $message -); - -macro bool? @set_watchdog(usz $seconds) @maydiscard => efi_system::efi_sys.set_watchdog_timer($seconds); -macro bool? @disable_watchdog() @maydiscard => efi_system::efi_sys.set_watchdog_timer(0); -macro bool? set_watchdog_full( - usz seconds, - ulong code = -1, - usz data_size = 0, - EfiStringRaw data = null -) @maydiscard => efi_system::efi_sys.set_watchdog_timer(seconds, code, data_size, data); - -macro ulong? get_next_monotonic_count() @maydiscard => efi_system::efi_sys.get_next_monotonic_count(); - -macro uint? get_crc32(void* data @noalias, usz data_size) => efi_system::efi_sys.calculate_crc32(data, data_size); - -macro SystemMemoryMap*? get_memory_map() => efi_system::efi_sys.get_memory_map(); - - -// ------------------------------------------------------------------ -module uefi::mem; -import uefi; -import uefi::efi_system @public; - - -fn void* memcpy(void* into, void* from, usz length) @export("memcpy") @nostrip -{ - efi_system::efi_sys.memcpy(into, from, length); - return into; -} - -fn void* memmove(void* into, void* from, usz length) @export("memmove") @nostrip -{ - void* tmp = malloc(length); - memcpy(tmp, from, length); - memcpy(into, tmp, length); - free(tmp); - return into; -} - -fn void memset( - void* at, - char value, - usz length -) @export("memset") @nostrip => efi_system::efi_sys.memset(at, value, length); - -fn void* malloc(usz size) @export("malloc") @nostrip => efi_system::efi_sys.malloc(size)!!; -fn void* calloc(usz num, usz size) @export("calloc") @nostrip => efi_system::efi_sys.calloc(num, size)!!; - -fn void* realloc( - void* pool, - usz prev_len, - usz new_len -) @export("realloc") @nostrip => efi_system::efi_sys.realloc(pool, prev_len, new_len)!!; - -fn void free(void* pool) @export("free") @nostrip => efi_system::efi_sys.free(pool); -fn void? free_safe(void* pool) @export("free_safe") @nostrip => efi_system::efi_sys.free_safe(pool); |
