summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/FirmwareKit/EPM.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-23 21:06:27 -0500
committerGitHub <noreply@github.com>2025-11-23 21:06:27 -0500
commit23040fad647634c08697451fc22ee2ca999629c8 (patch)
tree72888f88c7728c82f3f6df1f4f70591de15eab36 /dev/kernel/FirmwareKit/EPM.h
parente5cc7351f0577b54c528fb827a7c7e6306c3e843 (diff)
parent83d870e58457a1d335a1d9b9966a6a1887cc297b (diff)
Merge pull request #81 from nekernel-org/dev
feat! breaking changes on kernel sources.
Diffstat (limited to 'dev/kernel/FirmwareKit/EPM.h')
-rw-r--r--dev/kernel/FirmwareKit/EPM.h112
1 files changed, 0 insertions, 112 deletions
diff --git a/dev/kernel/FirmwareKit/EPM.h b/dev/kernel/FirmwareKit/EPM.h
deleted file mode 100644
index 8df4d345..00000000
--- a/dev/kernel/FirmwareKit/EPM.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* ========================================
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
-
-======================================== */
-
-/**
- @brief The Explicit Partition Map scheme.
-*/
-
-#ifndef FIRMWAREKIT_EPM_H
-#define FIRMWAREKIT_EPM_H
-
-#include <NeKit/Defines.h>
-
-#define kEPMNameLength (32)
-#define kEPMFilesystemLength (16)
-#define kEPMMagicLength (5)
-
-/* @brief AMD64 magic for EPM */
-#define kEPMMagic86 "EPMAM"
-
-/* @brief RISC-V magic for EPM */
-#define kEPMMagicRISCV "EPMRV"
-
-/* @brief ARM magic for EPM */
-#define kEPMMagicARM "EPMAR"
-
-/* @brief 64x0 magic for EPM */
-#define kEPMMagic64k "EPM64"
-
-/* @brief 32x0 magic for EPM */
-#define kEPMMagic32k "EPM32"
-
-/* @brief POWER magic for EPM */
-#define kEPMMagicPPC "EPMPC"
-
-/* @brief Invalid magic for EPM */
-#define kEPMMagicError "EPM??"
-
-#ifdef __NE_AMD64__
-#define kEPMMagic kEPMMagic86
-#else
-#ifdef __NE_ARM64__
-#define kEPMMagic kEPMMagicARM
-#else
-#define kEPMMagic kEPMMagicError
-#endif
-#endif
-
-///! @brief partition must start at this address.
-///! Anything below is reserved for Data backup by the Main OS.
-#define kEPMPartBlockLba (sizeof(EPM_PART_BLOCK))
-
-///! @brief Current EPM revision.
-#define kEPMRevisionBcd (0x0100)
-
-/// !@brief EPM boot block address.
-#define kEPMBootBlockLba (0U)
-
-#define kEPMReserveLen (399)
-
-struct EPM_GUID;
-struct EPM_PART_BLOCK;
-
-/* The first 0 > 128 addresses of a disk contains these headers. */
-
-/// @brief EPM GUID structure.
-typedef struct EPM_GUID {
- Kernel::UInt32 Data1;
- Kernel::UInt16 Data2;
- Kernel::UInt16 Data3;
- Kernel::UInt8 Data4[8];
-} PACKED EPM_GUID;
-
-/**
- * @brief The EPM boot block.
- * @note NumBlock and LbaStart are ignored on some platforms.
- */
-struct PACKED EPM_PART_BLOCK {
- Kernel::Char Magic[kEPMMagicLength];
- Kernel::Char Name[kEPMNameLength];
- EPM_GUID Guid;
- Kernel::Int32 Version;
- Kernel::Int64 NumBlocks;
- Kernel::Int64 SectorSz;
- Kernel::Int64 LbaStart; // base offset
- Kernel::Int64 LbaEnd; // end offset
- Kernel::Int16 Kind;
- Kernel::Int16 Flags;
- Kernel::Int32 FsVersion;
- Kernel::Char Fs[kEPMFilesystemLength]; /* NeFS, OpenHeFS... */
- Kernel::Char Reserved[kEPMReserveLen]; // to fill a full sector.
-};
-
-///! @brief Version kind enum.
-///! @brief Use in boot block version field.
-
-enum {
- kEPMInvalid = 0x00,
- kEPMGeneric = 0xcf, /// @brief Generic OS
- kEPMLinux = 0x8f, /// @brief Linux on EPM.
- kEPMBSD = 0x9f, /// @brief BSD on EPM.
- kEPMNeKernel = 0x1f, /// @brief NeKernel.
- kEPMLegacy = 0x2f, /// @brief Legacy VMKernel.
- /// @note ... the rest is reserved for future OSes.
- kEPMInvalidOS = 0xff,
-};
-
-inline EPM_GUID kEPMNilGuid = {0x0U, 0x0U, 0x0U, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}};
-
-#endif // ifndef FIRMWAREKIT_EPM_H