Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
gdt_manager.hpp File Reference
#include <arion/common/global_defs.hpp>
#include <cstdint>
#include <memory>

Go to the source code of this file.

Classes

class  arion::GdtManager
 A class used to setup and interact with the Global Descriptor Table (GDT). More...
 

Namespaces

namespace  arion
 

Macros

#define ARION_GDT_ADDR   0xC0000000
 
#define ARION_GDT_LIMIT   0x1000
 
#define ARION_GDT_ENTRY_SZ   0x8
 
#define ARION_GDT_ENTRIES_N   0x20
 
#define ARION_GDT_PERMS   0x6
 
#define ARION_GS_SEGMENT_ADDR   0xC0001000
 
#define ARION_GS_SEGMENT_SZ   0x1000
 
#define ARION_GS_SEGMENT_PERMS   0x6
 
#define ARION_F_GRANULARITY   0x8
 
#define ARION_F_PROT_32   0x4
 
#define ARION_F_LONG   0x2
 
#define ARION_F_AVAILABLE   0x1
 
#define ARION_A_PRESENT   0x80
 
#define ARION_A_PRIV_3   0x60
 
#define ARION_A_PRIV_2   0x40
 
#define ARION_A_PRIV_1   0x20
 
#define ARION_A_PRIV_0   0x0
 
#define ARION_A_CODE   0x10
 
#define ARION_A_DATA   0x10
 
#define ARION_A_TSS   0x0
 
#define ARION_A_GATE   0x0
 
#define ARION_A_EXEC   0x8
 
#define ARION_A_DATA_WRITABLE   0x2
 
#define ARION_A_CODE_READABLE   0x2
 
#define ARION_A_DIR_CON_BIT   0x4
 
#define ARION_S_GDT   0x0
 
#define ARION_S_LDT   0x4
 
#define ARION_S_PRIV_3   0x3
 
#define ARION_S_PRIV_2   0x2
 
#define ARION_S_PRIV_1   0x1
 
#define ARION_S_PRIV_0   0x0
 

Macro Definition Documentation

◆ ARION_A_CODE

#define ARION_A_CODE   0x10

◆ ARION_A_CODE_READABLE

#define ARION_A_CODE_READABLE   0x2

◆ ARION_A_DATA

#define ARION_A_DATA   0x10

◆ ARION_A_DATA_WRITABLE

#define ARION_A_DATA_WRITABLE   0x2

◆ ARION_A_DIR_CON_BIT

#define ARION_A_DIR_CON_BIT   0x4

◆ ARION_A_EXEC

#define ARION_A_EXEC   0x8

◆ ARION_A_GATE

#define ARION_A_GATE   0x0

◆ ARION_A_PRESENT

#define ARION_A_PRESENT   0x80

◆ ARION_A_PRIV_0

#define ARION_A_PRIV_0   0x0

◆ ARION_A_PRIV_1

#define ARION_A_PRIV_1   0x20

◆ ARION_A_PRIV_2

#define ARION_A_PRIV_2   0x40

◆ ARION_A_PRIV_3

#define ARION_A_PRIV_3   0x60

◆ ARION_A_TSS

#define ARION_A_TSS   0x0

◆ ARION_F_AVAILABLE

#define ARION_F_AVAILABLE   0x1

◆ ARION_F_GRANULARITY

#define ARION_F_GRANULARITY   0x8

◆ ARION_F_LONG

#define ARION_F_LONG   0x2

◆ ARION_F_PROT_32

#define ARION_F_PROT_32   0x4

◆ ARION_GDT_ADDR

#define ARION_GDT_ADDR   0xC0000000

◆ ARION_GDT_ENTRIES_N

#define ARION_GDT_ENTRIES_N   0x20

◆ ARION_GDT_ENTRY_SZ

#define ARION_GDT_ENTRY_SZ   0x8

◆ ARION_GDT_LIMIT

#define ARION_GDT_LIMIT   0x1000

◆ ARION_GDT_PERMS

#define ARION_GDT_PERMS   0x6

◆ ARION_GS_SEGMENT_ADDR

#define ARION_GS_SEGMENT_ADDR   0xC0001000

◆ ARION_GS_SEGMENT_PERMS

#define ARION_GS_SEGMENT_PERMS   0x6

◆ ARION_GS_SEGMENT_SZ

#define ARION_GS_SEGMENT_SZ   0x1000

◆ ARION_S_GDT

#define ARION_S_GDT   0x0

◆ ARION_S_LDT

#define ARION_S_LDT   0x4

◆ ARION_S_PRIV_0

#define ARION_S_PRIV_0   0x0

◆ ARION_S_PRIV_1

#define ARION_S_PRIV_1   0x1

◆ ARION_S_PRIV_2

#define ARION_S_PRIV_2   0x2

◆ ARION_S_PRIV_3

#define ARION_S_PRIV_3   0x3