blob: 47c3ce1f8028478a163a2c264f57ebbd0d63d673 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>MutableAddressSpace (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.j9ddr.corereaders.tdump.zebedee.dumpreader, class: MutableAddressSpace">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.MutableAddressSpace class">
<meta name="keywords" content="lastMutableBlockAddress">
<meta name="keywords" content="getBlockFromCacheOrDisk()">
<meta name="keywords" content="writeBytes()">
<meta name="keywords" content="writeWord()">
<meta name="keywords" content="writeByte()">
<meta name="keywords" content="writeShort()">
<meta name="keywords" content="writeInt()">
<meta name="keywords" content="writeLong()">
<meta name="keywords" content="malloc()">
<meta name="keywords" content="rmalloc()">
<meta name="keywords" content="free()">
<meta name="keywords" content="allocPage()">
<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/MutableAddressSpace.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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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.j9ddr.corereaders.tdump.zebedee.dumpreader</a></div>
<h1 title="Class MutableAddressSpace" class="title">Class MutableAddressSpace</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"><a href="AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace</a>
<div class="inheritance">com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.MutableAddressSpace</div>
</div>
</div>
<section class="description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../util/Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link" target="_blank">Serializable</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">MutableAddressSpace</span>
<span class="extends-implements">extends <a href="AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a>
implements <a href="../util/Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></span></div>
<div class="block">Provides the ability to write as well as read to a copy of the address space. This class
is provided for use by the <a href="../util/Emulator.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util"><code>Emulator</code></a>.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd><a href="../../../../../../../../serialized-form.html#com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.MutableAddressSpace">Serialized Form</a></dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field.summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected long</code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#lastMutableBlockAddress">lastMutableBlockAddress</a></span></code></div>
<div class="col-last even-row-color">
<div class="block">The last mutable block address requested (quick block cache)</div>
</div>
</div>
<div class="inherited-list">
<h3 id="fields.inherited.from.class.com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace">Fields declared in class&nbsp;com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.<a href="AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a></h3>
<code><a href="AddressSpace.html#addressMap">addressMap</a>, <a href="AddressSpace.html#asid">asid</a>, <a href="AddressSpace.html#dump">dump</a>, <a href="AddressSpace.html#lastBlockAddress">lastBlockAddress</a>, <a href="AddressSpace.html#lastButOneBlockAddress">lastButOneBlockAddress</a>, <a href="AddressSpace.html#ranges">ranges</a>, <a href="AddressSpace.html#WILD_POINTER">WILD_POINTER</a></code></div>
</section>
</li>
<!-- ======== 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 two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace)">MutableAddressSpace</a></span>&#8203;(<a href="AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a>&nbsp;space)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new MutableAddressSpace from the given AddressSpace.</div>
</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-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>void</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="#allocPage(long)">allocPage</a></span>&#8203;(long&nbsp;address)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Allocate a page of memory at the given address.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#free(long)">free</a></span>&#8203;(long&nbsp;ptr)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Free the memory that was previously allocated by malloc.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>protected 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="#getBlockFromCacheOrDisk(long)">getBlockFromCacheOrDisk</a></span>&#8203;(long&nbsp;address)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Get the block of bytes for the given address.</div>
</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="#malloc(int)">malloc</a></span>&#8203;(int&nbsp;size)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Allocate a chunk of unused memory.</div>
</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="#rmalloc(int)">rmalloc</a></span>&#8203;(int&nbsp;size)</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>void</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="#writeByte(long,int)">writeByte</a></span>&#8203;(long&nbsp;address,
int&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Write a byte at the specified address.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#writeBytes(long,byte%5B%5D)">writeBytes</a></span>&#8203;(long&nbsp;address,
byte[]&nbsp;array)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Write the contents of the byte array to the specified address.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#writeInt(long,int)">writeInt</a></span>&#8203;(long&nbsp;address,
int&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Write an int at the specified address.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#writeLong(long,long)">writeLong</a></span>&#8203;(long&nbsp;address,
long&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Write a long at the specified address.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#writeShort(long,int)">writeShort</a></span>&#8203;(long&nbsp;address,
int&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Write a short at the specified address.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</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="#writeWord(long,long)">writeWord</a></span>&#8203;(long&nbsp;address,
long&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
<div class="block">Write a word at the specified address.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods.inherited.from.class.com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace">Methods declared in class&nbsp;com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader.<a href="AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a></h3>
<code><a href="AddressSpace.html#getAddressRanges()">getAddressRanges</a>, <a href="AddressSpace.html#getAsid()">getAsid</a>, <a href="AddressSpace.html#getBlock(long)">getBlock</a>, <a href="AddressSpace.html#getDump()">getDump</a>, <a href="AddressSpace.html#getImageInputStream()">getImageInputStream</a>, <a href="AddressSpace.html#getLowestAddress()">getLowestAddress</a>, <a href="AddressSpace.html#getRootAddressSpace()">getRootAddressSpace</a>, <a href="AddressSpace.html#getUnusedAddressRanges()">getUnusedAddressRanges</a>, <a href="AddressSpace.html#getUserMap()">getUserMap</a>, <a href="AddressSpace.html#getWordLength()">getWordLength</a>, <a href="AddressSpace.html#is64bit()">is64bit</a>, <a href="AddressSpace.html#isValidAddress(long)">isValidAddress</a>, <a href="AddressSpace.html#read(long)">read</a>, <a href="AddressSpace.html#read(long,byte%5B%5D,int,int)">read</a>, <a href="AddressSpace.html#readAsciiCString(long)">readAsciiCString</a>, <a href="AddressSpace.html#readAsciiString(long)">readAsciiString</a>, <a href="AddressSpace.html#readAsciiString(long,int)">readAsciiString</a>, <a href="AddressSpace.html#readByte(long)">readByte</a>, <a href="AddressSpace.html#readEbcdicCString(long)">readEbcdicCString</a>, <a href="AddressSpace.html#readEbcdicString(long)">readEbcdicString</a>, <a href="AddressSpace.html#readEbcdicString(long,int)">readEbcdicString</a>, <a href="AddressSpace.html#readInt(long)">readInt</a>, <a href="AddressSpace.html#readLong(long)">readLong</a>, <a href="AddressSpace.html#readLong(long,com.ibm.j9ddr.corereaders.tdump.zebedee.util.Template,java.lang.String)">readLong</a>, <a href="AddressSpace.html#readShort(long)">readShort</a>, <a href="AddressSpace.html#readUnsignedByte(long)">readUnsignedByte</a>, <a href="AddressSpace.html#readUnsignedInt(long)">readUnsignedInt</a>, <a href="AddressSpace.html#readUnsignedShort(long)">readUnsignedShort</a>, <a href="AddressSpace.html#readUtf8String(long)">readUtf8String</a>, <a href="AddressSpace.html#readWord(long)">readWord</a>, <a href="AddressSpace.html#readWord(long,boolean)">readWord</a>, <a href="AddressSpace.html#roundToPage(long)">roundToPage</a>, <a href="AddressSpace.html#setIs64bit(boolean)">setIs64bit</a>, <a href="AddressSpace.html#toString()">toString</a></code></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#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.j9ddr.corereaders.tdump.zebedee.util.Emulator.ImageSpace">Methods declared in interface&nbsp;com.ibm.j9ddr.corereaders.tdump.zebedee.util.<a href="../util/Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></h3>
<code><a href="../util/Emulator.ImageSpace.html#is64bit()">is64bit</a>, <a href="../util/Emulator.ImageSpace.html#readInt(long)">readInt</a>, <a href="../util/Emulator.ImageSpace.html#readLong(long)">readLong</a>, <a href="../util/Emulator.ImageSpace.html#readShort(long)">readShort</a>, <a href="../util/Emulator.ImageSpace.html#readUnsignedByte(long)">readUnsignedByte</a>, <a href="../util/Emulator.ImageSpace.html#readUnsignedInt(long)">readUnsignedInt</a>, <a href="../util/Emulator.ImageSpace.html#readUnsignedShort(long)">readUnsignedShort</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field.detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="lastMutableBlockAddress">
<h3>lastMutableBlockAddress</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">lastMutableBlockAddress</span></div>
<div class="block">The last mutable block address requested (quick block cache)</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= 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.j9ddr.corereaders.tdump.zebedee.dumpreader.AddressSpace)">
<h3>MutableAddressSpace</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">MutableAddressSpace</span>&#8203;<span class="parameters">(<a href="AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a>&nbsp;space)</span></div>
<div class="block">Creates a new MutableAddressSpace from the given AddressSpace. Updates to this "forked"
copy will not be reflected in the parent AddressSpace.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>AddressSpace</code> - the address space we read from</dd>
</dl>
</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="getBlockFromCacheOrDisk(long)">
<h3>getBlockFromCacheOrDisk</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">byte[]</span>&nbsp;<span class="element-name">getBlockFromCacheOrDisk</span>&#8203;<span class="parameters">(long&nbsp;address)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Get the block of bytes for the given address. We look first in our own cache and if
its not there call the superclass method.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="AddressSpace.html#getBlockFromCacheOrDisk(long)">getBlockFromCacheOrDisk</a></code>&nbsp;in class&nbsp;<code><a href="AddressSpace.html" title="class in com.ibm.j9ddr.corereaders.tdump.zebedee.dumpreader">AddressSpace</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeBytes(long,byte[])">
<h3>writeBytes</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">writeBytes</span>&#8203;<span class="parameters">(long&nbsp;address,
byte[]&nbsp;array)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Write the contents of the byte array to the specified address.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code> - if the given address (of offset from there) is not present in this address space</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeWord(long,long)">
<h3>writeWord</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">writeWord</span>&#8203;<span class="parameters">(long&nbsp;address,
long&nbsp;value)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Write a word at the specified address. A word is either 32 or 64 bits depending on
the machine context.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeByte(long,int)">
<h3>writeByte</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">writeByte</span>&#8203;<span class="parameters">(long&nbsp;address,
int&nbsp;value)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Write a byte at the specified address.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../util/Emulator.ImageSpace.html#writeByte(long,int)">writeByte</a></code>&nbsp;in interface&nbsp;<code><a href="../util/Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code> - if the given address is not present in this address space</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeShort(long,int)">
<h3>writeShort</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">writeShort</span>&#8203;<span class="parameters">(long&nbsp;address,
int&nbsp;value)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Write a short at the specified address.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../util/Emulator.ImageSpace.html#writeShort(long,int)">writeShort</a></code>&nbsp;in interface&nbsp;<code><a href="../util/Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code> - if the given address is not present in this address space</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeInt(long,int)">
<h3>writeInt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">writeInt</span>&#8203;<span class="parameters">(long&nbsp;address,
int&nbsp;value)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Write an int at the specified address.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../util/Emulator.ImageSpace.html#writeInt(long,int)">writeInt</a></code>&nbsp;in interface&nbsp;<code><a href="../util/Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code> - if the given address is not present in this address space</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeLong(long,long)">
<h3>writeLong</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">writeLong</span>&#8203;<span class="parameters">(long&nbsp;address,
long&nbsp;value)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Write a long at the specified address.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../util/Emulator.ImageSpace.html#writeLong(long,long)">writeLong</a></code>&nbsp;in interface&nbsp;<code><a href="../util/Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code> - if the given address is not present in this address space</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="malloc(int)">
<h3>malloc</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">malloc</span>&#8203;<span class="parameters">(int&nbsp;size)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Allocate a chunk of unused memory. This searches the known address ranges and tries
to find an unallocated area of the given size. If successful, this area effectively
becomes part of this ImageSpace and may be read and written to as normal.
This method is used by users of the Emulator for things like allocating
stack, arguments etc.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../util/Emulator.ImageSpace.html#malloc(int)">malloc</a></code>&nbsp;in interface&nbsp;<code><a href="../util/Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></code></dd>
<dt>Returns:</dt>
<dd>the address of the allocated memory</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="rmalloc(int)">
<h3>rmalloc</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">rmalloc</span>&#8203;<span class="parameters">(int&nbsp;size)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="free(long)">
<h3>free</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">free</span>&#8203;<span class="parameters">(long&nbsp;ptr)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Free the memory that was previously allocated by malloc.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allocPage(long)">
<h3>allocPage</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">allocPage</span>&#8203;<span class="parameters">(long&nbsp;address)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Allocate a page of memory at the given address. The address must not already be in use.
A page is 4096 bytes in length. Address must be on a page boundary.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></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>