blob: 07260eba9cd0d762be6e907b2825c305a141ce42 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>IAbstractAddressSpace (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, interface: IAbstractAddressSpace">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="com.ibm.dtfj.addressspace.IAbstractAddressSpace interface">
<meta name="keywords" content="getMemoryRanges()">
<meta name="keywords" content="isExecutable()">
<meta name="keywords" content="isReadOnly()">
<meta name="keywords" content="isShared()">
<meta name="keywords" content="getLongAt()">
<meta name="keywords" content="getIntAt()">
<meta name="keywords" content="getShortAt()">
<meta name="keywords" content="getByteOrder()">
<meta name="keywords" content="getByteAt()">
<meta name="keywords" content="getPointerAt()">
<meta name="keywords" content="getBytesAt()">
<meta name="keywords" content="bytesPerPointer()">
<meta name="keywords" content="findPattern()">
<meta name="keywords" content="getMemoryBytes()">
<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/IAbstractAddressSpace.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>Constr&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>Constr&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="Interface IAbstractAddressSpace" class="title">Interface IAbstractAddressSpace</h1>
</div>
<section class="description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="CommonAddressSpace.html" title="class in com.ibm.dtfj.addressspace">CommonAddressSpace</a></code>, <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 interface </span><span class="element-name type-name-label">IAbstractAddressSpace</span></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== 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-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-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract 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 method-summary-table-tab3"><code>int</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#bytesPerPointer(int)">bytesPerPointer</a></span>&#8203;(int&nbsp;asid)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<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 odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><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 method-summary-table-tab3">
<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-tab2 method-summary-table method-summary-table-tab3"><code>byte</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><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 even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><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 odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#getByteOrder()">getByteOrder</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Return the byte order of this address space.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>int</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#getBytesAt(int,long,byte%5B%5D)">getBytesAt</a></span>&#8203;(int&nbsp;asid,
long&nbsp;address,
byte[]&nbsp;buffer)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><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 method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>long</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><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 method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>byte[]</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><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 odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<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-tab2 method-summary-table method-summary-table-tab3"><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 even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#getMemoryRanges()">getMemoryRanges</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><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 odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>short</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><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 even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#isExecutable(int,long)">isExecutable</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 method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#isReadOnly(int,long)">isReadOnly</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 method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#isShared(int,long)">isShared</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 method-summary-table-tab3">&nbsp;</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ 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="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>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="isExecutable(int,long)">
<h3>isExecutable</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isExecutable</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>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>true if this memory address is within an executable page</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="isReadOnly(int,long)">
<h3>isReadOnly</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isReadOnly</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>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>true if write access to this memory address was disabled in the image</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="isShared(int,long)">
<h3>isShared</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isShared</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>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>true if this memory address is shared between processes</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="getLongAt(int,long)">
<h3>getLongAt</h3>
<div class="member-signature"><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>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="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>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="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>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="getByteOrder()">
<h3>getByteOrder</h3>
<div class="member-signature"><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">Return the byte order of this address space.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the byte order of this address space</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getByteAt(int,long)">
<h3>getByteAt</h3>
<div class="member-signature"><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>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="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>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="getBytesAt(int,long,byte[])">
<h3>getBytesAt</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getBytesAt</span>&#8203;<span class="parameters">(int&nbsp;asid,
long&nbsp;address,
byte[]&nbsp;buffer)</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>Parameters:</dt>
<dd><code>asid</code> - an address space ID</dd>
<dd><code>address</code> - a byte-offset into the asid</dd>
<dd><code>buffer</code> - a byte array to receive the bytes</dd>
<dt>Returns:</dt>
<dd>the number of bytes read into buffer</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="return-type">int</span>&nbsp;<span class="element-name">bytesPerPointer</span>&#8203;<span class="parameters">(int&nbsp;asid)</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>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>
<li>
<section class="detail" id="findPattern(byte[],int,long)">
<h3>findPattern</h3>
<div class="member-signature"><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">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>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="getMemoryBytes(long,int)">
<h3>getMemoryBytes</h3>
<div class="member-signature"><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">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>Parameters:</dt>
<dd><code>vaddr</code> - </dd>
<dd><code>size</code> - </dd>
<dt>Returns:</dt>
</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/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</div>
</div>
</body>
</html>