diff src/elf.h @ 0:83c23a36980d

Init
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Fri, 26 May 2017 23:11:05 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/elf.h	Fri May 26 23:11:05 2017 +0900
@@ -0,0 +1,42 @@
+// Format of an ELF executable file
+
+#define ELF_MAGIC 0x464C457FU  // "\x7FELF" in little endian
+
+// File header
+struct elfhdr {
+    uint    magic;  // must equal ELF_MAGIC
+    uchar   elf[12];
+    ushort  type;
+    ushort  machine;
+    uint    version;
+    uint    entry;
+    uint    phoff;
+    uint    shoff;
+    uint    flags;
+    ushort  ehsize;
+    ushort  phentsize;
+    ushort  phnum;
+    ushort  shentsize;
+    ushort  shnum;
+    ushort  shstrndx;
+};
+
+// Program section header
+struct proghdr {
+    uint    type;
+    uint    off;
+    uint    vaddr;
+    uint    paddr;
+    uint    filesz;
+    uint    memsz;
+    uint    flags;
+    uint    align;
+};
+
+// Values for Proghdr type
+#define ELF_PROG_LOAD           1
+
+// Flag bits for Proghdr flags
+#define ELF_PROG_FLAG_EXEC      1
+#define ELF_PROG_FLAG_WRITE     2
+#define ELF_PROG_FLAG_READ      4