Next: , Up: Assembler Programs   [Contents][Index]


5.1 Basic Datatypes

A memory representation of an assembler program is referred to by a program handle.

Data type: qsmm_prg_t

This is a type for a program handle. It is a pointer, so variables of this type can have the NULL value. The functions qsmm_node_disasm and qsmm_parse_asm_source_* allocate a new program handle. The function qsmm_prg_destroy frees an existing program handle. After allocating a program handle, it can be passed to API functions that take an argument of type qsmm_prg_t until the handle is freed.

To destroy a memory representation of an assembler program, the following function can be used.

Function: void qsmm_prg_destroy (qsmm_prg_t prg)

This function destroys a memory representation of an assembler program specified by handle prg. After the destruction, the program handle must not be used. If prg is NULL, then the function will have no effect.

The QSMM framework provides limited capabilities to work with instructions that are contained in a memory representation of an assembler program. An assembler instruction is referred to by an instruction handle.

Data type: qsmm_instr_t

This is a type for an instruction handle. It is a pointer, so variables of this type can have the NULL value. The handle of an existing instruction can be obtained by the functions qsmm_get_prg_instr and qsmm_get_instr_nested (see Inspecting an Assembler Program).