From d0213b4202ac12d7e92f7125e87c31d9ecb637dd Mon Sep 17 00:00:00 2001
From: Kyle Gunger <kgunger12@gmail.com>
Date: Mon, 11 Apr 2022 18:50:08 -0400
Subject: Remove src folders

---
 tnslc/compile/arch/arch.tnsl       |  20 +++++
 tnslc/compile/arch/common.tnsl     |  17 +++++
 tnslc/compile/arch/isa_arm.tnsl    |  15 ++++
 tnslc/compile/arch/isa_risc_v.tnsl |  15 ++++
 tnslc/compile/arch/isa_x86.tnsl    |  15 ++++
 tnslc/compile/compile.tnsl         |  21 ++++++
 tnslc/compile/format/elf.tnsl      | 151 +++++++++++++++++++++++++++++++++++++
 tnslc/compile/format/format.tnsl   |  20 +++++
 tnslc/compile/format/iex.tnsl      |   0
 tnslc/compile/format/out.tnsl      |   0
 tnslc/compile/format/pe.tnsl       |   0
 11 files changed, 274 insertions(+)
 create mode 100644 tnslc/compile/arch/arch.tnsl
 create mode 100644 tnslc/compile/arch/common.tnsl
 create mode 100644 tnslc/compile/arch/isa_arm.tnsl
 create mode 100644 tnslc/compile/arch/isa_risc_v.tnsl
 create mode 100644 tnslc/compile/arch/isa_x86.tnsl
 create mode 100644 tnslc/compile/compile.tnsl
 create mode 100644 tnslc/compile/format/elf.tnsl
 create mode 100644 tnslc/compile/format/format.tnsl
 create mode 100644 tnslc/compile/format/iex.tnsl
 create mode 100644 tnslc/compile/format/out.tnsl
 create mode 100644 tnslc/compile/format/pe.tnsl

(limited to 'tnslc/compile')

diff --git a/tnslc/compile/arch/arch.tnsl b/tnslc/compile/arch/arch.tnsl
new file mode 100644
index 0000000..5e81673
--- /dev/null
+++ b/tnslc/compile/arch/arch.tnsl
@@ -0,0 +1,20 @@
+/##
+	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
+#/
+
+/; module arch
+	:import "compile/arch/common.tnsl"
+	:import "compile/arch/isa_x86.tnsl"
+;/
\ No newline at end of file
diff --git a/tnslc/compile/arch/common.tnsl b/tnslc/compile/arch/common.tnsl
new file mode 100644
index 0000000..cba0d9f
--- /dev/null
+++ b/tnslc/compile/arch/common.tnsl
@@ -0,0 +1,17 @@
+/##
+	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
+#/
+
+; struct instruction {}
\ No newline at end of file
diff --git a/tnslc/compile/arch/isa_arm.tnsl b/tnslc/compile/arch/isa_arm.tnsl
new file mode 100644
index 0000000..0dc3468
--- /dev/null
+++ b/tnslc/compile/arch/isa_arm.tnsl
@@ -0,0 +1,15 @@
+/##
+	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
+#/
diff --git a/tnslc/compile/arch/isa_risc_v.tnsl b/tnslc/compile/arch/isa_risc_v.tnsl
new file mode 100644
index 0000000..0dc3468
--- /dev/null
+++ b/tnslc/compile/arch/isa_risc_v.tnsl
@@ -0,0 +1,15 @@
+/##
+	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
+#/
diff --git a/tnslc/compile/arch/isa_x86.tnsl b/tnslc/compile/arch/isa_x86.tnsl
new file mode 100644
index 0000000..0dc3468
--- /dev/null
+++ b/tnslc/compile/arch/isa_x86.tnsl
@@ -0,0 +1,15 @@
+/##
+	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
+#/
diff --git a/tnslc/compile/compile.tnsl b/tnslc/compile/compile.tnsl
new file mode 100644
index 0000000..263dc59
--- /dev/null
+++ b/tnslc/compile/compile.tnsl
@@ -0,0 +1,21 @@
+/##
+	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
+#/
+
+/; module compile
+	:include "compile/arch/arch.tnsl"
+	:include "compile/format/format.tnsl"
+	
+;/
diff --git a/tnslc/compile/format/elf.tnsl b/tnslc/compile/format/elf.tnsl
new file mode 100644
index 0000000..8490180
--- /dev/null
+++ b/tnslc/compile/format/elf.tnsl
@@ -0,0 +1,151 @@
+/##
+	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
+}
+
diff --git a/tnslc/compile/format/format.tnsl b/tnslc/compile/format/format.tnsl
new file mode 100644
index 0000000..2d4ed4b
--- /dev/null
+++ b/tnslc/compile/format/format.tnsl
@@ -0,0 +1,20 @@
+/##
+	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
+#/
+
+/; module format
+	:include "compile/format/out.tnsl"
+	:include "compile/format/elf.tnsl"
+;/
\ No newline at end of file
diff --git a/tnslc/compile/format/iex.tnsl b/tnslc/compile/format/iex.tnsl
new file mode 100644
index 0000000..e69de29
diff --git a/tnslc/compile/format/out.tnsl b/tnslc/compile/format/out.tnsl
new file mode 100644
index 0000000..e69de29
diff --git a/tnslc/compile/format/pe.tnsl b/tnslc/compile/format/pe.tnsl
new file mode 100644
index 0000000..e69de29
-- 
cgit v1.2.3