Architectural Support: x86_64 (#37)
[lunaix-os.git] / lunaix-os / arch / x86 / exec / elf64.c
diff --git a/lunaix-os/arch/x86/exec/elf64.c b/lunaix-os/arch/x86/exec/elf64.c
new file mode 100644 (file)
index 0000000..4bc9058
--- /dev/null
@@ -0,0 +1,14 @@
+#include <lunaix/exebi/elf.h>
+
+#define EM_X86_64 62
+
+int
+elf_check_arch(const struct elf* elf)
+{
+    const struct elf_ehdr* ehdr = &elf->eheader;
+
+    return *(u32_t*)(ehdr->e_ident) == ELFMAGIC_LE &&
+           ehdr->e_ident[EI_CLASS] == ELFCLASS64 &&
+           ehdr->e_ident[EI_DATA] == ELFDATA2LSB && 
+           ehdr->e_machine == EM_X86_64;
+}
\ No newline at end of file