Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
arion_poly_struct Namespace Reference

Classes

class  AbsArionStructType
 Abstract base class providing common utilities for structure types that interact with emulated memory. More...
 
class  ArionStructType
 
class  ArionVariableStructType
 
struct  POLYMORPHIC_STRUCT_CONSTRAINT
 Structure defining an architecture constraint for a field in a polymorphic struct. More...
 
struct  POLYMORPHIC_STRUCT_FIELD
 Structure defining a field within a polymorphic struct, including its constraints and type metadata. More...
 
class  PolymorphicStruct
 Represents a single instance of a polymorphic structure, storing its field values dynamically. More...
 
class  PolymorphicStructFactory
 

Typedefs

using STRUCT_ID = uint64_t
 Type definition for a unique ID assigned to a managed polymorphic struct instance.
 

Enumerations

enum  POLYMORPHIC_STRUCT_FIELD_TYPE {
  V8 , V16 , V32 , V64 ,
  PTR_SZ , A8 , A16 , A32 ,
  A64 , PTR_ARR
}
 Enumeration for specifying the size and type of a polymorphic structure field. More...
 

Variables

std::map< arion::CPU_ARCH, uint8_t > ALIGN_BY_ARCH
 Map defining the required memory alignment (in bytes) based on the CPU architecture.
 
std::map< arion::CPU_ARCH, uint8_t > PTR_SZ_BY_ARCH
 Map defining the size of a pointer (in bytes) based on the CPU architecture.
 
std::map< arion::CPU_ARCH, uint16_t > ARCH_SZ
 Map defining the architecture size (in bits) based on the CPU architecture.
 

Typedef Documentation

◆ STRUCT_ID

using arion_poly_struct::STRUCT_ID = typedef uint64_t

Type definition for a unique ID assigned to a managed polymorphic struct instance.

Enumeration Type Documentation

◆ POLYMORPHIC_STRUCT_FIELD_TYPE

Enumeration for specifying the size and type of a polymorphic structure field.

Enumerator
V8 

8-bit integer type.

V16 

16-bit integer type.

V32 

32-bit integer type.

V64 

64-bit integer type.

PTR_SZ 

Pointer size type (size determined by architecture).

A8 

8-bit array type.

A16 

16-bit array type.

A32 

32-bit array type.

A64 

64-bit array type.

PTR_ARR 

Pointer size array type (array of pointers).

Variable Documentation

◆ ALIGN_BY_ARCH

std::map<arion::CPU_ARCH, uint8_t> arion_poly_struct::ALIGN_BY_ARCH
inline
Initial value:
{
}
@ X8664_ARCH
The x86-64 CPU architecture.
Definition global_defs.hpp:134
@ X86_ARCH
The x86 CPU architecture.
Definition global_defs.hpp:132
@ ARM64_ARCH
The ARM64 CPU architecture.
Definition global_defs.hpp:138
@ ARM_ARCH
The ARM CPU architecture.
Definition global_defs.hpp:136

Map defining the required memory alignment (in bytes) based on the CPU architecture.

◆ ARCH_SZ

std::map<arion::CPU_ARCH, uint16_t> arion_poly_struct::ARCH_SZ
inline
Initial value:

Map defining the architecture size (in bits) based on the CPU architecture.

◆ PTR_SZ_BY_ARCH

std::map<arion::CPU_ARCH, uint8_t> arion_poly_struct::PTR_SZ_BY_ARCH
inline
Initial value:

Map defining the size of a pointer (in bytes) based on the CPU architecture.