x86_memory_access interface is used to access memory
from user decoder service routines. If an exception condition
occurs, a longjmp is taken. The interface methods may only be invoked from
user decoder service routines.
This interface is internal and may change without notice.
SIM_INTERFACE(x86_memory_access) {
uint64 (*read_logical)(
conf_object_t *cpu,
logical_address_t offs,
x86_seg_t seg,
unsigned len,
x86_processor_mode_t mode,
x86_access_type_t access_type);
#if !defined(PYWRAP)
void (*read_logical_buf)(
conf_object_t *cpu,
logical_address_t offs,
x86_seg_t seg,
unsigned len,
void *p,
x86_processor_mode_t mode,
x86_access_type_t access_type,
x86_alignment_t alignment);
#endif
void (*write_logical)(
conf_object_t *cpu,
logical_address_t offs,
x86_seg_t seg,
unsigned len,
uint64 val,
x86_processor_mode_t mode,
x86_access_type_t access_type);
#if !defined(PYWRAP)
void (*write_logical_buf)(
conf_object_t *cpu,
logical_address_t offs,
x86_seg_t seg,
unsigned len,
const void *p,
x86_processor_mode_t mode,
x86_access_type_t access_type,
x86_alignment_t alignment);
#endif
};
#define X86_MEMORY_ACCESS_INTERFACE "x86_memory_access"