Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
struct_utils.hpp File Reference
#include <arion/common/global_defs.hpp>
#include <arion/common/global_excepts.hpp>
#include <arion/utils/host_utils.hpp>
#include <arion/utils/type_utils.hpp>
#include <cstdint>
#include <map>
#include <memory>
#include <sstream>
#include <stack>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

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

Namespaces

namespace  arion_poly_struct
 

Typedefs

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

Enumerations

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

Variables

std::map< arion::CPU_ARCH, uint8_t > arion_poly_struct::ALIGN_BY_ARCH
 Map defining the required memory alignment (in bytes) based on the CPU architecture.
 
std::map< arion::CPU_ARCH, uint8_t > arion_poly_struct::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 > arion_poly_struct::ARCH_SZ
 Map defining the architecture size (in bits) based on the CPU architecture.