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 Clone for op_t

§

fn clone(&self) -> op_t

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl ExternType for op_t

§

type Id = (o, p, __, t)

A type-level representation of the type’s C++ namespace and type name. Read more
§

type Kind = Trivial

§

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithinBoxTrivial for T
where T: ExternType<Kind = Trivial> + Unpin,

§

fn within_box(self) -> Pin<Box<T>>