VIRTUTECH CONFIDENTIAL    Previous - Up - Next

logical-memory-translator

Provided by
logical-memory-translator
Class Hierarchy
conf-objectlog-objectlogical-memory-translator
Interfaces Implemented
log_object
Description

Keeps track of all translations inserted in the MMUs of the cpus listed in cpu_list, unless they are specifically marked invalid and flushed. The translations gathered allow access to virtual memory areas that are not currently present in the TLBs. The only architecture supported by this class is SPARCv9.

Attributes

Attributes inherited from class conf-object
attributes, classname, component, iface, name, object_id, queue
Attributes inherited from class log-object
access_count, log_buffer, log_buffer_last, log_buffer_size, log_group_mask, log_groups, log_level, log_type_mask
Attribute List
cpu_list
Required attribute; read/write access; type: [o*].

List of cpus for which TLB events are recorded in the LMT.

data_translations
Optional attribute; read/write access; type: [[[o,i][[iii]*]]*].

Data translations present in the LMT. The format of the returned value is [[[mmu_object, context number], [[page_logical_address, log2_of_page_size, page_physical_address], [-another page-], ...]], -other (mmu, context) information-, ...].

instruction_translations
Optional attribute; read/write access; type: [[[o,i],[[iii]*]]*].

Instruction translations present in the LMT. The format of the returned value is [[[mmu_object, context number], [[page_logical_address, log2_of_page_size, page_physical_address], [-another page-], ...]], -other (mmu, context) information-, ...].

Command List

Commands defined by interface log_object
log, log-group, log-level, log-size, log-type
Commands
disassembledisassemble instructions using the LMT translations
getget memory value using the LMT translations
logical-to-physicaltranslate virtual address using the LMT translations
setset a value in memory using the LMT translations
xexamine raw memory contents using the LMT translations

Command Descriptions

<logical-memory-translator>.disassemble
Alias
<logical-memory-translator>.da
Synopsis
<logical-memory-translator>.disassemble cpu-name address [context] [count]
Description
Use the LMT translations to disassemble count instructions starting from the virtual address address, for the cpu cpu-name and the context context. Note that this command can not disassemble across page boundaries.
<logical-memory-translator>.get
Synopsis
<logical-memory-translator>.get cpu-name address [size] [context] ["type"] [-l] [-b]
Description
Use the LMT translations to get the value present at the virtual address address with a size of size, for the cpu cpu-name and the context context, looking from translations in the type TLB (either data or instruction). The -l flag sets little-endian semantics, while the -b flag sets big-endian semantics. If none is given, the endianness of cpu-name is used. Note that this command can not get values across page boundaries.
<logical-memory-translator>.logical-to-physical
Alias
<logical-memory-translator>.l2p
Synopsis
<logical-memory-translator>.logical-to-physical cpu-name address [context] ["type"]
Description
Use the LMT translations to translate the virtual address address, for the cpu cpu-name and the context context, looking from translations in the type TLB (either data or instruction).
<logical-memory-translator>.set
Synopsis
<logical-memory-translator>.set cpu-name address value [size] [context] ["type"] [-l] [-b]
Description
Use the LMT translations to set the value value with a size of size at the virtual address address, for the cpu cpu-name and the context context, looking from translations in the type TLB (either data or instruction). The -l flag sets little-endian semantics, while the -b flag sets big-endian semantics. If none is given, the endianness of cpu-name is used. Note that this command can not set values across page boundaries.
<logical-memory-translator>.x
Synopsis
<logical-memory-translator>.x cpu-name address [context] ["type"] [size]
Description
Use the LMT translation to print out the contents of the memory area defined by the start virtual address address and the size size for the cpu cpu-name in the context context, looking from translations in the type TLB (either data or instruction). Note that this command does not handle areas that cross page boundaries.

VIRTUTECH CONFIDENTIAL    Previous - Up - Next