summaryrefslogtreecommitdiffhomepage
path: root/dev/CompilerKit/PEF.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:05:29 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:05:29 +0100
commitbbe2c77243c541ca7e0075149f5be3262eb89523 (patch)
treeae5d59d299344fd19584a2c3642bacd788e841d4 /dev/CompilerKit/PEF.h
parentb5adf16a96b9cbb80c74cf30404ed5bcff03ac34 (diff)
feat! breaking changes on necti sources.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/CompilerKit/PEF.h')
-rw-r--r--dev/CompilerKit/PEF.h137
1 files changed, 0 insertions, 137 deletions
diff --git a/dev/CompilerKit/PEF.h b/dev/CompilerKit/PEF.h
deleted file mode 100644
index edf8f5d..0000000
--- a/dev/CompilerKit/PEF.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* =========================================
-
- Copyright (C) 2024-2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license
-
-======================================== */
-
-#pragma once
-
-#include <CompilerKit/Defines.h>
-
-// @file PEF.h
-// @brief Preferred Executable Format
-
-#define kPefMagic "Open"
-#define kPefMagicFat "nepO"
-
-#define kPefExt ".exec"
-#define kPefDylibExt ".dylib"
-#define kPefLibExt ".lib"
-#define kPefObjectExt ".obj"
-#define kPefDebugExt ".dbg"
-#define kPefDriverExt ".sys"
-
-#define kPefZero128 ".zero128"
-#define kPefCode128 ".code128"
-#define kPefData128 ".data128"
-
-#define kPefZero64 ".zero64"
-#define kPefCode64 ".code64"
-#define kPefData64 ".data64"
-
-/* @note counting the \0 at the end */
-#define kPefMagicLen (5)
-
-#define kPefVersion (0x0500)
-#define kPefNameLen (255)
-
-#define kPefBaseOrigin (0x40000000)
-
-/* @note this doesn't have to be __ImageStart only, any C initialization stub will do. */
-#define kPefStart "__ImageStart"
-
-namespace CompilerKit {
-/* @brief Architecture type. */
-enum {
- kPefArchIntel86S,
- kPefArchAMD64,
- kPefArchRISCV,
- kPefArch64000, /* Open64x0 RISC architecture. */
- kPefArch32000,
- kPefArchPowerPC, /* 64-bit POWER architecture. */
- kPefArchARM64,
- kPefArchCount = (kPefArchARM64 - kPefArchIntel86S) + 1,
- kPefArchInvalid = 0xFF,
-};
-
-/* @brief Architecture vendor. */
-enum {
- kPefSubArchGeneric = 0,
- kPefSubArchAMD = 200,
- kPefSubArchIntel,
- kPefSubArchARM,
- kPefSubArchIBM,
-};
-
-enum {
- kPefKindInvalid = 0,
- kPefKindExec = 1, /* .exec */
- kPefKindDylib = 2, /* .dylib */
- kPefKindObject = 4, /* .obj */
- kPefKindDebug = 5, /* .dbg */
- kPefKindDriver = 6,
- kPefKindCount,
-};
-
-/* PEF container information */
-typedef struct PEFContainer final {
- Char Magic[kPefMagicLen];
- UInt32 Linker; /* Linker used to link executable */
- UInt32 Version;
- UInt32 Kind;
- UInt32 Abi;
- UInt32 Cpu;
- UInt32 SubCpu; /* Cpu specific information */
- UIntPtr Start; /* Origin of code */
- SizeType HdrSz; /* Size of header */
- SizeType Count; /* container header count */
- UInt32 Checksum; /* Whole binary checksum */
-} PACKED PEFContainer, *PEFContainerPtr;
-
-/* First PEFCommandHeader starts after PEFContainer */
-/* Last container is __exec_end */
-
-/* PEF executable section and commands. */
-
-/* @brief Command Header, a la Mach-O, designed with FAT binaries and virtual memory in mind. */
-typedef struct PEFCommandHeader final {
- Char Name[kPefNameLen]; /* container name */
- UInt32 Cpu; /* container cpu */
- UInt32 SubCpu; /* container sub-cpu */
- UInt32 Flags; /* container flags */
- UInt16 Kind; /* container kind */
- UIntPtr Offset; /* File offset */
- SizeType OffsetSize;
- UIntPtr VirtualAddress; /* Virtual Address */
- SizeType VirtualSize; /* Virtual Size */
-} PACKED PEFCommandHeader, *PEFCommandHeaderPtr;
-
-enum {
- kPefInvalid = 0x0,
- kPefCode = 0xC,
- kPefData = 0xD,
- kPefZero = 0xE,
- kPefLinkerID = 0x1,
- kPefCount = 4,
-};
-} // namespace CompilerKit
-
-inline std::ofstream& operator<<(std::ofstream& fp, CompilerKit::PEFContainer& container) {
- fp.write((char*) &container, sizeof(CompilerKit::PEFContainer));
- return fp;
-}
-
-inline std::ofstream& operator<<(std::ofstream& fp, CompilerKit::PEFCommandHeader& container) {
- fp.write((char*) &container, sizeof(CompilerKit::PEFCommandHeader));
- return fp;
-}
-
-inline std::ifstream& operator>>(std::ifstream& fp, CompilerKit::PEFContainer& container) {
- fp.read((char*) &container, sizeof(CompilerKit::PEFContainer));
- return fp;
-}
-
-inline std::ifstream& operator>>(std::ifstream& fp, CompilerKit::PEFCommandHeader& container) {
- fp.read((char*) &container, sizeof(CompilerKit::PEFCommandHeader));
- return fp;
-}