| IDA SDK

Modules | Classes | Functions
Register variables

## Detailed Description

Definition of regvar_t and related functions.

## Modules
| Register variable error codes
| Return values for functions in described in Register variables.

## Classes
struct | regvar_t
| A register variable allows the user to rename a general processor register to a meaningful name. More...

## Functions
idaman void ida_export | free_regvar (struct regvar_t *v)
idaman int ida_export | add_regvar (func_t *pfn, ea_t ea1, ea_t ea2, const char *canon, const char *user, const char *cmt)
| Define a register variable. More...
idaman regvar_t *ida_export | find_regvar (func_t *pfn, ea_t ea1, ea_t ea2, const char *canon, const char *user)
| Find a register variable definition (powerful version). More...
regvar_t * | find_regvar (func_t *pfn, ea_t ea, const char *canon)
| Find a register variable definition. More...
bool | has_regvar (func_t *pfn, ea_t ea)
| Is there a register variable definition? More...
idaman int ida_export | rename_regvar (func_t *pfn, regvar_t *v, const char *user)
| Rename a register variable. More...
idaman int ida_export | set_regvar_cmt (func_t *pfn, regvar_t *v, const char *cmt)
| Set comment for a register variable. More...
idaman int ida_export | del_regvar (func_t *pfn, ea_t ea1, ea_t ea2, const char *canon)
| Delete a register variable definition. More...

## Function Documentation

## ◆ add_regvar()

idaman int ida_export add_regvar | ( | func_t * | pfn,
|  | ea_t | ea1,
|  | ea_t | ea2,
|  | const char * | canon,
|  | const char * | user,
|  | const char * | cmt
| ) |  |

Define a register variable.

Parameters

  pfn | function in which the definition will be created
  ea1,ea2 | range of addresses within the function where the definition will be used
  canon | name of a general register
  user | user-defined name for the register
  cmt | comment for the definition

Returns
  Register variable error codes

## ◆ find_regvar() [1/2]

idaman regvar_t *ida_export find_regvar | ( | func_t * | pfn,
|  | ea_t | ea1,
|  | ea_t | ea2,
|  | const char * | canon,
|  | const char * | user
| ) |  |

Find a register variable definition (powerful version).

One of 'canon' and 'user' should be nullptr. If both 'canon' and 'user' are nullptr it returns the first regvar definition in the range.

Parameters

  pfn | function in question
  ea1,ea2 | range of addresses to search. ea1==BADADDR means the entire function
  canon | name of a general register
  user | user-defined name for the register

Returns
  nullptr-not found, otherwise ptr to regvar_t

## ◆ find_regvar() [2/2]

regvar_t * find_regvar | ( | func_t * | pfn,
|  | ea_t | ea,
|  | const char * | canon
| ) |  |
| inline

Find a register variable definition.

Parameters

  pfn | function in question
  ea | current address
  canon | name of a general register

Returns
  nullptr-not found, otherwise ptr to regvar_t

## ◆ has_regvar()

bool has_regvar | ( | func_t * | pfn,
|  | ea_t | ea
| ) |  |
| inline

Is there a register variable definition?

Parameters

  pfn | function in question
  ea | current address

## ◆ rename_regvar()

idaman int ida_export rename_regvar | ( | func_t * | pfn,
|  | regvar_t * | v,
|  | const char * | user
| ) |  |

Rename a register variable.

Parameters

  pfn | function in question
  v | variable to rename
  user | new user-defined name for the register

Returns
  Register variable error codes

## ◆ set_regvar_cmt()

idaman int ida_export set_regvar_cmt | ( | func_t * | pfn,
|  | regvar_t * | v,
|  | const char * | cmt
| ) |  |

Set comment for a register variable.

Parameters

  pfn | function in question
  v | variable to rename
  cmt | new comment

Returns
  Register variable error codes

## ◆ del_regvar()

idaman int ida_export del_regvar | ( | func_t * | pfn,
|  | ea_t | ea1,
|  | ea_t | ea2,
|  | const char * | canon
| ) |  |

Delete a register variable definition.

Parameters

  pfn | function in question
  ea1,ea2 | range of addresses within the function where the definition holds
  canon | name of a general register

Returns
  Register variable error codes