From 4e2e269fab3f5facedc6ec0131f132bd66c0aac4 Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Wed, 14 Sep 2022 14:05:03 -0400 Subject: Focus on ASM generation instead of raw binary --- tnslc/compile/format/elf.tnsl | 151 ------------------------------------------ 1 file changed, 151 deletions(-) delete mode 100644 tnslc/compile/format/elf.tnsl (limited to 'tnslc/compile/format/elf.tnsl') diff --git a/tnslc/compile/format/elf.tnsl b/tnslc/compile/format/elf.tnsl deleted file mode 100644 index 8490180..0000000 --- a/tnslc/compile/format/elf.tnsl +++ /dev/null @@ -1,151 +0,0 @@ -/## - Copyright 2021 Kyle Gunger - - This file is licensed under the CDDL 1.0 (the License) - and may only be used in accordance with the License. - You should have received a copy of the License with this - software/source code. If you did not, a copy can be found - at the following URL: - - https://opensource.org/licenses/CDDL-1.0 - - THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO - WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE - EXPRESS OR IMPLIED -#/ - -# Constants and values used in ELF files - -# File signature -;const {4}uint8 SIGNATURE_ELF = {0x7F, 'E', 'L', 'F'} - -# ELF version always 1 -;const uint8 VERSION_ELF = 1 - -# OS identifiers (from wikipedia) -;enum ABI_ELF [uint8] { - SystemV = 0x0, - HP_UX = 0x1, - NetBSD = 0x2, - Linux = 0x3, - GNUHurd = 0x4, - Solaris = 0x6, - AIX = 0x7, - IRIX = 0x8, - FreeBSD = 0x9, - Tru64 = 0xA, - OpenBSD = 0xC, - OpenVMS = 0xD -} - -# ELF file types (from wikipedia) -;enum TYPE_ELF [uint16] { - ET_NONE = 0x0, - ET_REL = 0x1, - ET_EXEC = 0x2, - ET_DYN = 0x3, - ET_CORE = 0x4, - ET_LOOS = 0xFE00, - ET_HIOS = 0xFEFF, - ET_LOPROC = 0xFF00, - ET_HIPROC = 0xFFFF -} - -# ISA (from wikipedia) -;enum ARCH_ELF [uint16] { - NONE = 0x0, - SPARC = 0x2, - x86_32 = 0x3, - MIPS = 0x8, - PowerPC = 0x14, - PowerPC64 = 0x15, - ARM = 0x28, - SPARC9 = 0x2B, - IA_64 = 0x32, - x86_64 = 0x3E, - ARM64 = 0xB7, - RISC_V = 0xF3 -} - -# Some zeros to fill out the pad in the header -;const {7}uint8 PAD_ZEROS_ELF = {0, 0, 0, 0, 0, 0, 0} - - - -# Internal file structures - -# Identity inside header -;raw struct IdentityELF { - {4}uint8 - signature, - - uint8 - class, - data, - version, - abi, - - # Usually zero - abiVersion, - - {7}uint8 - # Filled with zeros, use PAD_ZEROS_ELF to fill out - pad -} - -# Main header (32 bit) -;raw struct HeaderELF32 { - IdentityELF - identity, - - uint16 - fileType, - arch, - - {4}uint8 - version, - entry, - programHeader, - sectionHeader, - - {4}uint8 - flags, - - uint16 - headerSize, - programHeaderSize, - programHeaderEntries, - sectionHeaderSize, - sectionHeaderEntries, - shNameIndex -} - -# Main header (64 bit) -;raw struct HeaderELF64 { - IdentityELF - identity, - - uint16 - fileType, - arch, - - {4}uint8 - version, - - {8}uint8 - entry, - programHeader, - sectionHeader, - - {4}uint8 - flags, - - uint16 - headerSize, - programHeaderSize, - programHeaderEntries, - sectionHeaderSize, - sectionHeaderEntries, - shNameIndex -} - -- cgit v1.2.3