NeKernel
dev
Loading...
Searching...
No Matches
ZXD.h
Go to the documentation of this file.
1
/* ========================================
2
3
Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5
======================================== */
6
7
#pragma once
8
9
#include <
NeKit/Config.h
>
10
11
#define kZXDMagicNumber (0x2010AF)
12
#define kZXDVersion (0x0001)
13
14
namespace
Kernel
{
15
struct
ZXD_EXEC_HEADER;
16
struct
ZXD_STUB_HEADER;
17
18
enum
ZXD_FLAGS
{
19
kZXDFlagsInvalid
= 0,
20
kZXDFlagsDriver
= 120,
21
kZXDFlagsBoot
,
22
kZXDFlagsKernel
,
23
kZXDFlagsCount
=
kZXDFlagsKernel
-
kZXDFlagsDriver
+ 1,
24
};
25
28
struct
PACKED
ZXD_EXEC_HEADER
final {
29
UInt32
fMagic
;
30
UInt32
fVersion
;
31
UInt32
fFlags
;
32
UInt32
fHdrSize
;
33
UInt32
fCRC32
;
34
UInt32
fAssigneeSignature
;
35
UInt32
fIssuerSingature
;
36
UIntPtr
fExecOffset
;
37
SizeT
fExecSize
;
38
UIntPtr
fStubOffset
;
39
SizeT
fStubSize
;
40
SizeT
fStubAlign
;
41
SizeT
fStubCount
;
42
};
43
47
struct
PACKED
ZXD_STUB_HEADER
final {
48
UInt32
fStubSize
;
49
UInt32
fStubOffset
;
50
UInt32
fStubCRC32
;
51
};
52
53
using
ZXD_EXEC_HEADER_PTR
=
ZXD_EXEC_HEADER
*;
54
using
ZXD_STUB_HEADER_PTR
=
ZXD_STUB_HEADER
*;
55
}
// namespace Kernel
PACKED
#define PACKED
Config.h
Kernel
UPS inline definitions.
Definition
Device.h:12
Kernel::ZXD_FLAGS
ZXD_FLAGS
Definition
ZXD.h:18
Kernel::kZXDFlagsKernel
@ kZXDFlagsKernel
Definition
ZXD.h:22
Kernel::kZXDFlagsCount
@ kZXDFlagsCount
Definition
ZXD.h:23
Kernel::kZXDFlagsBoot
@ kZXDFlagsBoot
Definition
ZXD.h:21
Kernel::kZXDFlagsInvalid
@ kZXDFlagsInvalid
Definition
ZXD.h:19
Kernel::kZXDFlagsDriver
@ kZXDFlagsDriver
Definition
ZXD.h:20
Kernel::SizeT
__SIZE_TYPE__ SizeT
Definition
Config.h:60
Kernel::UInt32
__UINT32_TYPE__ UInt32
Definition
Config.h:44
Kernel::ZXD_EXEC_HEADER_PTR
ZXD_EXEC_HEADER * ZXD_EXEC_HEADER_PTR
Definition
ZXD.h:53
Kernel::ZXD_STUB_HEADER_PTR
ZXD_STUB_HEADER * ZXD_STUB_HEADER_PTR
Definition
ZXD.h:54
Kernel::UIntPtr
__UINTPTR_TYPE__ UIntPtr
Definition
Config.h:62
Kernel::ZXD_EXEC_HEADER
ZXD executable header.
Definition
ZXD.h:28
Kernel::ZXD_EXEC_HEADER::fVersion
UInt32 fVersion
Definition
ZXD.h:30
Kernel::ZXD_EXEC_HEADER::fStubOffset
UIntPtr fStubOffset
Definition
ZXD.h:38
Kernel::ZXD_EXEC_HEADER::fStubAlign
SizeT fStubAlign
Definition
ZXD.h:40
Kernel::ZXD_EXEC_HEADER::fStubSize
SizeT fStubSize
Definition
ZXD.h:39
Kernel::ZXD_EXEC_HEADER::fExecSize
SizeT fExecSize
Definition
ZXD.h:37
Kernel::ZXD_EXEC_HEADER::fMagic
UInt32 fMagic
Definition
ZXD.h:29
Kernel::ZXD_EXEC_HEADER::fStubCount
SizeT fStubCount
Definition
ZXD.h:41
Kernel::ZXD_EXEC_HEADER::fAssigneeSignature
UInt32 fAssigneeSignature
Definition
ZXD.h:34
Kernel::ZXD_EXEC_HEADER::fIssuerSingature
UInt32 fIssuerSingature
Definition
ZXD.h:35
Kernel::ZXD_EXEC_HEADER::fHdrSize
UInt32 fHdrSize
Definition
ZXD.h:32
Kernel::ZXD_EXEC_HEADER::fExecOffset
UIntPtr fExecOffset
Definition
ZXD.h:36
Kernel::ZXD_EXEC_HEADER::fCRC32
UInt32 fCRC32
Definition
ZXD.h:33
Kernel::ZXD_EXEC_HEADER::fFlags
UInt32 fFlags
Definition
ZXD.h:31
Kernel::ZXD_STUB_HEADER
ZXD stub header.
Definition
ZXD.h:47
Kernel::ZXD_STUB_HEADER::fStubCRC32
UInt32 fStubCRC32
Definition
ZXD.h:50
Kernel::ZXD_STUB_HEADER::fStubSize
UInt32 fStubSize
Definition
ZXD.h:48
Kernel::ZXD_STUB_HEADER::fStubOffset
UInt32 fStubOffset
Definition
ZXD.h:49
src
kernel
KernelKit
ZXD.h
Generated by
1.15.0