+;; "Syscalls" {{{
+
+;; [NOTE] Volatile registers Linux (syscalls) vs UEFI
+;;
+;; Linux syscalls: RAX, RCX, R11
+;; UEFI: RAX, RCX, R11, RDX, R8, R9, R10
+
+;; We are in the process of replacing our dependency on Linux with a dependency
+;; on UEFI. The following macros attempt to isolate what would be syscalls in
+;; Linux; thus, we will be able to replace these with UEFI-based implementations,
+;; and in theory we should expect the program to work.
+
+;; Print a string of a given length.
+;;
+;; Input:
+;; - RCX = Pointer to buffer
+;; - RDX = Buffer length
+;;
+;; Clobbers: RAX, RCX, R11, RDI, RSI
+macro sys_print_string {
+ mov rax, 1
+ mov rdi, 1
+ mov rsi, rcx
+ syscall
+}
+
+;; }}}
+