x86_access_type x86_cache_flush
API Reference Manual  /  4 Model-to-Model Interfaces  / 

x86_address_query

Description
The 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).

Execution Context
Cell Context for all methods, but must be called from a callback receiving a handle of type address_handle_t.

x86_access_type x86_cache_flush