x86_address_query
interface is used to query information
about an address for the x86 architecture and should be used from a
cpu_memory_address_cb_t callback.
SIM_INTERFACE(x86_address_query) { x86_seg_t (*segment)( conf_object_t *cpu, address_handle_t *handle); page_crossing_info_t (*get_page_crossing_info)( conf_object_t *cpu, address_handle_t *handle); }; #define X86_ADDRESS_QUERY_INTERFACE "x86_address_query"
The segment is used to get the segment register used in the address calculation. The handle is the address handle passed to cpu_memory_address_cb_t.
If the access crosses a page boundary the access will be split into two
calls. The get_page_crossing_info can be used to distinguish the
different cases from each other. The value returned is of type
page_crossing_info_t
and is one of:
Sim_Page_Crossing_None
(no crossing access),
Sim_Page_Crossing_First
(first part of a crossing access),
Sim_Page_Crossing_Second
(second part of a crossing access).
address_handle_t
.