Skip to main content

drreg_reserve_info_t

Type Alias drreg_reserve_info_t 

Source
pub type drreg_reserve_info_t = _drreg_reserve_info_t;
Expand description

Contains information about a register’s reservation and restoration status.

Aliased Type§

#[repr(C)]
pub struct drreg_reserve_info_t { pub size: usize, pub reserved: i8, pub holds_app_value: i8, pub app_value_retained: i8, pub is_dr_slot: i8, pub opnd: opnd_t, pub tls_offs: i32, }

Fields§

§size: usize

The size of this structure. It must be set by the caller before querying.

§reserved: i8

Whether the register is currently reserved.

§holds_app_value: i8

Whether the register currently holds the application value.

§app_value_retained: i8

Whether the application’s value is stored somewhere (it may not be if the register is dead and \p conservative is not set in \p drreg_options_t).

§is_dr_slot: i8

True if the register’s TLS slot is a DR slot (and can thus be accessed by dr_read_saved_reg()) and false if either the slot is inside the dr_raw_tls_calloc() allocation used by drreg or the “slot” is another register.

§opnd: opnd_t

An operand that references the location storing the application value. If too many slots are in use and the register is stored in a non-directly-addressable slot, this is set to a null #opnd_t. If the register is being kept in a different register, this will be a register operand holding that location. If \p app_value_retained is false, this is set to a null #opnd_t.

§tls_offs: i32

If the register’s application value is not stored in a TLS slot, this is -1. If so, and the slot is a DR slot, this holds the DR slot index; if it is not a DR slot, this holds the offset from the TLS base of the slot assigned to the register.