summaryrefslogtreecommitdiff
path: root/tnslc/src/compile/format/elf.tnsl
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2022-04-11 18:50:08 -0400
committerKyle Gunger <kgunger12@gmail.com>2022-04-11 18:50:08 -0400
commitd0213b4202ac12d7e92f7125e87c31d9ecb637dd (patch)
tree50164dfa2295c6806f3866c24a897789856337a7 /tnslc/src/compile/format/elf.tnsl
parent41cb9e107b20153449526cedec101e33f21d8630 (diff)
Remove src folders
Diffstat (limited to 'tnslc/src/compile/format/elf.tnsl')
-rw-r--r--tnslc/src/compile/format/elf.tnsl151
1 files changed, 0 insertions, 151 deletions
diff --git a/tnslc/src/compile/format/elf.tnsl b/tnslc/src/compile/format/elf.tnsl
deleted file mode 100644
index 8490180..0000000
--- a/tnslc/src/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
-}
-