Struct idalib_sys::pod::op_t
#[repr(C)]pub struct op_t {Show 14 fields
pub n: uchar,
pub type_: optype_t,
pub offb: c_char,
pub offo: c_char,
pub flags: uchar,
pub dtype: op_dtype_t,
pub __bindgen_anon_1: op_t__bindgen_ty_1,
pub __bindgen_anon_2: op_t__bindgen_ty_2,
pub __bindgen_anon_3: op_t__bindgen_ty_3,
pub __bindgen_anon_4: op_t__bindgen_ty_4,
pub specflag1: c_char,
pub specflag2: c_char,
pub specflag3: c_char,
pub specflag4: c_char,
}
Expand description
Operand of an instruction. \ingroup operands_t This structure is filled by the analyzer. Upon entrance to the analyzer, some fields of this structure are initialized:
- #type: ::o_void
- #offb: 0
- #offo: 0
- #flags: #OF_SHOW
Fields§
§n: uchar
Number of operand (0,1,2). Initialized once at the start of work. You have no right to change its value.
type_: optype_t
Type of operand (see \ref o_)
offb: c_char
Offset of operand value from the instruction start (0 means unknown). Of course this field is meaningful only for certain types of operands. Leave it equal to zero if the operand has no offset. This offset should point to the ‘interesting’ part of operand. For example, it may point to the address of a function in \v{call func} or it may point to bytes holding ‘5’ in \v{mov ax, [bx+5]} Usually bytes pointed to this offset are relocated (have fixup information).
offo: c_char
Same as #offb (some operands have 2 numeric values used to form an operand). This field is used for the second part of operand if it exists. Currently this field is used only for outer offsets of Motorola processors. Leave it equal to zero if the operand has no offset.
flags: uchar
< \ref OF_
dtype: op_dtype_t
Type of operand value (see \ref dt_). Usually first 9 types are used. This is the type of the operand itself, not the size of the addressing mode. for example, byte ptr [epb+32_bit_offset] will have #dt_byte type.
__bindgen_anon_1: op_t__bindgen_ty_1
§__bindgen_anon_2: op_t__bindgen_ty_2
§__bindgen_anon_3: op_t__bindgen_ty_3
§__bindgen_anon_4: op_t__bindgen_ty_4
§specflag1: c_char
\name Special flags The following fields are used only in idp modules. You may use them as you want to store additional information about the operand. @{
specflag2: c_char
§specflag3: c_char
§specflag4: c_char
Trait Implementations§
§impl ExternType for op_t
impl ExternType for op_t
impl Copy for op_t
Auto Trait Implementations§
impl Freeze for op_t
impl RefUnwindSafe for op_t
impl Send for op_t
impl Sync for op_t
impl Unpin for op_t
impl UnwindSafe for op_t
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)