Next: Accessing Binary Instruction Parameters, Previous: Registering the Instruction Meta-class Function, Up: Defining Instruction Meta-classes [Contents][Index]
An instruction class has the following identifiers unique in various scopes:
The function qsmm_reg_instr_class_v2
(see Registering Instruction Classes) registers an instruction class and sets its binary parameters.
That function sends an event QSMM_EVT_INSTR_CLASS_INIT
to the event handler of a corresponding instruction meta-class.
This event can set the text parameters of this instruction class by the function qsmm_set_eh_instr_param_str_f
(see Setting Text Instruction Parameters) based on the binary parameters.
An event QSMM_EVT_INSTR_CLASS_DONE
sent on destroying the instruction class can uninitialize its binary parameters if they address allocated memory blocks or reference other resources.
An event QSMM_EVT_ACTIVATE
has access to the binary parameters of an instruction class to quickly determine how to handle the invocation of an assembler instruction belonging to the instruction class.
See Accessing Binary Instruction Parameters, for how to access the binary parameters of an instruction class on processing events QSMM_EVT_INSTR_CLASS_INIT
, QSMM_EVT_INSTR_CLASS_DONE
, and QSMM_EVT_ACTIVATE
.
The function qsmm_set_eh_instr_param_str_f
(see Setting Text Instruction Parameters) called on processing an event QSMM_EVT_INSTR_CLASS_INIT
usually sets the text parameters of an instruction class based on its binary parameters.
That function converts those text parameters to the canonical form.
qsmm_reg_instr_class_v2
returns that ordinal number after registering the instruction class.
API functions provide access to various parameters of an instruction class by its index.
The following tuples containing identifiers of an instruction class are unique in the scope of a multinode model:
qsmm_reg_instr_class_v2
finds a new index, so it is always unique.
The function qsmm_reg_instr_class_v2
registers an instruction class as belonging to an instruction class set.
Use the function described below to get the name of this instruction class set when processing an event by the event handler of an instruction meta-class.
You can also use that function to get the name of an instruction class set when processing an event by the event handler of this instruction class set.
This function retrieves the name of instruction class set of an event processed by an event handler of a multinode model.
If instr_class_set_name_pp is not NULL
, the function sets *instr_class_set_name_pp to the name of that instruction class set.
If the event handler of an instruction meta-class calls this function while processing an event QSMM_EVT_INSTR_CLASS_INIT
, QSMM_EVT_INSTR_CLASS_DONE
, or QSMM_EVT_ACTIVATE
, the function retrieves the name of an instruction class set containing an instruction class associated with the event.
If the event handler of an instruction class set calls this function, it retrieves the name of this instruction class set.
On success, the function returns a non-negative value.
If the context of calling the function is not the event handler of an instruction meta-class on processing an event QSMM_EVT_INSTR_CLASS_INIT
, QSMM_EVT_INSTR_CLASS_DONE
, or QSMM_EVT_ACTIVATE
and not the event handler of an instruction class set, the function returns negative error code QSMM_ERR_UNTIMELY
.