blob: d6cfeb89c019af95b910d584df1166adc368e5b3 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>CommonAddressSpace (OpenJ9 JDK 16)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: module: openj9.dtfj, package: com.ibm.dtfj.addressspace, class: CommonAddressSpace">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="com.ibm.dtfj.addressspace.CommonAddressSpace class">
<meta name="keywords" content="getMemoryRanges()">
<meta name="keywords" content="_residentRange()">
<meta name="keywords" content="findWhichMemoryRange()">
<meta name="keywords" content="compareAddress()">
<meta name="keywords" content="getByteOrder()">
<meta name="keywords" content="getMemoryBytes()">
<meta name="keywords" content="findPattern()">
<meta name="keywords" content="getLongAt()">
<meta name="keywords" content="getIntAt()">
<meta name="keywords" content="getShortAt()">
<meta name="keywords" content="getByteAt()">
<meta name="keywords" content="getPointerAt()">
<meta name="keywords" content="getBytesAt()">
<meta name="keywords" content="bytesPerPointer()">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar.top">
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 16</strong></div></div>
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/CommonAddressSpace.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip.navbar.top">
<!-- -->
</span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../module-summary.html">openj9.dtfj</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.ibm.dtfj.addressspace</a></div>
<h1 title="Class CommonAddressSpace" class="title">Class CommonAddressSpace</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">java.lang.Object</a>
<div class="inheritance">com.ibm.dtfj.addressspace.CommonAddressSpace</div>
</div>
<section class="description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="DumpReaderAddressSpace.html" title="class in com.ibm.dtfj.addressspace">DumpReaderAddressSpace</a></code>, <code><a href="LayeredAddressSpace.html" title="class in com.ibm.dtfj.addressspace">LayeredAddressSpace</a></code>, <code><a href="SimpleAddressSpace.html" title="class in com.ibm.dtfj.addressspace">SimpleAddressSpace</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">CommonAddressSpace</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a>
implements <a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></span></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor.summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected </code></div>
<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(com.ibm.dtfj.corereaders.MemoryRange%5B%5D,boolean,boolean)">CommonAddressSpace</a></span>&#8203;(<a href="../corereaders/MemoryRange.html" title="class in com.ibm.dtfj.corereaders">MemoryRange</a>[]&nbsp;translations,
boolean&nbsp;isLittleEndian,
boolean&nbsp;is64Bit)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method.summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>protected <a href="../corereaders/MemoryRange.html" title="class in com.ibm.dtfj.corereaders">MemoryRange</a></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#_residentRange(int,long)">_residentRange</a></span>&#8203;(int&nbsp;asid,
long&nbsp;address)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#bytesPerPointer(int)">bytesPerPointer</a></span>&#8203;(int&nbsp;asid)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Provided so that callers can determine more complicated memory geometry than what can be expressed
with offsets and the above scalar data readers.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>protected static int</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#compareAddress(int,long,int,long)">compareAddress</a></span>&#8203;(int&nbsp;lasid,
long&nbsp;lhs,
int&nbsp;rasid,
long&nbsp;rhs)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#findPattern(byte%5B%5D,int,long)">findPattern</a></span>&#8203;(byte[]&nbsp;whatBytes,
int&nbsp;alignment,
long&nbsp;startFrom)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">This method is provided to appease JExtract by emulating part of the old API which is used
by the JExtract natives.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>protected static int</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#findWhichMemoryRange(int,long,com.ibm.dtfj.corereaders.MemoryRange%5B%5D,java.lang.Integer,boolean)">findWhichMemoryRange</a></span>&#8203;(int&nbsp;asid,
long&nbsp;addr,
<a href="../corereaders/MemoryRange.html" title="class in com.ibm.dtfj.corereaders">MemoryRange</a>[]&nbsp;ranges,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link" target="_blank">Integer</a>&nbsp;lastRange,
boolean&nbsp;doLinearIfNotFound)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">This searches memory ranges for an addr using a binary chop and returns an int indicating the memory range
or -1 if address is not within any memory range......</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>byte</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getByteAt(int,long)">getByteAt</a></span>&#8203;(int&nbsp;asid,
long&nbsp;address)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/nio/ByteOrder.html" title="class or interface in java.nio" class="external-link" target="_blank">ByteOrder</a></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getByteOrder()">getByteOrder</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Return the byte order of this address space.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getIntAt(int,long)">getIntAt</a></span>&#8203;(int&nbsp;asid,
long&nbsp;address)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getLongAt(int,long)">getLongAt</a></span>&#8203;(int&nbsp;asid,
long&nbsp;address)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>byte[]</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getMemoryBytes(int,long,int)">getMemoryBytes</a></span>&#8203;(int&nbsp;asid,
long&nbsp;vaddr,
int&nbsp;size)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>byte[]</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getMemoryBytes(long,int)">getMemoryBytes</a></span>&#8203;(long&nbsp;vaddr,
int&nbsp;size)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">This method is provided to appease JExtract by emulating part of the old API which is used
by the JExtract natives.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a></code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getMemoryRanges()">getMemoryRanges</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>long</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getPointerAt(int,long)">getPointerAt</a></span>&#8203;(int&nbsp;asid,
long&nbsp;address)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>short</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getShortAt(int,long)">getShortAt</a></span>&#8203;(int&nbsp;asid,
long&nbsp;address)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods.inherited.from.class.java.lang.Object">Methods declared in class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link" target="_blank">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link" target="_blank">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link" target="_blank">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link" target="_blank">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link" target="_blank">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link" target="_blank">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link" target="_blank">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link" target="_blank">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link" target="_blank">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods.inherited.from.class.com.ibm.dtfj.addressspace.IAbstractAddressSpace">Methods declared in interface&nbsp;com.ibm.dtfj.addressspace.<a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></h3>
<code><a href="IAbstractAddressSpace.html#getBytesAt(int,long,byte%5B%5D)">getBytesAt</a>, <a href="IAbstractAddressSpace.html#isExecutable(int,long)">isExecutable</a>, <a href="IAbstractAddressSpace.html#isReadOnly(int,long)">isReadOnly</a>, <a href="IAbstractAddressSpace.html#isShared(int,long)">isShared</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor.detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(com.ibm.dtfj.corereaders.MemoryRange[],boolean,boolean)">
<h3>CommonAddressSpace</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">CommonAddressSpace</span>&#8203;<span class="parameters">(<a href="../corereaders/MemoryRange.html" title="class in com.ibm.dtfj.corereaders">MemoryRange</a>[]&nbsp;translations,
boolean&nbsp;isLittleEndian,
boolean&nbsp;is64Bit)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method.detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getMemoryRanges()">
<h3>getMemoryRanges</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a></span>&nbsp;<span class="element-name">getMemoryRanges</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#getMemoryRanges()">getMemoryRanges</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Returns:</dt>
<dd>An iterator of the MemoryRange objects making up the address space</dd>
<dt>See Also:</dt>
<dd><a href="../corereaders/MemoryRange.html" title="class in com.ibm.dtfj.corereaders"><code>MemoryRange</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="_residentRange(int,long)">
<h3>_residentRange</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="../corereaders/MemoryRange.html" title="class in com.ibm.dtfj.corereaders">MemoryRange</a></span>&nbsp;<span class="element-name">_residentRange</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;address)</span>
throws <span class="exceptions"><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="findWhichMemoryRange(int,long,com.ibm.dtfj.corereaders.MemoryRange[],java.lang.Integer,boolean)">
<h3>findWhichMemoryRange</h3>
<div class="member-signature"><span class="modifiers">protected static</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">findWhichMemoryRange</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;addr,
<a href="../corereaders/MemoryRange.html" title="class in com.ibm.dtfj.corereaders">MemoryRange</a>[]&nbsp;ranges,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link" target="_blank">Integer</a>&nbsp;lastRange,
boolean&nbsp;doLinearIfNotFound)</span></div>
<div class="block">This searches memory ranges for an addr using a binary chop and returns an int indicating the memory range
or -1 if address is not within any memory range......</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>asid</code> - TODO</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="compareAddress(int,long,int,long)">
<h3>compareAddress</h3>
<div class="member-signature"><span class="modifiers">protected static</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">compareAddress</span>&#8203;<span class="parameters">(int&nbsp;lasid,
long&nbsp;lhs,
int&nbsp;rasid,
long&nbsp;rhs)</span></div>
</section>
</li>
<li>
<section class="detail" id="getByteOrder()">
<h3>getByteOrder</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/nio/ByteOrder.html" title="class or interface in java.nio" class="external-link" target="_blank">ByteOrder</a></span>&nbsp;<span class="element-name">getByteOrder</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="IAbstractAddressSpace.html#getByteOrder()">IAbstractAddressSpace</a></code></span></div>
<div class="block">Return the byte order of this address space.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#getByteOrder()">getByteOrder</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Returns:</dt>
<dd>the byte order of this address space</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMemoryBytes(long,int)">
<h3>getMemoryBytes</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">byte[]</span>&nbsp;<span class="element-name">getMemoryBytes</span>&#8203;<span class="parameters">(long&nbsp;vaddr,
int&nbsp;size)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="IAbstractAddressSpace.html#getMemoryBytes(long,int)">IAbstractAddressSpace</a></code></span></div>
<div class="block">This method is provided to appease JExtract by emulating part of the old API which is used
by the JExtract natives.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#getMemoryBytes(long,int)">getMemoryBytes</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Returns:</dt>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMemoryBytes(int,long,int)">
<h3>getMemoryBytes</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">byte[]</span>&nbsp;<span class="element-name">getMemoryBytes</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;vaddr,
int&nbsp;size)</span></div>
</section>
</li>
<li>
<section class="detail" id="findPattern(byte[],int,long)">
<h3>findPattern</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">findPattern</span>&#8203;<span class="parameters">(byte[]&nbsp;whatBytes,
int&nbsp;alignment,
long&nbsp;startFrom)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="IAbstractAddressSpace.html#findPattern(byte%5B%5D,int,long)">IAbstractAddressSpace</a></code></span></div>
<div class="block">This method is provided to appease JExtract by emulating part of the old API which is used
by the JExtract natives. Also used to search for the J9RAS structure in J9RASReader.java</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#findPattern(byte%5B%5D,int,long)">findPattern</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Parameters:</dt>
<dd><code>whatBytes</code> - The pattern to search for</dd>
<dd><code>alignment</code> - The alignment boundary where the pattern can be expected to start</dd>
<dd><code>startFrom</code> - The first memory address to start searching in</dd>
<dt>Returns:</dt>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLongAt(int,long)">
<h3>getLongAt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">getLongAt</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;address)</span>
throws <span class="exceptions"><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#getLongAt(int,long)">getLongAt</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Parameters:</dt>
<dd><code>asid</code> - an address space ID</dd>
<dd><code>address</code> - a byte-offset into the asid</dd>
<dt>Returns:</dt>
<dd>the 64-bit long stored at address in asid</dd>
<dt>Throws:</dt>
<dd><code><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></code> - if the memory cannot be read</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIntAt(int,long)">
<h3>getIntAt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getIntAt</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;address)</span>
throws <span class="exceptions"><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#getIntAt(int,long)">getIntAt</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Parameters:</dt>
<dd><code>asid</code> - an address space ID</dd>
<dd><code>address</code> - a byte-offset into the asid</dd>
<dt>Returns:</dt>
<dd>the 32-bit int stored at address in asid</dd>
<dt>Throws:</dt>
<dd><code><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></code> - if the memory cannot be read</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getShortAt(int,long)">
<h3>getShortAt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">short</span>&nbsp;<span class="element-name">getShortAt</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;address)</span>
throws <span class="exceptions"><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#getShortAt(int,long)">getShortAt</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Parameters:</dt>
<dd><code>asid</code> - an address space ID</dd>
<dd><code>address</code> - a byte-offset into the asid</dd>
<dt>Returns:</dt>
<dd>the 16-bit short stored at address in asid</dd>
<dt>Throws:</dt>
<dd><code><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></code> - if the memory cannot be read</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getByteAt(int,long)">
<h3>getByteAt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">byte</span>&nbsp;<span class="element-name">getByteAt</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;address)</span>
throws <span class="exceptions"><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#getByteAt(int,long)">getByteAt</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Parameters:</dt>
<dd><code>asid</code> - an address space ID</dd>
<dd><code>address</code> - a byte-offset into the asid</dd>
<dt>Returns:</dt>
<dd>the 8-bit byte stored at address in asid</dd>
<dt>Throws:</dt>
<dd><code><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></code> - if the memory cannot be read</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPointerAt(int,long)">
<h3>getPointerAt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">getPointerAt</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;address)</span>
throws <span class="exceptions"><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#getPointerAt(int,long)">getPointerAt</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Parameters:</dt>
<dd><code>asid</code> - an address space ID</dd>
<dd><code>address</code> - a byte-offset into the asid</dd>
<dt>Returns:</dt>
<dd>the pointer stored at address in asid</dd>
<dt>Throws:</dt>
<dd><code><a href="../corereaders/MemoryAccessException.html" title="class in com.ibm.dtfj.corereaders">MemoryAccessException</a></code> - if the memory cannot be read</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="bytesPerPointer(int)">
<h3>bytesPerPointer</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">bytesPerPointer</span>&#8203;<span class="parameters">(int&nbsp;asid)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="IAbstractAddressSpace.html#bytesPerPointer(int)">IAbstractAddressSpace</a></code></span></div>
<div class="block">Provided so that callers can determine more complicated memory geometry than what can be expressed
with offsets and the above scalar data readers.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="IAbstractAddressSpace.html#bytesPerPointer(int)">bytesPerPointer</a></code>&nbsp;in interface&nbsp;<code><a href="IAbstractAddressSpace.html" title="interface in com.ibm.dtfj.addressspace">IAbstractAddressSpace</a></code></dd>
<dt>Parameters:</dt>
<dd><code>asid</code> - The address space id.</dd>
<dt>Returns:</dt>
<dd>The number of bytes which are required to express a native pointer in the underlying address
space.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</div>
</div>
</body>
</html>