summaryrefslogtreecommitdiff
path: root/lib/uefi.c3l/extension/console.c3
diff options
context:
space:
mode:
Diffstat (limited to 'lib/uefi.c3l/extension/console.c3')
-rw-r--r--lib/uefi.c3l/extension/console.c318
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/uefi.c3l/extension/console.c3 b/lib/uefi.c3l/extension/console.c3
new file mode 100644
index 0000000..07f2c14
--- /dev/null
+++ b/lib/uefi.c3l/extension/console.c3
@@ -0,0 +1,18 @@
+module uefi::protocol::console;
+
+macro SimpleTextOutputProtocol.clear_screen(&self) => self._clear_screen(self);
+macro SimpleTextOutputProtocol.@output_string(&self, #string) {
+ $switch ($Typeof(#string)):
+ $case EfiString:
+ return self._output_string(self, #string);
+ $case WString:
+ return self._output_string(self, (EfiString)#string);
+ $case String:
+ return self._output_string(self, (EfiString)&&$$wstr16(#string));
+ $default:
+ $echo($Typeof(#string));
+ $error("Unknown string type for @output_string");
+ $endswitch
+}
+
+macro SimpleTextInputProtocol.read_key(&self, EfiInputKey* key) => self._read_key(self, key);