Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
arion::ARCH_ATTRIBUTES Struct Reference

Multiple architecture specific attributes, grouped in a structure for genericity purpose. More...

#include <arch_manager.hpp>

Public Member Functions

 ARCH_ATTRIBUTES (CPU_ARCH arch, uint16_t arch_sz, size_t ptr_sz, uint32_t hwcap, uint32_t hwcap2, KERNEL_SEG_FLAGS seg_flags, ABI_REGISTERS regs, ABI_CALLING_CONVENTION calling_conv, ABI_SYSCALLING_CONVENTION syscalling_conv, std::map< uint64_t, std::string > &name_by_syscall_no)
 

Public Attributes

CPU_ARCH arch
 Arion CPU architecture.
 
uint16_t arch_sz
 Size in bits of the general-purpose registers.
 
size_t ptr_sz
 Size in bytes of a pointer.
 
uint32_t hwcap
 HWCAP to be inserted in Auxiliary Vector (AUXV).
 
uint32_t hwcap2
 HWCAP2 to be inserted in Auxiliary Vector (AUXV).
 
KERNEL_SEG_FLAGS seg_flags
 Flags telling the loader which kernel segments should be mapped in memory.
 
ABI_REGISTERS regs
 Unicorn IP and SP registers for genericity.
 
ABI_CALLING_CONVENTION calling_conv
 Unicorn registers involved in calling convention.
 
ABI_SYSCALLING_CONVENTION syscalling_conv
 Unicorn registers involved in syscalling convention.
 
std::map< uint64_t, std::string > name_by_syscall_no
 A map identifying a syscall name given its number.
 

Detailed Description

Multiple architecture specific attributes, grouped in a structure for genericity purpose.

Constructor & Destructor Documentation

◆ ARCH_ATTRIBUTES()

arion::ARCH_ATTRIBUTES::ARCH_ATTRIBUTES ( CPU_ARCH  arch,
uint16_t  arch_sz,
size_t  ptr_sz,
uint32_t  hwcap,
uint32_t  hwcap2,
KERNEL_SEG_FLAGS  seg_flags,
ABI_REGISTERS  regs,
ABI_CALLING_CONVENTION  calling_conv,
ABI_SYSCALLING_CONVENTION  syscalling_conv,
std::map< uint64_t, std::string > &  name_by_syscall_no 
)
inline

Builder for ARCH_ATTRIBUTES instances.

Parameters
[in]archArion CPU architecture.
[in]arch_szSize in bits of the general-purpose registers.
[in]ptr_szSize in bytes of a pointer.
[in]hwcapHWCAP to be inserted in Auxiliary Vector (AUXV).
[in]hwcap2HWCAP2 to be inserted in Auxiliary Vector (AUXV).
[in]seg_flagsFlags telling the loader which kernel segments should be mapped in memory.
[in]regsUnicorn IP and SP registers for genericity.
[in]calling_convUnicorn registers involved in calling convention.
[in]syscalling_convUnicorn registers involved in syscalling convention.
[in]name_by_syscall_noA map identifying a syscall name given its number.

Member Data Documentation

◆ arch

CPU_ARCH arion::ARCH_ATTRIBUTES::arch

Arion CPU architecture.

◆ arch_sz

uint16_t arion::ARCH_ATTRIBUTES::arch_sz

Size in bits of the general-purpose registers.

◆ calling_conv

ABI_CALLING_CONVENTION arion::ARCH_ATTRIBUTES::calling_conv

Unicorn registers involved in calling convention.

◆ hwcap

uint32_t arion::ARCH_ATTRIBUTES::hwcap

HWCAP to be inserted in Auxiliary Vector (AUXV).

◆ hwcap2

uint32_t arion::ARCH_ATTRIBUTES::hwcap2

HWCAP2 to be inserted in Auxiliary Vector (AUXV).

◆ name_by_syscall_no

std::map<uint64_t, std::string> arion::ARCH_ATTRIBUTES::name_by_syscall_no

A map identifying a syscall name given its number.

◆ ptr_sz

size_t arion::ARCH_ATTRIBUTES::ptr_sz

Size in bytes of a pointer.

◆ regs

ABI_REGISTERS arion::ARCH_ATTRIBUTES::regs

Unicorn IP and SP registers for genericity.

◆ seg_flags

KERNEL_SEG_FLAGS arion::ARCH_ATTRIBUTES::seg_flags

Flags telling the loader which kernel segments should be mapped in memory.

◆ syscalling_conv

ABI_SYSCALLING_CONVENTION arion::ARCH_ATTRIBUTES::syscalling_conv

Unicorn registers involved in syscalling convention.


The documentation for this struct was generated from the following file: