From 081a890e056faf091bfdc26e5ef8a05d48265869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Sun, 10 Jul 2022 16:05:05 +0100 Subject: [PATCH] Add a skeleton file for eventual assembly port of hex0. --- .gitignore | 6 +++++- Development/rootfs/kaem.amd64 | 5 +++++ amd64/Development/Makefile | 23 +++++++++++++++++++++++ amd64/Development/hex0.S | 14 ++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 Development/rootfs/kaem.amd64 create mode 100644 amd64/Development/Makefile create mode 100644 amd64/Development/hex0.S diff --git a/.gitignore b/.gitignore index b641b3e..538a99b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,8 @@ # SPDX-License-Identifier: MIT *~ -Development/build/ +*/build/ +*.d +*.lib +*.efi +*.o diff --git a/Development/rootfs/kaem.amd64 b/Development/rootfs/kaem.amd64 new file mode 100644 index 0000000..a73b3fd --- /dev/null +++ b/Development/rootfs/kaem.amd64 @@ -0,0 +1,5 @@ +# kaem + +# Rebuild hex0 +EFI\BOOT\hex0.efi hex0_AMD64_POSIX.hex0 hex0 # hex0 + diff --git a/amd64/Development/Makefile b/amd64/Development/Makefile new file mode 100644 index 0000000..ca1fbba --- /dev/null +++ b/amd64/Development/Makefile @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2022 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +cc = clang +cflags = -ffreestanding -MMD -mno-red-zone -std=c11 -target x86_64-unknown-windows +ld = lld-link +lflags = -subsystem:efi_application -nodefaultlib -dll + +build = build + +all: $(build)/hex0.efi + +$(build)/%.o : %.S + mkdir -p $(build) + $(cc) $(cflags) -c $< -o $@ + +$(build)/%.efi : $(build)/%.o + $(ld) $(lflags) -entry:efi_main $< -out:$@ + +. PHONY : clean all +clean: + rm -f $(build) diff --git a/amd64/Development/hex0.S b/amd64/Development/hex0.S new file mode 100644 index 0000000..ba23241 --- /dev/null +++ b/amd64/Development/hex0.S @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2022 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + + .text + .globl efi_main + +efi_main: + sub $16, %rsp + mov %rdx, 8(%rsp) + mov %rcx, (%rsp) + mov $42, %eax + add $16, %rsp + ret