blob: f076fe3c914f9e5a5d2623944d1bb698dfe88578 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>J9MemTagHelper (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.vm29.pointer.helper, class: J9MemTagHelper">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="com.ibm.j9ddr.vm29.pointer.helper.J9MemTagHelper class">
<meta name="keywords" content="ROUNDING_GRANULARITY">
<meta name="keywords" content="J9PORT_MEMTAG_HEADER_TAG_CORRUPTED">
<meta name="keywords" content="J9PORT_MEMTAG_FOOTER_TAG_CORRUPTED">
<meta name="keywords" content="J9PORT_MEMTAG_FOOTER_PADDING_CORRUPTED">
<meta name="keywords" content="J9PORT_MEMTAG_NOT_A_TAG">
<meta name="keywords" content="J9PORT_MEMTAG_VALID_TAG">
<meta name="keywords" content="j9mem_check_tags()">
<meta name="keywords" content="checkTagSumCheck()">
<meta name="keywords" content="j9mem_get_memory_base()">
<meta name="keywords" content="j9mem_get_footer_tag()">
<meta name="keywords" content="j9mem_get_header_tag()">
<meta name="keywords" content="checkPadding()">
<meta name="keywords" content="j9mem_get_footer_padding()">
<meta name="keywords" content="ROUNDED_FOOTER_OFFSET()">
<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/J9MemTagHelper.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><a href="#nested.class.summary">Nested</a>&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.vm29.pointer.helper</a></div>
<h1 title="Class J9MemTagHelper" class="title">Class J9MemTagHelper</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.j9ddr.vm29.pointer.helper.J9MemTagHelper</div>
</div>
<section class="description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">J9MemTagHelper</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></span></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested.class.summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</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">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="J9MemTagHelper.J9MemTagCheckError.html" title="class in com.ibm.j9ddr.vm29.pointer.helper">J9MemTagHelper.J9MemTagCheckError</a></span></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- =========== 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>static <a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#J9PORT_MEMTAG_FOOTER_PADDING_CORRUPTED">J9PORT_MEMTAG_FOOTER_PADDING_CORRUPTED</a></span></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static <a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></code></div>
<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#J9PORT_MEMTAG_FOOTER_TAG_CORRUPTED">J9PORT_MEMTAG_FOOTER_TAG_CORRUPTED</a></span></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static <a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#J9PORT_MEMTAG_HEADER_TAG_CORRUPTED">J9PORT_MEMTAG_HEADER_TAG_CORRUPTED</a></span></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static <a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></code></div>
<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#J9PORT_MEMTAG_NOT_A_TAG">J9PORT_MEMTAG_NOT_A_TAG</a></span></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static <a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#J9PORT_MEMTAG_VALID_TAG">J9PORT_MEMTAG_VALID_TAG</a></span></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static long</code></div>
<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#ROUNDING_GRANULARITY">ROUNDING_GRANULARITY</a></span></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</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()">J9MemTagHelper</a></span>()</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-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-tab1 method-summary-table-tab4 method-summary-table"><code>static void</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="#checkPadding(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer)">checkPadding</a></span>&#8203;(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;headerTagAddress)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks that the padding associated with the memory block has not been
corrupted</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#checkTagSumCheck(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer,long)">checkTagSumCheck</a></span>&#8203;(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;tag,
long&nbsp;eyeCatcher)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks that the memory tag is not corrupt.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></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="#j9mem_check_tags(com.ibm.j9ddr.vm29.pointer.VoidPointer,long,long)">j9mem_check_tags</a></span>&#8203;(<a href="../VoidPointer.html" title="class in com.ibm.j9ddr.vm29.pointer">VoidPointer</a>&nbsp;memoryPointer,
long&nbsp;headerEyecatcher,
long&nbsp;footerEyecatcher)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Performs validation checks on the memory block starting at memoryPointer.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="../VoidPointer.html" title="class in com.ibm.j9ddr.vm29.pointer">VoidPointer</a></code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#j9mem_get_footer_padding(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer)">j9mem_get_footer_padding</a></span>&#8203;(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;headerEyeCatcherAddress)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Given the address of the headerEyecatcher for the memory block, return
the address of the footer padding.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer</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="#j9mem_get_footer_tag(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer)">j9mem_get_footer_tag</a></span>&#8203;(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;headerEyeCatcherAddress)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Given the address of the headerEyecatcher for the memory block, return
the address of the corresponding footer tag.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#j9mem_get_header_tag(com.ibm.j9ddr.vm29.pointer.VoidPointer)">j9mem_get_header_tag</a></span>&#8203;(<a href="../VoidPointer.html" title="class in com.ibm.j9ddr.vm29.pointer">VoidPointer</a>&nbsp;memoryPointer)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Given the address returned by @ref j9mem_allocate_memory(), return
address of the header tag for the memory block</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="../VoidPointer.html" title="class in com.ibm.j9ddr.vm29.pointer">VoidPointer</a></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="#j9mem_get_memory_base(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer)">j9mem_get_memory_base</a></span>&#8203;(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;headerEyeCatcherAddress)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Given the address of the headerEyecatcher for the memory block, return
the memory pointer that was returned by j9mem_allocate_memory() when the
block was allocated.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="../../types/UDATA.html" title="class in com.ibm.j9ddr.vm29.types">UDATA</a></code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#ROUNDED_FOOTER_OFFSET(com.ibm.j9ddr.vm29.types.UDATA)">ROUNDED_FOOTER_OFFSET</a></span>&#8203;(<a href="../../types/UDATA.html" title="class in com.ibm.j9ddr.vm29.types">UDATA</a>&nbsp;number)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 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>
</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="ROUNDING_GRANULARITY">
<h3>ROUNDING_GRANULARITY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">ROUNDING_GRANULARITY</span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd><a href="../../../../../../../constant-values.html#com.ibm.j9ddr.vm29.pointer.helper.J9MemTagHelper.ROUNDING_GRANULARITY">Constant Field Values</a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="J9PORT_MEMTAG_HEADER_TAG_CORRUPTED">
<h3>J9PORT_MEMTAG_HEADER_TAG_CORRUPTED</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></span>&nbsp;<span class="element-name">J9PORT_MEMTAG_HEADER_TAG_CORRUPTED</span></div>
</section>
</li>
<li>
<section class="detail" id="J9PORT_MEMTAG_FOOTER_TAG_CORRUPTED">
<h3>J9PORT_MEMTAG_FOOTER_TAG_CORRUPTED</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></span>&nbsp;<span class="element-name">J9PORT_MEMTAG_FOOTER_TAG_CORRUPTED</span></div>
</section>
</li>
<li>
<section class="detail" id="J9PORT_MEMTAG_FOOTER_PADDING_CORRUPTED">
<h3>J9PORT_MEMTAG_FOOTER_PADDING_CORRUPTED</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></span>&nbsp;<span class="element-name">J9PORT_MEMTAG_FOOTER_PADDING_CORRUPTED</span></div>
</section>
</li>
<li>
<section class="detail" id="J9PORT_MEMTAG_NOT_A_TAG">
<h3>J9PORT_MEMTAG_NOT_A_TAG</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></span>&nbsp;<span class="element-name">J9PORT_MEMTAG_NOT_A_TAG</span></div>
</section>
</li>
<li>
<section class="detail" id="J9PORT_MEMTAG_VALID_TAG">
<h3>J9PORT_MEMTAG_VALID_TAG</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></span>&nbsp;<span class="element-name">J9PORT_MEMTAG_VALID_TAG</span></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;()">
<h3>J9MemTagHelper</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">J9MemTagHelper</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="j9mem_check_tags(com.ibm.j9ddr.vm29.pointer.VoidPointer,long,long)">
<h3>j9mem_check_tags</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../../types/IDATA.html" title="class in com.ibm.j9ddr.vm29.types">IDATA</a></span>&nbsp;<span class="element-name">j9mem_check_tags</span>&#8203;<span class="parameters">(<a href="../VoidPointer.html" title="class in com.ibm.j9ddr.vm29.pointer">VoidPointer</a>&nbsp;memoryPointer,
long&nbsp;headerEyecatcher,
long&nbsp;footerEyecatcher)</span>
throws <span class="exceptions"><a href="J9MemTagHelper.J9MemTagCheckError.html" title="class in com.ibm.j9ddr.vm29.pointer.helper">J9MemTagHelper.J9MemTagCheckError</a></span></div>
<div class="block">Performs validation checks on the memory block starting at memoryPointer.
The memory passed in could fall into one of three categories:
1) It could be a valid J9MemTag region with valid headers and footers
2) It could be not be a J9MemTag region
3) It could be a J9MemTag region with some corruption in either the header, footer or padding</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>J9PORT_MEMTAG_NOT_A_TAG if memoryPointer address is not a tag
J9PORT_MEMTAG_HEADER_TAG_CORRUPTED if memoryPointer address is valid tag region but header tag is corrupted.
J9PORT_MEMTAG_FOOTER_TAG_CORRUPTED if memoryPointer address is valid tag region but footer tag is corrupted.
J9PORT_MEMTAG_FOOTER_PADDING_CORRUPTED if memoryPointer address is valid tag region but footer padding is corrupted.
J9PORT_MEMTAG_VALID_TAG if memoryPointer address is valid tag and header/footer are not corrupted.</dd>
<dt>Throws:</dt>
<dd><code><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></code> - if the tags are corrupted, or the memory is inaccessible. (Option 3)</dd>
<dd><code><a href="J9MemTagHelper.J9MemTagCheckError.html" title="class in com.ibm.j9ddr.vm29.pointer.helper">J9MemTagHelper.J9MemTagCheckError</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkTagSumCheck(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer,long)">
<h3>checkTagSumCheck</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">checkTagSumCheck</span>&#8203;<span class="parameters">(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;tag,
long&nbsp;eyeCatcher)</span>
throws <span class="exceptions"><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></span></div>
<div class="block">Checks that the memory tag is not corrupt.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="j9mem_get_memory_base(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer)">
<h3>j9mem_get_memory_base</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../VoidPointer.html" title="class in com.ibm.j9ddr.vm29.pointer">VoidPointer</a></span>&nbsp;<span class="element-name">j9mem_get_memory_base</span>&#8203;<span class="parameters">(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;headerEyeCatcherAddress)</span></div>
<div class="block">Given the address of the headerEyecatcher for the memory block, return
the memory pointer that was returned by j9mem_allocate_memory() when the
block was allocated.</div>
</section>
</li>
<li>
<section class="detail" id="j9mem_get_footer_tag(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer)">
<h3>j9mem_get_footer_tag</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer</span>&nbsp;<span class="element-name">j9mem_get_footer_tag</span>&#8203;<span class="parameters">(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;headerEyeCatcherAddress)</span>
throws <span class="exceptions"><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></span></div>
<div class="block">Given the address of the headerEyecatcher for the memory block, return
the address of the corresponding footer tag.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="j9mem_get_header_tag(com.ibm.j9ddr.vm29.pointer.VoidPointer)">
<h3>j9mem_get_header_tag</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer</span>&nbsp;<span class="element-name">j9mem_get_header_tag</span>&#8203;<span class="parameters">(<a href="../VoidPointer.html" title="class in com.ibm.j9ddr.vm29.pointer">VoidPointer</a>&nbsp;memoryPointer)</span></div>
<div class="block">Given the address returned by @ref j9mem_allocate_memory(), return
address of the header tag for the memory block</div>
</section>
</li>
<li>
<section class="detail" id="checkPadding(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer)">
<h3>checkPadding</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">checkPadding</span>&#8203;<span class="parameters">(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;headerTagAddress)</span>
throws <span class="exceptions"><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></span></div>
<div class="block">Checks that the padding associated with the memory block has not been
corrupted</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="j9mem_get_footer_padding(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer)">
<h3>j9mem_get_footer_padding</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../VoidPointer.html" title="class in com.ibm.j9ddr.vm29.pointer">VoidPointer</a></span>&nbsp;<span class="element-name">j9mem_get_footer_padding</span>&#8203;<span class="parameters">(com.ibm.j9ddr.vm29.pointer.generated.J9MemTagPointer&nbsp;headerEyeCatcherAddress)</span>
throws <span class="exceptions"><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></span></div>
<div class="block">Given the address of the headerEyecatcher for the memory block, return
the address of the footer padding.
Note that there not be any padding, in which case this returns the same
as @ref j9mem_get_footer_tag(), the address of the footer tag.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="../../../CorruptDataException.html" title="class in com.ibm.j9ddr">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="ROUNDED_FOOTER_OFFSET(com.ibm.j9ddr.vm29.types.UDATA)">
<h3>ROUNDED_FOOTER_OFFSET</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="../../types/UDATA.html" title="class in com.ibm.j9ddr.vm29.types">UDATA</a></span>&nbsp;<span class="element-name">ROUNDED_FOOTER_OFFSET</span>&#8203;<span class="parameters">(<a href="../../types/UDATA.html" title="class in com.ibm.j9ddr.vm29.types">UDATA</a>&nbsp;number)</span></div>
</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>