processor_memory_inspection interface is implemented by
processor models for memory inspection.
Function logical_inspection_port returns a port that can be used to issue transactions from the point of view of the processor. The user is expected to use a logical/virtual address when accessing this port. The processors architectural atoms are appended to the transaction. An internal MMU lookup is performed to translate the logical/virtual address to a physical address. The transaction is then forwarded to the physical_memory attached to the processor. This will give the same access rights to the memory hierarchy as if the processor itself had issued the transaction. This function can return NULL if the processor does not support logical/virtual memory addressing.
Function physical_inspection_port returns a port that can be used to issue transactions from the point of view of the processor. The user is expected to use a physical address when accessing this port. The processors architectural atoms are appended to the transaction when using this port, before the transaction is forwarded to the physical_memory attached to the processor. This will give the same access rights to the memory hierarchy as if the processor itself had issued the transaction.
SIM_INTERFACE(processor_memory_inspection) {
conf_object_t *(*logical_inspection_port)(conf_object_t *obj);
conf_object_t *(*physical_inspection_port)(conf_object_t *obj);
};
#define PROCESSOR_MEMORY_INSPECTION_INTERFACE "processor_memory_inspection"