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