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

Go to the source code of this file.

Classes

class  arion_x86::ArchManagerX86
 A class responsible for performing architecture specific operations in case of an x86 chip emulation. More...
 

Namespaces

namespace  arion
 
namespace  arion_x86
 

Variables

std::map< uint64_t, std::string > arion_x86::NAME_BY_SYSCALL_NO
 A map identifying a x86 syscall name given its number.
 
std::map< std::string, arion::REGarion_x86::ARCH_REGS
 A map identifying a Unicorn x86 register given its name.
 
std::map< arion::REG, uint8_t > arion_x86::ARCH_REGS_SZ
 A map identifying a Unicorn x86 register size given the register.
 
std::vector< arion::REGarion_x86::CTXT_REGS
 The list of high-level x86 registers that make up the context to be saved and restored.
 
std::map< uint64_t, arion::CPU_INTRarion_x86::IDT
 The x86 Interrupt Descriptor Table.
 
arion::ABI_REGISTERS arion_x86::ABI_REGS = arion::ABI_REGISTERS(UC_X86_REG_EIP, UC_X86_REG_ESP)
 Unicorn x86 PC and SP registers for genericity.
 
arion::ABI_CALLING_CONVENTION arion_x86::ABI_CALLING_CONV = arion::ABI_CALLING_CONVENTION(UC_X86_REG_EAX, {})
 Unicorn x86 registers involved in calling convention.
 
arion::ABI_SYSCALLING_CONVENTION arion_x86::ABI_SYSCALLING_CONV
 Unicorn x86 registers involved in syscalling convention.
 
arion::KERNEL_SEG_FLAGS arion_x86::SEG_FLAGS = ARION_VVAR_PRESENT | ARION_VDSO_PRESENT
 x86 flags telling the loader which kernel segments should be mapped in memory.
 
uint32_t arion_x86::HWCAP2 = 2
 Some well working x86 chip HWCAP2 value.
 
uint32_t arion_x86::HWCAP = 0xbfebfbff
 Some well working x86 chip HWCAP value.
 
const size_t arion_x86::PTR_SZ = 4
 Size in bytes of a pointer in a x86 chip.
 
const uint16_t arion_x86::ARCH_SZ = 32
 Size in bits of the x86 general-purpose registers.
 
arion::CPU_ARCH arion_x86::ARCH = arion::CPU_ARCH::X86_ARCH
 Arion CPU_ARCH for x86.
 
arion::ARCH_ATTRIBUTES arion_x86::ARCH_ATTRS
 Multiple architecture specific attributes for x86, grouped in a structure for genericity purpose.