Files
moslab-code/doc/source/html/____vm-vmx_8h_source.html
2025-09-12 15:55:45 +02:00

766 lines
144 KiB
HTML

<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.15.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>L4Re Operating System Framework: l4/sys/__vm-vmx.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">L4Re Operating System Framework
</div>
<div id="projectbrief">Interface and Usage Documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.15.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('____vm-vmx_8h_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">__vm-vmx.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">/*</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * (c) 2010-2013 Adam Lackorzynski &lt;adam@os.inf.tu-dresden.de&gt;,</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * Alexander Warg &lt;warg@os.inf.tu-dresden.de&gt;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> * economic rights: Technische Universität Dresden (Germany)</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> *</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * License: see LICENSE.spdx (in this directory or the directories above)</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> */</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;<a class="code" href="sys_2vcpu_8h.html">l4/sys/vcpu.h</a>&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span></div>
<div class="foldopen" id="foldopen00028" data-start="{" data-end="};">
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga7f887612340fb99adf3ef179d558d71b"> 28</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__l4__vm__vmx__api.html#ga7f887612340fb99adf3ef179d558d71b">L4_vm_vmx_caps_regs</a></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>{</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71baeb5e889bff07525d90f96b4ea1e95a6b"> 30</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71baeb5e889bff07525d90f96b4ea1e95a6b">L4_VM_VMX_BASIC_REG</a> = 0, </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bada1cdf5ff0a078136094cfbac54c4929"> 31</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bada1cdf5ff0a078136094cfbac54c4929">L4_VM_VMX_TRUE_PINBASED_CTLS_REG</a> = 1, </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba0552ed8e38d99b31ba45eac8d6fc0c8c"> 32</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba0552ed8e38d99b31ba45eac8d6fc0c8c">L4_VM_VMX_TRUE_PROCBASED_CTLS_REG</a> = 2, </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bacaea2c77c13fe074e4f3b3fdb39f54dc"> 33</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bacaea2c77c13fe074e4f3b3fdb39f54dc">L4_VM_VMX_TRUE_EXIT_CTLS_REG</a> = 3, </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba6fdf006dac24ed0f259d93b454343257"> 34</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba6fdf006dac24ed0f259d93b454343257">L4_VM_VMX_TRUE_ENTRY_CTLS_REG</a> = 4, </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba082e9155e7de267701c1d654596117e2"> 35</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba082e9155e7de267701c1d654596117e2">L4_VM_VMX_MISC_REG</a> = 5, </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71baaa028615540bf577bc3c0bf5fde839b8"> 36</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71baaa028615540bf577bc3c0bf5fde839b8">L4_VM_VMX_CR0_FIXED0_REG</a> = 6, </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba9ca46e74427b06911cd3056ddc56eab0"> 37</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba9ca46e74427b06911cd3056ddc56eab0">L4_VM_VMX_CR0_FIXED1_REG</a> = 7, </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba55f1e528efc063abddfc09021465f9d2"> 38</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba55f1e528efc063abddfc09021465f9d2">L4_VM_VMX_CR4_FIXED0_REG</a> = 8, </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba3163ab09616fe3b1a0732f2381231df1"> 39</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba3163ab09616fe3b1a0732f2381231df1">L4_VM_VMX_CR4_FIXED1_REG</a> = 9, </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bac56a4e672919d7429acdb261dc1f7d56"> 40</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bac56a4e672919d7429acdb261dc1f7d56">L4_VM_VMX_VMCS_ENUM_REG</a> = 10, </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba16eb83d82eb9a3ec7966901322aec71a"> 41</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba16eb83d82eb9a3ec7966901322aec71a">L4_VM_VMX_PROCBASED_CTLS2_REG</a> = 11, </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba171dd49d3e11f483b7a12e4e0a0168f5"> 42</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba171dd49d3e11f483b7a12e4e0a0168f5">L4_VM_VMX_EPT_VPID_CAP_REG</a> = 12, </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba77a0b80d38acd967c76f220f4d1f901b"> 43</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba77a0b80d38acd967c76f220f4d1f901b">L4_VM_VMX_NESTED_REVISION</a> = 13, </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba47cd504bdaf249586ff6da19fb10f7d0"> 44</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba47cd504bdaf249586ff6da19fb10f7d0">L4_VM_VMX_NUM_CAPS_REGS</a> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>};</div>
</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span></div>
<div class="foldopen" id="foldopen00051" data-start="{" data-end="};">
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gac5a7a61aec9e350c19bd87420f37e0ac"> 51</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__l4__vm__vmx__api.html#gac5a7a61aec9e350c19bd87420f37e0ac">L4_vm_vmx_dfl1_regs</a></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>{</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acaa72109ccf2588608ad97d601b3f15e35"> 53</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acaa72109ccf2588608ad97d601b3f15e35">L4_VM_VMX_PINBASED_CTLS_DFL1_REG</a> = 0, </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acaf7a9ade10e34f67119a63fbacc3162fb"> 54</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acaf7a9ade10e34f67119a63fbacc3162fb">L4_VM_VMX_PROCBASED_CTLS_DFL1_REG</a> = 1, </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0aca8ac4e7068474b8f52dbf5311a0e0258c"> 55</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0aca8ac4e7068474b8f52dbf5311a0e0258c">L4_VM_VMX_EXIT_CTLS_DFL1_REG</a> = 2, </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0aca688c05396a1a2f019988a58fbabd31c1"> 56</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0aca688c05396a1a2f019988a58fbabd31c1">L4_VM_VMX_ENTRY_CTLS_DFL1_REG</a> = 3, </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acab25250e6c3ab5a176d73925708abbad6"> 57</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acab25250e6c3ab5a176d73925708abbad6">L4_VM_VMX_NUM_DFL1_REGS</a> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>};</div>
</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span></div>
<div class="foldopen" id="foldopen00069" data-start="{" data-end="};">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga27f1514d76d058f2f730bb96292f785c"> 69</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__l4__vm__vmx__api.html#ga27f1514d76d058f2f730bb96292f785c">L4_vm_vmx_sw_fields</a></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>{</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca1722faecbb122e7743d9d662ccd719a1"> 78</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca1722faecbb122e7743d9d662ccd719a1">L4_VM_VMX_VMCS_CR2</a> = 0x6880,</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cac96198ff7340494d61838524e1fa19e3"> 80</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cac96198ff7340494d61838524e1fa19e3">L4_VM_VMX_VMCS_NAT_ARG0</a> = 0x6882,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca5fca506a838eb35d467e8e2048d1c3cc"> 82</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca5fca506a838eb35d467e8e2048d1c3cc">L4_VM_VMX_VMCS_NAT_ARG1</a> = 0x6884,</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cac9f38753b92322061c87c5670048652d"> 84</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cac9f38753b92322061c87c5670048652d">L4_VM_VMX_VMCS_NAT_ARG2</a> = 0x6886,</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca126f4b83bdc85be8fd0a9c174052ec20"> 86</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca126f4b83bdc85be8fd0a9c174052ec20">L4_VM_VMX_VMCS_NAT_ARG3</a> = 0x6888,</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca57f0b04a87627b4aa602bf620c3b7d6d"> 88</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca57f0b04a87627b4aa602bf620c3b7d6d">L4_VM_VMX_VMCS_XCR0</a> = 0x2880,</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cae97d93178451a288d72f66f8ab528131"> 90</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cae97d93178451a288d72f66f8ab528131">L4_VM_VMX_VMCS_MSR_SYSCALL_MASK</a> = 0x2882,</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca03bbbc09d95db544e5429033803c1cb8"> 92</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca03bbbc09d95db544e5429033803c1cb8">L4_VM_VMX_VMCS_MSR_LSTAR</a> = 0x2884,</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785caf3b8a516ed42738ef71980a5260c9d95"> 94</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785caf3b8a516ed42738ef71980a5260c9d95">L4_VM_VMX_VMCS_MSR_CSTAR</a> = 0x2886,</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca5e89d3653d174e22f9aa84ad0d2cc6ad"> 96</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca5e89d3653d174e22f9aa84ad0d2cc6ad">L4_VM_VMX_VMCS_MSR_TSC_AUX</a> = 0x2888,</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca157c37450487720714a648b04c7972a7"> 98</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca157c37450487720714a648b04c7972a7">L4_VM_VMX_VMCS_MSR_STAR</a> = 0x288a,</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca793e5454d287deb65d89275c86ea1a0f"> 100</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca793e5454d287deb65d89275c86ea1a0f">L4_VM_VMX_VMCS_MSR_KERNEL_GS_BASE</a> = 0x288c,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>};</div>
</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span></div>
<div class="foldopen" id="foldopen00155" data-start="{" data-end="};">
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="structl4__vmx__offset__table__t.html"> 155</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structl4__vmx__offset__table__t.html">l4_vmx_offset_table_t</a></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span>{</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> offsets[4][4];</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> limits[4][4];</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> index_shifts[4];</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> base_offset;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> size;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> reserved[2];</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga0024c3e213bac7ecb93cb72fbf6de0fc"> 164</a></span>} <a class="code hl_struct" href="structl4__vmx__offset__table__t.html">l4_vmx_offset_table_t</a>;</div>
</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span></div>
<div class="foldopen" id="foldopen00170" data-start="{" data-end="};">
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga9169c2239af134b86c38ca1c539311dd"> 170</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__l4__vm__vmx__api.html#ga9169c2239af134b86c38ca1c539311dd">L4_vm_vmx_vmcs_sizes</a></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span>{</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311dda1a10cf9d323c9efcc7b7d08c9ebec851"> 173</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311dda1a10cf9d323c9efcc7b7d08c9ebec851">L4_VM_VMX_VMCS_SIZE_VALUES</a> = 2560,</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311ddaf47978797114b595d5922991d7731e01"> 175</a></span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311ddaf47978797114b595d5922991d7731e01">L4_VM_VMX_VMCS_SIZE_DIRTY_BITMAP</a> = 320,</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span>};</div>
</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span></div>
<div class="foldopen" id="foldopen00205" data-start="{" data-end="};">
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="structl4__vm__vmx__vcpu__vmcs__t.html"> 205</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span>{</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> reserved0;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> user_data;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> cr2_index;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> reserved1[4];</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <a class="code hl_typedef" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> vmcs;</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment"> * Since the capability type size depends on the platform, we add a 32-bit</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment"> * padding if necessary.</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="comment"> */</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="preprocessor">#if L4_MWORD_BITS == 32</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> padding0;</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="preprocessor">#elif L4_MWORD_BITS == 64</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="comment">/* No padding needed. */</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="preprocessor"> #error Unsupported machine word size.</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <a class="code hl_struct" href="structl4__vmx__offset__table__t.html">l4_vmx_offset_table_t</a> offset_table;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> reserved2[120];</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> values[<a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311dda1a10cf9d323c9efcc7b7d08c9ebec851">L4_VM_VMX_VMCS_SIZE_VALUES</a>];</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> dirty_bitmap[<a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311ddaf47978797114b595d5922991d7731e01">L4_VM_VMX_VMCS_SIZE_DIRTY_BITMAP</a>];</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga223b3534cb33051ef6cb5866bf97d236"> 233</a></span>} <a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a>;</div>
</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span></div>
<div class="foldopen" id="foldopen00239" data-start="{" data-end="};">
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="structl4__vm__vmx__vcpu__infos__t.html"> 239</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structl4__vm__vmx__vcpu__infos__t.html">l4_vm_vmx_vcpu_infos_t</a></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span>{</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="structl4__vm__vmx__vcpu__infos__t.html#a168647389b9b0128f543e182f37ca8a7"> 242</a></span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> <a class="code hl_variable" href="structl4__vm__vmx__vcpu__infos__t.html#a168647389b9b0128f543e182f37ca8a7">caps</a>[<a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba47cd504bdaf249586ff6da19fb10f7d0">L4_VM_VMX_NUM_CAPS_REGS</a>];</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="structl4__vm__vmx__vcpu__infos__t.html#a265db33e18f6cfa39143da5e4a525ff6"> 246</a></span> <a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> <a class="code hl_variable" href="structl4__vm__vmx__vcpu__infos__t.html#a265db33e18f6cfa39143da5e4a525ff6">dfl1</a>[<a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acab25250e6c3ab5a176d73925708abbad6">L4_VM_VMX_NUM_DFL1_REGS</a>];</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga8d4a2ac7e7c7fa662ac8d68d0dc9280c"> 247</a></span>} <a class="code hl_struct" href="structl4__vm__vmx__vcpu__infos__t.html">l4_vm_vmx_vcpu_infos_t</a>;</div>
</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span></div>
<div class="foldopen" id="foldopen00267" data-start="{" data-end="};">
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="structl4__vm__vmx__vcpu__state__t.html"> 267</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structl4__vm__vmx__vcpu__state__t.html">l4_vm_vmx_vcpu_state_t</a></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span>{</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <a class="code hl_struct" href="structl4__vcpu__state__t.html">l4_vcpu_state_t</a> vcpu_state;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> padding0[<a class="code hl_enumvalue" href="group__l4__vcpu__api.html#ggaa9c9426f606dfa123ace57a1081e4e1ba51d123b064652c03ed78714ec92615e5">L4_VCPU_OFFSET_EXT_INFOS</a> - <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structl4__vcpu__state__t.html">l4_vcpu_state_t</a>)];</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <a class="code hl_struct" href="structl4__vm__vmx__vcpu__infos__t.html">l4_vm_vmx_vcpu_infos_t</a> infos;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> padding1[<a class="code hl_enumvalue" href="group__l4__vcpu__api.html#ggaa9c9426f606dfa123ace57a1081e4e1ba970100e3dd8000f263688f50d6fcbda3">L4_VCPU_OFFSET_EXT_STATE</a> - <a class="code hl_enumvalue" href="group__l4__vcpu__api.html#ggaa9c9426f606dfa123ace57a1081e4e1ba51d123b064652c03ed78714ec92615e5">L4_VCPU_OFFSET_EXT_INFOS</a></div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> - <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__infos__t.html">l4_vm_vmx_vcpu_infos_t</a>)];</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> vmcs;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga4f3d427d0109bba030bce08df6f9a432"> 277</a></span>} <a class="code hl_struct" href="structl4__vm__vmx__vcpu__state__t.html">l4_vm_vmx_vcpu_state_t</a>;</div>
</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span><a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga91a16ca560298b7238a6570d41ad0ad3">l4_vm_vmx_get_caps</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__state__t.html">l4_vm_vmx_vcpu_state_t</a> <span class="keyword">const</span> *vcpu_state,</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__l4__vm__vmx__api.html#ga7f887612340fb99adf3ef179d558d71b">L4_vm_vmx_caps_regs</a> caps_reg) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga70caa0bd4fb86dc52d3e0f424519d37b">l4_vm_vmx_get_caps_default1</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__state__t.html">l4_vm_vmx_vcpu_state_t</a> <span class="keyword">const</span> *vcpu_state,</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__l4__vm__vmx__api.html#gac5a7a61aec9e350c19bd87420f37e0ac">L4_vm_vmx_dfl1_regs</a> dfl1_reg) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span></div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span><span class="keywordtype">unsigned</span></div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga7a7775078ec1b73ce8b143ec16482824">l4_vm_vmx_field_len</a>(<span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span><span class="keywordtype">unsigned</span></div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga2903ff82a7b04d2b46d25f4a3470a893">l4_vm_vmx_field_order</a>(<span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="keywordtype">void</span> *</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span>l4_vm_vmx_field_ptr(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span></div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#gad1e2ed2059eb6060d19dd6d327b200d2">l4_vm_vmx_clear</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs,</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *dest_vmcs) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span></div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga29d1354bccc139bea4804de3847338b2">l4_vm_vmx_ptr_load</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs,</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *src_vmcs) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span></div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span><a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a></div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga473ceb1888da5cd9e6f1d517c75b3198">l4_vm_vmx_get_cr2_index</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> <span class="keyword">const</span> *vmcs) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span></div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span><a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a></div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga22d4747a884070acb14281204646c4ff">l4_vm_vmx_read_nat</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span></div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span><a class="code hl_typedef" href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a></div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga4bd0e8a0bc5b1c2676f7fad347a3314b">l4_vm_vmx_read_16</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span></div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span><a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a></div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#gaab7dd6442461a68b6b4bff6f5658783b">l4_vm_vmx_read_32</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span></div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span><a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga28ad1e122940d6a6721d6e604f10a474">l4_vm_vmx_read_64</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span></div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span><a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga6ddd9fb2841dc44996a7753746f461e4">l4_vm_vmx_read</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span></div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga114952d1fad1746f426f3d4109699371">l4_vm_vmx_write_nat</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span></div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga58e1f077fb70c62c1bfce4b912f5a5db">l4_vm_vmx_write_16</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span></div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#gab2b314376b43356b08b127da2bc7aeed">l4_vm_vmx_write_32</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span></div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga56f88515d203d180e65152c5a9a22c57">l4_vm_vmx_write_64</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span></div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga20b3c5c42db8ee3f4859565486f05101">l4_vm_vmx_write</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga6f10feba83a036b0e88a56f4784862be">l4_vm_vmx_set_hw_vmcs</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs,</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <a class="code hl_typedef" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> vmcs_cap) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span></div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span><a class="code hl_typedef" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga44c3fca4aadaa1928ba810bccb4eb8aa">l4_vm_vmx_get_hw_vmcs</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a>;</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> </div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span><span class="comment">/* Implementations */</span></div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> </div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span><span class="keywordtype">unsigned</span></div>
<div class="foldopen" id="foldopen00593" data-start="{" data-end="}">
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga7a7775078ec1b73ce8b143ec16482824"> 593</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga7a7775078ec1b73ce8b143ec16482824">l4_vm_vmx_field_len</a>(<span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span>{</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">return</span> 1 &lt;&lt; <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga2903ff82a7b04d2b46d25f4a3470a893">l4_vm_vmx_field_order</a>(field);</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span>}</div>
</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> </div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span><span class="keywordtype">unsigned</span></div>
<div class="foldopen" id="foldopen00600" data-start="{" data-end="}">
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga2903ff82a7b04d2b46d25f4a3470a893"> 600</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga2903ff82a7b04d2b46d25f4a3470a893">l4_vm_vmx_field_order</a>(<span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span>{</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keywordtype">unsigned</span> size = (field &gt;&gt; 13) &amp; 0x03U;</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> </div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="keywordflow">switch</span> (size)</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> {</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> 1; <span class="comment">/* 16 bits */</span></div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> 3; <span class="comment">/* 64 bits */</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> 2; <span class="comment">/* 32 bits */</span></div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> (<span class="keyword">sizeof</span>(<a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a>) == 8) ? 3 : 2; <span class="comment">/* Natural width */</span></div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> }</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> </div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> __builtin_trap();</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span>}</div>
</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span></div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span><span class="keywordtype">unsigned</span></div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span>l4_vm_vmx_field_offset(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> <span class="keyword">const</span> *vmcs,</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span>{</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keywordtype">unsigned</span> index = field &amp; 0x3feU;</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> <span class="keywordtype">unsigned</span> size = (field &gt;&gt; 13) &amp; 0x03U;</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keywordtype">unsigned</span> group = (field &gt;&gt; 10) &amp; 0x03U;</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <span class="keywordtype">unsigned</span> shifted_index = index &lt;&lt; vmcs-&gt;offset_table.index_shifts[size];</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> </div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <span class="keywordflow">if</span> (shifted_index &gt;= (<span class="keywordtype">unsigned</span>)vmcs-&gt;offset_table.limits[size][group] * 64)</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="keywordflow">return</span> ~0U;</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> </div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span>)vmcs-&gt;offset_table.offsets[size][group] * 64</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> + shifted_index;</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span>}</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> </div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span><span class="keywordtype">void</span> *</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span>l4_vm_vmx_field_ptr(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span>{</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="keywordtype">unsigned</span> offset = l4_vm_vmx_field_offset(vmcs, field);</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">if</span> (offset == ~0U)</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> </div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <span class="keywordflow">return</span> (<span class="keywordtype">void</span> *)(vmcs-&gt;values + offset);</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span>}</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span></div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span><span class="keywordtype">void</span> *</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span>l4_vm_vmx_field_ptr_offset(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordtype">unsigned</span> *offset) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span>{</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> *offset = l4_vm_vmx_field_offset(vmcs, field);</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keywordflow">if</span> (*offset == ~0U)</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> </div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> <span class="keywordflow">return</span> (<span class="keywordtype">void</span> *)(vmcs-&gt;values + *offset);</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span>}</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span></div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span>l4_vm_vmx_offset_dirty(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs,</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keywordtype">unsigned</span> offset) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span>{</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> vmcs-&gt;dirty_bitmap[offset / 8] |= 1U &lt;&lt; (offset % 8);</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span>}</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span></div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span>l4_vm_vmx_copy_values(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> <span class="keyword">const</span> *vmcs, <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> *_dst,</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a> <span class="keyword">const</span> *_src) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span>{</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> <span class="keywordtype">unsigned</span> base_offset = vmcs-&gt;offset_table.base_offset * 64;</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="keywordtype">unsigned</span> size = vmcs-&gt;offset_table.size * 64;</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> </div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <span class="keywordtype">void</span> *dst = _dst + base_offset;</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <span class="keywordtype">void</span> <span class="keyword">const</span> *src = _src + base_offset;</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> __builtin_memcpy(dst, src, size);</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span>}</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> </div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00698" data-start="{" data-end="}">
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gad1e2ed2059eb6060d19dd6d327b200d2"> 698</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#gad1e2ed2059eb6060d19dd6d327b200d2">l4_vm_vmx_clear</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs,</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> <a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *dest_vmcs) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span>{</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> **current_vmcs_ptr</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> = (<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> **)&amp;vmcs-&gt;user_data;</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> </div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> <span class="keywordflow">if</span> (*current_vmcs_ptr != dest_vmcs)</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> </div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga6f10feba83a036b0e88a56f4784862be">l4_vm_vmx_set_hw_vmcs</a>(dest_vmcs, <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga44c3fca4aadaa1928ba810bccb4eb8aa">l4_vm_vmx_get_hw_vmcs</a>(vmcs));</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> l4_vm_vmx_copy_values(vmcs, dest_vmcs-&gt;values, vmcs-&gt;values);</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> </div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> <span class="comment">/* Due to its size, the dirty bitmap is always compied in its entirety. */</span></div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> __builtin_memcpy(dest_vmcs-&gt;dirty_bitmap, vmcs-&gt;dirty_bitmap,</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311ddaf47978797114b595d5922991d7731e01">L4_VM_VMX_VMCS_SIZE_DIRTY_BITMAP</a>);</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> </div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> *current_vmcs_ptr = 0;</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span>}</div>
</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> </div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00719" data-start="{" data-end="}">
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga29d1354bccc139bea4804de3847338b2"> 719</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga29d1354bccc139bea4804de3847338b2">l4_vm_vmx_ptr_load</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs,</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> <a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *src_vmcs) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span>{</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> <a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> **current_vmcs_ptr</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> = (<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> **)&amp;vmcs-&gt;user_data;</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> </div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <span class="keywordflow">if</span> (*current_vmcs_ptr == src_vmcs)</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> </div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> <span class="keywordflow">if</span> (*current_vmcs_ptr &amp;&amp; *current_vmcs_ptr != src_vmcs)</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> <a class="code hl_function" href="group__l4__vm__vmx__api.html#gad1e2ed2059eb6060d19dd6d327b200d2">l4_vm_vmx_clear</a>(vmcs, *current_vmcs_ptr);</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> </div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> *current_vmcs_ptr = src_vmcs;</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> </div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga6f10feba83a036b0e88a56f4784862be">l4_vm_vmx_set_hw_vmcs</a>(vmcs, <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga44c3fca4aadaa1928ba810bccb4eb8aa">l4_vm_vmx_get_hw_vmcs</a>(src_vmcs));</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> l4_vm_vmx_copy_values(vmcs, vmcs-&gt;values, src_vmcs-&gt;values);</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> </div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> <span class="comment">/* Due to its size, the dirty bitmap is always compied in its entirety. */</span></div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> __builtin_memcpy(vmcs-&gt;dirty_bitmap, src_vmcs-&gt;dirty_bitmap,</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> <a class="code hl_enumvalue" href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311ddaf47978797114b595d5922991d7731e01">L4_VM_VMX_VMCS_SIZE_DIRTY_BITMAP</a>);</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span>}</div>
</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> </div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span><a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a></div>
<div class="foldopen" id="foldopen00743" data-start="{" data-end="}">
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga22d4747a884070acb14281204646c4ff"> 743</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga22d4747a884070acb14281204646c4ff">l4_vm_vmx_read_nat</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span>{</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *ptr = (<a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *)l4_vm_vmx_field_ptr(vmcs, field);</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> <span class="keywordflow">if</span> (!ptr)</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> </div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <span class="keywordflow">return</span> *ptr;</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span>}</div>
</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> </div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span><a class="code hl_typedef" href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a></div>
<div class="foldopen" id="foldopen00754" data-start="{" data-end="}">
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga4bd0e8a0bc5b1c2676f7fad347a3314b"> 754</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga4bd0e8a0bc5b1c2676f7fad347a3314b">l4_vm_vmx_read_16</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span>{</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a> *ptr = (<a class="code hl_typedef" href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a> *)l4_vm_vmx_field_ptr(vmcs, field);</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <span class="keywordflow">if</span> (!ptr)</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> </div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> <span class="keywordflow">return</span> *ptr;</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span>}</div>
</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> </div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span><a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a></div>
<div class="foldopen" id="foldopen00765" data-start="{" data-end="}">
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gaab7dd6442461a68b6b4bff6f5658783b"> 765</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#gaab7dd6442461a68b6b4bff6f5658783b">l4_vm_vmx_read_32</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span>{</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> *ptr = (<a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> *)l4_vm_vmx_field_ptr(vmcs, field);</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> <span class="keywordflow">if</span> (!ptr)</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> </div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <span class="keywordflow">return</span> *ptr;</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span>}</div>
</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> </div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span><a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></div>
<div class="foldopen" id="foldopen00776" data-start="{" data-end="}">
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga28ad1e122940d6a6721d6e604f10a474"> 776</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga28ad1e122940d6a6721d6e604f10a474">l4_vm_vmx_read_64</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span>{</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> *ptr = (<a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> *)l4_vm_vmx_field_ptr(vmcs, field);</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <span class="keywordflow">if</span> (!ptr)</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> </div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> <span class="keywordflow">return</span> *ptr;</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span>}</div>
</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> </div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span><a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></div>
<div class="foldopen" id="foldopen00787" data-start="{" data-end="}">
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga6ddd9fb2841dc44996a7753746f461e4"> 787</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga6ddd9fb2841dc44996a7753746f461e4">l4_vm_vmx_read</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span>{</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> <span class="keywordtype">unsigned</span> size = (field &gt;&gt; 13) &amp; 0x03U;</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> </div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> <span class="keywordflow">switch</span> (size)</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> {</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga4bd0e8a0bc5b1c2676f7fad347a3314b">l4_vm_vmx_read_16</a>(vmcs, field);</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga28ad1e122940d6a6721d6e604f10a474">l4_vm_vmx_read_64</a>(vmcs, field);</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__vm__vmx__api.html#gaab7dd6442461a68b6b4bff6f5658783b">l4_vm_vmx_read_32</a>(vmcs, field);</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga22d4747a884070acb14281204646c4ff">l4_vm_vmx_read_nat</a>(vmcs, field);</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> }</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> </div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> __builtin_trap();</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span>}</div>
</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> </div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00804" data-start="{" data-end="}">
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga114952d1fad1746f426f3d4109699371"> 804</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga114952d1fad1746f426f3d4109699371">l4_vm_vmx_write_nat</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span>{</div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span> <span class="keywordtype">unsigned</span> offset;</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *ptr</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> = (<a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *)l4_vm_vmx_field_ptr_offset(vmcs, field, &amp;offset);</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> </div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> <span class="keywordflow">if</span> ((ptr) &amp;&amp; (*ptr != val))</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> {</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> *ptr = val;</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> l4_vm_vmx_offset_dirty(vmcs, offset);</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> }</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span>}</div>
</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> </div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00820" data-start="{" data-end="}">
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga58e1f077fb70c62c1bfce4b912f5a5db"> 820</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga58e1f077fb70c62c1bfce4b912f5a5db">l4_vm_vmx_write_16</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span>{</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> <span class="keywordtype">unsigned</span> offset;</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a> *ptr</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> = (<a class="code hl_typedef" href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a> *)l4_vm_vmx_field_ptr_offset(vmcs, field, &amp;offset);</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> </div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> <span class="keywordflow">if</span> ((ptr) &amp;&amp; (*ptr != val))</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> {</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> *ptr = val;</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> l4_vm_vmx_offset_dirty(vmcs, offset);</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> }</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span>}</div>
</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> </div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00836" data-start="{" data-end="}">
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#gab2b314376b43356b08b127da2bc7aeed"> 836</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#gab2b314376b43356b08b127da2bc7aeed">l4_vm_vmx_write_32</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span>{</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> <span class="keywordtype">unsigned</span> offset;</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> *ptr</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> = (<a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> *)l4_vm_vmx_field_ptr_offset(vmcs, field, &amp;offset);</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> </div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> <span class="keywordflow">if</span> ((ptr) &amp;&amp; (*ptr != val))</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> {</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> *ptr = val;</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> l4_vm_vmx_offset_dirty(vmcs, offset);</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> }</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span>}</div>
</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> </div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00852" data-start="{" data-end="}">
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga56f88515d203d180e65152c5a9a22c57"> 852</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga56f88515d203d180e65152c5a9a22c57">l4_vm_vmx_write_64</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span>{</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> <span class="keywordtype">unsigned</span> offset;</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> *ptr</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> = (<a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> *)l4_vm_vmx_field_ptr_offset(vmcs, field, &amp;offset);</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> </div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> <span class="keywordflow">if</span> ((ptr) &amp;&amp; (*ptr != val))</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> {</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> *ptr = val;</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> l4_vm_vmx_offset_dirty(vmcs, offset);</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> }</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span>}</div>
</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> </div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00868" data-start="{" data-end="}">
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga20b3c5c42db8ee3f4859565486f05101"> 868</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga20b3c5c42db8ee3f4859565486f05101">l4_vm_vmx_write</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs, <span class="keywordtype">unsigned</span> field,</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> <a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> val) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span>{</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> <span class="keywordtype">unsigned</span> size = (field &gt;&gt; 13) &amp; 0x03U;</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> </div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> <span class="keywordflow">switch</span> (size)</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> {</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> <span class="keywordflow">case</span> 0: <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga58e1f077fb70c62c1bfce4b912f5a5db">l4_vm_vmx_write_16</a>(vmcs, field, val); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> <span class="keywordflow">case</span> 1: <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga56f88515d203d180e65152c5a9a22c57">l4_vm_vmx_write_64</a>(vmcs, field, val); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> <span class="keywordflow">case</span> 2: <a class="code hl_function" href="group__l4__vm__vmx__api.html#gab2b314376b43356b08b127da2bc7aeed">l4_vm_vmx_write_32</a>(vmcs, field, val); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> <span class="keywordflow">case</span> 3: <a class="code hl_function" href="group__l4__vm__vmx__api.html#ga114952d1fad1746f426f3d4109699371">l4_vm_vmx_write_nat</a>(vmcs, field, val); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> }</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span>}</div>
</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> </div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span><a class="code hl_typedef" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></div>
<div class="foldopen" id="foldopen00884" data-start="{" data-end="}">
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga91a16ca560298b7238a6570d41ad0ad3"> 884</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga91a16ca560298b7238a6570d41ad0ad3">l4_vm_vmx_get_caps</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__state__t.html">l4_vm_vmx_vcpu_state_t</a> <span class="keyword">const</span> *vcpu_state,</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__l4__vm__vmx__api.html#ga7f887612340fb99adf3ef179d558d71b">L4_vm_vmx_caps_regs</a> caps_reg) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span>{</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> <span class="keywordflow">return</span> vcpu_state-&gt;infos.caps[caps_reg];</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span>}</div>
</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> </div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span><a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a></div>
<div class="foldopen" id="foldopen00892" data-start="{" data-end="}">
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga70caa0bd4fb86dc52d3e0f424519d37b"> 892</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga70caa0bd4fb86dc52d3e0f424519d37b">l4_vm_vmx_get_caps_default1</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__state__t.html">l4_vm_vmx_vcpu_state_t</a> <span class="keyword">const</span> *vcpu_state,</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__l4__vm__vmx__api.html#gac5a7a61aec9e350c19bd87420f37e0ac">L4_vm_vmx_dfl1_regs</a> dfl1_reg) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span>{</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <span class="keywordflow">return</span> vcpu_state-&gt;infos.dfl1[dfl1_reg];</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span>}</div>
</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> </div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span><a class="code hl_typedef" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a></div>
<div class="foldopen" id="foldopen00900" data-start="{" data-end="}">
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga473ceb1888da5cd9e6f1d517c75b3198"> 900</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga473ceb1888da5cd9e6f1d517c75b3198">l4_vm_vmx_get_cr2_index</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> <span class="keyword">const</span> *vmcs) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span>{</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> <span class="keywordflow">return</span> vmcs-&gt;cr2_index;</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span>}</div>
</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> </div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00907" data-start="{" data-end="}">
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga6f10feba83a036b0e88a56f4784862be"> 907</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga6f10feba83a036b0e88a56f4784862be">l4_vm_vmx_set_hw_vmcs</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs,</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <a class="code hl_typedef" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> vmcs_cap) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span>{</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> vmcs-&gt;vmcs = vmcs_cap;</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span>}</div>
</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> </div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span><a class="code hl_define" href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span><a class="code hl_typedef" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></div>
<div class="foldopen" id="foldopen00915" data-start="{" data-end="}">
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"><a class="line" href="group__l4__vm__vmx__api.html#ga44c3fca4aadaa1928ba810bccb4eb8aa"> 915</a></span><a class="code hl_function" href="group__l4__vm__vmx__api.html#ga44c3fca4aadaa1928ba810bccb4eb8aa">l4_vm_vmx_get_hw_vmcs</a>(<a class="code hl_struct" href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a> *vmcs) <a class="code hl_define" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span>{</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> <span class="keywordflow">return</span> vmcs-&gt;vmcs &amp; <a class="code hl_enumvalue" href="group__l4__cap__api.html#ggafee0421c2fe0e5cfc59f17f16ea10879aba3e1dbcc462d842d56df9fc928e796b">L4_CAP_MASK</a>;</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span>}</div>
</div>
<div class="ttc" id="agroup__l4__basic__types_html_ga1c2c4b333f75b1d05b59855910f2b9cb"><div class="ttname"><a href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a></div><div class="ttdeci">unsigned long l4_umword_t</div><div class="ttdoc">Unsigned machine word.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00040">l4int.h:40</a></div></div>
<div class="ttc" id="agroup__l4__basic__types_html_ga9678dc2e6bf3e4d8ec950162576b0fad"><div class="ttname"><a href="group__l4__basic__types.html#ga9678dc2e6bf3e4d8ec950162576b0fad">l4_uint8_t</a></div><div class="ttdeci">unsigned char l4_uint8_t</div><div class="ttdoc">Unsigned 8bit value.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00025">l4int.h:25</a></div></div>
<div class="ttc" id="agroup__l4__basic__types_html_gac1d09f3e382e711b776931f10e6e1e5a"><div class="ttname"><a href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a></div><div class="ttdeci">unsigned int l4_uint32_t</div><div class="ttdoc">Unsigned 32bit value.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00029">l4int.h:29</a></div></div>
<div class="ttc" id="agroup__l4__basic__types_html_gae8d67914f723bf843df6f311ad2619a2"><div class="ttname"><a href="group__l4__basic__types.html#gae8d67914f723bf843df6f311ad2619a2">l4_uint16_t</a></div><div class="ttdeci">unsigned short int l4_uint16_t</div><div class="ttdoc">Unsigned 16bit value.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00027">l4int.h:27</a></div></div>
<div class="ttc" id="agroup__l4__basic__types_html_gaf3331c485014bd12a9e4f9d27a55e689"><div class="ttname"><a href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></div><div class="ttdeci">unsigned long long l4_uint64_t</div><div class="ttdoc">Unsigned 64bit value.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00031">l4int.h:31</a></div></div>
<div class="ttc" id="agroup__l4__cap__api_html_ga1445e923ce73029130d569d6e69a4dd8"><div class="ttname"><a href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></div><div class="ttdeci">unsigned long l4_cap_idx_t</div><div class="ttdoc">Capability selector type.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2types_8h_source.html#l00336">types.h:336</a></div></div>
<div class="ttc" id="agroup__l4__cap__api_html_ggafee0421c2fe0e5cfc59f17f16ea10879aba3e1dbcc462d842d56df9fc928e796b"><div class="ttname"><a href="group__l4__cap__api.html#ggafee0421c2fe0e5cfc59f17f16ea10879aba3e1dbcc462d842d56df9fc928e796b">L4_CAP_MASK</a></div><div class="ttdeci">@ L4_CAP_MASK</div><div class="ttdoc">Mask to get only the relevant bits of an l4_cap_idx_t.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2consts_8h_source.html#l00151">consts.h:151</a></div></div>
<div class="ttc" id="agroup__l4__vcpu__api_html_ggaa9c9426f606dfa123ace57a1081e4e1ba51d123b064652c03ed78714ec92615e5"><div class="ttname"><a href="group__l4__vcpu__api.html#ggaa9c9426f606dfa123ace57a1081e4e1ba51d123b064652c03ed78714ec92615e5">L4_VCPU_OFFSET_EXT_INFOS</a></div><div class="ttdeci">@ L4_VCPU_OFFSET_EXT_INFOS</div><div class="ttdoc">Offset where extended infos begin.</div><div class="ttdef"><b>Definition</b> <a href="arm_2l4_2sys_2____vcpu-arch_8h_source.html#l00038">__vcpu-arch.h:38</a></div></div>
<div class="ttc" id="agroup__l4__vcpu__api_html_ggaa9c9426f606dfa123ace57a1081e4e1ba970100e3dd8000f263688f50d6fcbda3"><div class="ttname"><a href="group__l4__vcpu__api.html#ggaa9c9426f606dfa123ace57a1081e4e1ba970100e3dd8000f263688f50d6fcbda3">L4_VCPU_OFFSET_EXT_STATE</a></div><div class="ttdeci">@ L4_VCPU_OFFSET_EXT_STATE</div><div class="ttdoc">Offset where extended state begins.</div><div class="ttdef"><b>Definition</b> <a href="arm_2l4_2sys_2____vcpu-arch_8h_source.html#l00037">__vcpu-arch.h:37</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga114952d1fad1746f426f3d4109699371"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga114952d1fad1746f426f3d4109699371">l4_vm_vmx_write_nat</a></div><div class="ttdeci">void l4_vm_vmx_write_nat(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field, l4_umword_t val) L4_NOTHROW</div><div class="ttdoc">Write to a natural-width software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00804">__vm-vmx.h:804</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga20b3c5c42db8ee3f4859565486f05101"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga20b3c5c42db8ee3f4859565486f05101">l4_vm_vmx_write</a></div><div class="ttdeci">void l4_vm_vmx_write(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field, l4_uint64_t val) L4_NOTHROW</div><div class="ttdoc">Write to an arbitrary software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00868">__vm-vmx.h:868</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga22d4747a884070acb14281204646c4ff"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga22d4747a884070acb14281204646c4ff">l4_vm_vmx_read_nat</a></div><div class="ttdeci">l4_umword_t l4_vm_vmx_read_nat(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field) L4_NOTHROW</div><div class="ttdoc">Read a natural-width software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00743">__vm-vmx.h:743</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga27f1514d76d058f2f730bb96292f785c"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga27f1514d76d058f2f730bb96292f785c">L4_vm_vmx_sw_fields</a></div><div class="ttdeci">L4_vm_vmx_sw_fields</div><div class="ttdoc">Additional (software-defined) VMCS fields.</div><div class="ttdef"><b>Definition</b> <a href="#l00069">__vm-vmx.h:70</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga28ad1e122940d6a6721d6e604f10a474"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga28ad1e122940d6a6721d6e604f10a474">l4_vm_vmx_read_64</a></div><div class="ttdeci">l4_uint64_t l4_vm_vmx_read_64(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field) L4_NOTHROW</div><div class="ttdoc">Read a 64-bit software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00776">__vm-vmx.h:776</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga2903ff82a7b04d2b46d25f4a3470a893"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga2903ff82a7b04d2b46d25f4a3470a893">l4_vm_vmx_field_order</a></div><div class="ttdeci">unsigned l4_vm_vmx_field_order(unsigned field) L4_NOTHROW</div><div class="ttdoc">Return length in power of two (bytes) of a VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00600">__vm-vmx.h:600</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga29d1354bccc139bea4804de3847338b2"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga29d1354bccc139bea4804de3847338b2">l4_vm_vmx_ptr_load</a></div><div class="ttdeci">void l4_vm_vmx_ptr_load(l4_vm_vmx_vcpu_vmcs_t *vmcs, l4_vm_vmx_vcpu_vmcs_t *src_vmcs) L4_NOTHROW</div><div class="ttdoc">Load the content from a different software VMCS to the software VMCS.</div><div class="ttdef"><b>Definition</b> <a href="#l00719">__vm-vmx.h:719</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga44c3fca4aadaa1928ba810bccb4eb8aa"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga44c3fca4aadaa1928ba810bccb4eb8aa">l4_vm_vmx_get_hw_vmcs</a></div><div class="ttdeci">l4_cap_idx_t l4_vm_vmx_get_hw_vmcs(l4_vm_vmx_vcpu_vmcs_t *vmcs) L4_NOTHROW</div><div class="ttdoc">Get the vCPU context (i.e.</div><div class="ttdef"><b>Definition</b> <a href="#l00915">__vm-vmx.h:915</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga473ceb1888da5cd9e6f1d517c75b3198"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga473ceb1888da5cd9e6f1d517c75b3198">l4_vm_vmx_get_cr2_index</a></div><div class="ttdeci">l4_uint32_t l4_vm_vmx_get_cr2_index(l4_vm_vmx_vcpu_vmcs_t const *vmcs) L4_NOTHROW</div><div class="ttdoc">Get the software VMCS field index of the virtual CR2 register.</div><div class="ttdef"><b>Definition</b> <a href="#l00900">__vm-vmx.h:900</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga4bd0e8a0bc5b1c2676f7fad347a3314b"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga4bd0e8a0bc5b1c2676f7fad347a3314b">l4_vm_vmx_read_16</a></div><div class="ttdeci">l4_uint16_t l4_vm_vmx_read_16(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field) L4_NOTHROW</div><div class="ttdoc">Read a 16-bit software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00754">__vm-vmx.h:754</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga56f88515d203d180e65152c5a9a22c57"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga56f88515d203d180e65152c5a9a22c57">l4_vm_vmx_write_64</a></div><div class="ttdeci">void l4_vm_vmx_write_64(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field, l4_uint64_t val) L4_NOTHROW</div><div class="ttdoc">Write to a 64-bit software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00852">__vm-vmx.h:852</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga58e1f077fb70c62c1bfce4b912f5a5db"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga58e1f077fb70c62c1bfce4b912f5a5db">l4_vm_vmx_write_16</a></div><div class="ttdeci">void l4_vm_vmx_write_16(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field, l4_uint16_t val) L4_NOTHROW</div><div class="ttdoc">Write to a 16-bit software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00820">__vm-vmx.h:820</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga6ddd9fb2841dc44996a7753746f461e4"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga6ddd9fb2841dc44996a7753746f461e4">l4_vm_vmx_read</a></div><div class="ttdeci">l4_uint64_t l4_vm_vmx_read(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field) L4_NOTHROW</div><div class="ttdoc">Read any software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00787">__vm-vmx.h:787</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga6f10feba83a036b0e88a56f4784862be"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga6f10feba83a036b0e88a56f4784862be">l4_vm_vmx_set_hw_vmcs</a></div><div class="ttdeci">void l4_vm_vmx_set_hw_vmcs(l4_vm_vmx_vcpu_vmcs_t *vmcs, l4_cap_idx_t vmcs_cap) L4_NOTHROW</div><div class="ttdoc">Associate the software VMCS with a vCPU context, i.e.</div><div class="ttdef"><b>Definition</b> <a href="#l00907">__vm-vmx.h:907</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga70caa0bd4fb86dc52d3e0f424519d37b"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga70caa0bd4fb86dc52d3e0f424519d37b">l4_vm_vmx_get_caps_default1</a></div><div class="ttdeci">l4_uint32_t l4_vm_vmx_get_caps_default1(l4_vm_vmx_vcpu_state_t const *vcpu_state, enum L4_vm_vmx_dfl1_regs dfl1_reg) L4_NOTHROW</div><div class="ttdoc">Get a default to one capability register for VMX.</div><div class="ttdef"><b>Definition</b> <a href="#l00892">__vm-vmx.h:892</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga7a7775078ec1b73ce8b143ec16482824"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga7a7775078ec1b73ce8b143ec16482824">l4_vm_vmx_field_len</a></div><div class="ttdeci">unsigned l4_vm_vmx_field_len(unsigned field) L4_NOTHROW</div><div class="ttdoc">Return length in bytes of a VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00593">__vm-vmx.h:593</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga7f887612340fb99adf3ef179d558d71b"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga7f887612340fb99adf3ef179d558d71b">L4_vm_vmx_caps_regs</a></div><div class="ttdeci">L4_vm_vmx_caps_regs</div><div class="ttdoc">Exported VMX capability registers.</div><div class="ttdef"><b>Definition</b> <a href="#l00028">__vm-vmx.h:29</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga9169c2239af134b86c38ca1c539311dd"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga9169c2239af134b86c38ca1c539311dd">L4_vm_vmx_vmcs_sizes</a></div><div class="ttdeci">L4_vm_vmx_vmcs_sizes</div><div class="ttdoc">Sizes of software VMCS members.</div><div class="ttdef"><b>Definition</b> <a href="#l00170">__vm-vmx.h:171</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ga91a16ca560298b7238a6570d41ad0ad3"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ga91a16ca560298b7238a6570d41ad0ad3">l4_vm_vmx_get_caps</a></div><div class="ttdeci">l4_uint64_t l4_vm_vmx_get_caps(l4_vm_vmx_vcpu_state_t const *vcpu_state, enum L4_vm_vmx_caps_regs caps_reg) L4_NOTHROW</div><div class="ttdoc">Get a capability register for VMX.</div><div class="ttdef"><b>Definition</b> <a href="#l00884">__vm-vmx.h:884</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gaab7dd6442461a68b6b4bff6f5658783b"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gaab7dd6442461a68b6b4bff6f5658783b">l4_vm_vmx_read_32</a></div><div class="ttdeci">l4_uint32_t l4_vm_vmx_read_32(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field) L4_NOTHROW</div><div class="ttdoc">Read a 32-bit software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00765">__vm-vmx.h:765</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gab2b314376b43356b08b127da2bc7aeed"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gab2b314376b43356b08b127da2bc7aeed">l4_vm_vmx_write_32</a></div><div class="ttdeci">void l4_vm_vmx_write_32(l4_vm_vmx_vcpu_vmcs_t *vmcs, unsigned field, l4_uint32_t val) L4_NOTHROW</div><div class="ttdoc">Write to a 32-bit software VMCS field.</div><div class="ttdef"><b>Definition</b> <a href="#l00836">__vm-vmx.h:836</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gac5a7a61aec9e350c19bd87420f37e0ac"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gac5a7a61aec9e350c19bd87420f37e0ac">L4_vm_vmx_dfl1_regs</a></div><div class="ttdeci">L4_vm_vmx_dfl1_regs</div><div class="ttdoc">Exported VMX capability registers (default to 1 bits).</div><div class="ttdef"><b>Definition</b> <a href="#l00051">__vm-vmx.h:52</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gad1e2ed2059eb6060d19dd6d327b200d2"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gad1e2ed2059eb6060d19dd6d327b200d2">l4_vm_vmx_clear</a></div><div class="ttdeci">void l4_vm_vmx_clear(l4_vm_vmx_vcpu_vmcs_t *vmcs, l4_vm_vmx_vcpu_vmcs_t *dest_vmcs) L4_NOTHROW</div><div class="ttdoc">Save the content from the software VMCS to a different software VMCS.</div><div class="ttdef"><b>Definition</b> <a href="#l00698">__vm-vmx.h:698</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785ca03bbbc09d95db544e5429033803c1cb8"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca03bbbc09d95db544e5429033803c1cb8">L4_VM_VMX_VMCS_MSR_LSTAR</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_MSR_LSTAR</div><div class="ttdoc">VMCS offset of IA32e mode system call target address MSR.</div><div class="ttdef"><b>Definition</b> <a href="#l00092">__vm-vmx.h:92</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785ca126f4b83bdc85be8fd0a9c174052ec20"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca126f4b83bdc85be8fd0a9c174052ec20">L4_VM_VMX_VMCS_NAT_ARG3</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_NAT_ARG3</div><div class="ttdoc">Custom argument passed from kernel to user space.</div><div class="ttdef"><b>Definition</b> <a href="#l00086">__vm-vmx.h:86</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785ca157c37450487720714a648b04c7972a7"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca157c37450487720714a648b04c7972a7">L4_VM_VMX_VMCS_MSR_STAR</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_MSR_STAR</div><div class="ttdoc">VMCS offset of system call target address MSR.</div><div class="ttdef"><b>Definition</b> <a href="#l00098">__vm-vmx.h:98</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785ca1722faecbb122e7743d9d662ccd719a1"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca1722faecbb122e7743d9d662ccd719a1">L4_VM_VMX_VMCS_CR2</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_CR2</div><div class="ttdoc">Software VMCS offset for CR2.</div><div class="ttdef"><b>Definition</b> <a href="#l00078">__vm-vmx.h:78</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785ca57f0b04a87627b4aa602bf620c3b7d6d"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca57f0b04a87627b4aa602bf620c3b7d6d">L4_VM_VMX_VMCS_XCR0</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_XCR0</div><div class="ttdoc">VMCS offset of extended control register XCR0.</div><div class="ttdef"><b>Definition</b> <a href="#l00088">__vm-vmx.h:88</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785ca5e89d3653d174e22f9aa84ad0d2cc6ad"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca5e89d3653d174e22f9aa84ad0d2cc6ad">L4_VM_VMX_VMCS_MSR_TSC_AUX</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_MSR_TSC_AUX</div><div class="ttdoc">VMCS offset of auxiliary TSC signature MSR.</div><div class="ttdef"><b>Definition</b> <a href="#l00096">__vm-vmx.h:96</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785ca5fca506a838eb35d467e8e2048d1c3cc"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca5fca506a838eb35d467e8e2048d1c3cc">L4_VM_VMX_VMCS_NAT_ARG1</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_NAT_ARG1</div><div class="ttdoc">Custom argument passed from kernel to user space.</div><div class="ttdef"><b>Definition</b> <a href="#l00082">__vm-vmx.h:82</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785ca793e5454d287deb65d89275c86ea1a0f"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785ca793e5454d287deb65d89275c86ea1a0f">L4_VM_VMX_VMCS_MSR_KERNEL_GS_BASE</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_MSR_KERNEL_GS_BASE</div><div class="ttdoc">VMCS offset of GS base address swap target MSR.</div><div class="ttdef"><b>Definition</b> <a href="#l00100">__vm-vmx.h:100</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785cac96198ff7340494d61838524e1fa19e3"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cac96198ff7340494d61838524e1fa19e3">L4_VM_VMX_VMCS_NAT_ARG0</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_NAT_ARG0</div><div class="ttdoc">Custom argument passed from kernel to user space.</div><div class="ttdef"><b>Definition</b> <a href="#l00080">__vm-vmx.h:80</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785cac9f38753b92322061c87c5670048652d"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cac9f38753b92322061c87c5670048652d">L4_VM_VMX_VMCS_NAT_ARG2</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_NAT_ARG2</div><div class="ttdoc">Custom argument passed from kernel to user space.</div><div class="ttdef"><b>Definition</b> <a href="#l00084">__vm-vmx.h:84</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785cae97d93178451a288d72f66f8ab528131"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785cae97d93178451a288d72f66f8ab528131">L4_VM_VMX_VMCS_MSR_SYSCALL_MASK</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_MSR_SYSCALL_MASK</div><div class="ttdoc">VMCS offset of system call flag mask MSR.</div><div class="ttdef"><b>Definition</b> <a href="#l00090">__vm-vmx.h:90</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga27f1514d76d058f2f730bb96292f785caf3b8a516ed42738ef71980a5260c9d95"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga27f1514d76d058f2f730bb96292f785caf3b8a516ed42738ef71980a5260c9d95">L4_VM_VMX_VMCS_MSR_CSTAR</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_MSR_CSTAR</div><div class="ttdoc">VMCS offset of IA32 mode system call target address MSR.</div><div class="ttdef"><b>Definition</b> <a href="#l00094">__vm-vmx.h:94</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba0552ed8e38d99b31ba45eac8d6fc0c8c"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba0552ed8e38d99b31ba45eac8d6fc0c8c">L4_VM_VMX_TRUE_PROCBASED_CTLS_REG</a></div><div class="ttdeci">@ L4_VM_VMX_TRUE_PROCBASED_CTLS_REG</div><div class="ttdoc">True processor based control caps.</div><div class="ttdef"><b>Definition</b> <a href="#l00032">__vm-vmx.h:32</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba082e9155e7de267701c1d654596117e2"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba082e9155e7de267701c1d654596117e2">L4_VM_VMX_MISC_REG</a></div><div class="ttdeci">@ L4_VM_VMX_MISC_REG</div><div class="ttdoc">Misc caps.</div><div class="ttdef"><b>Definition</b> <a href="#l00035">__vm-vmx.h:35</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba16eb83d82eb9a3ec7966901322aec71a"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba16eb83d82eb9a3ec7966901322aec71a">L4_VM_VMX_PROCBASED_CTLS2_REG</a></div><div class="ttdeci">@ L4_VM_VMX_PROCBASED_CTLS2_REG</div><div class="ttdoc">Processor based control 2 caps.</div><div class="ttdef"><b>Definition</b> <a href="#l00041">__vm-vmx.h:41</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba171dd49d3e11f483b7a12e4e0a0168f5"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba171dd49d3e11f483b7a12e4e0a0168f5">L4_VM_VMX_EPT_VPID_CAP_REG</a></div><div class="ttdeci">@ L4_VM_VMX_EPT_VPID_CAP_REG</div><div class="ttdoc">EPT and VPID caps.</div><div class="ttdef"><b>Definition</b> <a href="#l00042">__vm-vmx.h:42</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba3163ab09616fe3b1a0732f2381231df1"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba3163ab09616fe3b1a0732f2381231df1">L4_VM_VMX_CR4_FIXED1_REG</a></div><div class="ttdeci">@ L4_VM_VMX_CR4_FIXED1_REG</div><div class="ttdoc">Fixed to 1 bits of CR4.</div><div class="ttdef"><b>Definition</b> <a href="#l00039">__vm-vmx.h:39</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba47cd504bdaf249586ff6da19fb10f7d0"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba47cd504bdaf249586ff6da19fb10f7d0">L4_VM_VMX_NUM_CAPS_REGS</a></div><div class="ttdeci">@ L4_VM_VMX_NUM_CAPS_REGS</div><div class="ttdoc">Total number of VMX capability registers.</div><div class="ttdef"><b>Definition</b> <a href="#l00044">__vm-vmx.h:44</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba55f1e528efc063abddfc09021465f9d2"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba55f1e528efc063abddfc09021465f9d2">L4_VM_VMX_CR4_FIXED0_REG</a></div><div class="ttdeci">@ L4_VM_VMX_CR4_FIXED0_REG</div><div class="ttdoc">Fixed to 0 bits of CR4.</div><div class="ttdef"><b>Definition</b> <a href="#l00038">__vm-vmx.h:38</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba6fdf006dac24ed0f259d93b454343257"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba6fdf006dac24ed0f259d93b454343257">L4_VM_VMX_TRUE_ENTRY_CTLS_REG</a></div><div class="ttdeci">@ L4_VM_VMX_TRUE_ENTRY_CTLS_REG</div><div class="ttdoc">True entry control caps.</div><div class="ttdef"><b>Definition</b> <a href="#l00034">__vm-vmx.h:34</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba77a0b80d38acd967c76f220f4d1f901b"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba77a0b80d38acd967c76f220f4d1f901b">L4_VM_VMX_NESTED_REVISION</a></div><div class="ttdeci">@ L4_VM_VMX_NESTED_REVISION</div><div class="ttdoc">Nested VMCS revision.</div><div class="ttdef"><b>Definition</b> <a href="#l00043">__vm-vmx.h:43</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71ba9ca46e74427b06911cd3056ddc56eab0"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71ba9ca46e74427b06911cd3056ddc56eab0">L4_VM_VMX_CR0_FIXED1_REG</a></div><div class="ttdeci">@ L4_VM_VMX_CR0_FIXED1_REG</div><div class="ttdoc">Fixed to 1 bits of CR0.</div><div class="ttdef"><b>Definition</b> <a href="#l00037">__vm-vmx.h:37</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71baaa028615540bf577bc3c0bf5fde839b8"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71baaa028615540bf577bc3c0bf5fde839b8">L4_VM_VMX_CR0_FIXED0_REG</a></div><div class="ttdeci">@ L4_VM_VMX_CR0_FIXED0_REG</div><div class="ttdoc">Fixed to 0 bits of CR0.</div><div class="ttdef"><b>Definition</b> <a href="#l00036">__vm-vmx.h:36</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71bac56a4e672919d7429acdb261dc1f7d56"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bac56a4e672919d7429acdb261dc1f7d56">L4_VM_VMX_VMCS_ENUM_REG</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_ENUM_REG</div><div class="ttdoc">VMCS enumeration info.</div><div class="ttdef"><b>Definition</b> <a href="#l00040">__vm-vmx.h:40</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71bacaea2c77c13fe074e4f3b3fdb39f54dc"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bacaea2c77c13fe074e4f3b3fdb39f54dc">L4_VM_VMX_TRUE_EXIT_CTLS_REG</a></div><div class="ttdeci">@ L4_VM_VMX_TRUE_EXIT_CTLS_REG</div><div class="ttdoc">True exit control caps.</div><div class="ttdef"><b>Definition</b> <a href="#l00033">__vm-vmx.h:33</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71bada1cdf5ff0a078136094cfbac54c4929"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71bada1cdf5ff0a078136094cfbac54c4929">L4_VM_VMX_TRUE_PINBASED_CTLS_REG</a></div><div class="ttdeci">@ L4_VM_VMX_TRUE_PINBASED_CTLS_REG</div><div class="ttdoc">True pin-based control caps.</div><div class="ttdef"><b>Definition</b> <a href="#l00031">__vm-vmx.h:31</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga7f887612340fb99adf3ef179d558d71baeb5e889bff07525d90f96b4ea1e95a6b"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga7f887612340fb99adf3ef179d558d71baeb5e889bff07525d90f96b4ea1e95a6b">L4_VM_VMX_BASIC_REG</a></div><div class="ttdeci">@ L4_VM_VMX_BASIC_REG</div><div class="ttdoc">Basic VMX capabilities.</div><div class="ttdef"><b>Definition</b> <a href="#l00030">__vm-vmx.h:30</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga9169c2239af134b86c38ca1c539311dda1a10cf9d323c9efcc7b7d08c9ebec851"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311dda1a10cf9d323c9efcc7b7d08c9ebec851">L4_VM_VMX_VMCS_SIZE_VALUES</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_SIZE_VALUES</div><div class="ttdoc">Size of the software VMCS values member.</div><div class="ttdef"><b>Definition</b> <a href="#l00173">__vm-vmx.h:173</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_gga9169c2239af134b86c38ca1c539311ddaf47978797114b595d5922991d7731e01"><div class="ttname"><a href="group__l4__vm__vmx__api.html#gga9169c2239af134b86c38ca1c539311ddaf47978797114b595d5922991d7731e01">L4_VM_VMX_VMCS_SIZE_DIRTY_BITMAP</a></div><div class="ttdeci">@ L4_VM_VMX_VMCS_SIZE_DIRTY_BITMAP</div><div class="ttdoc">Size of the software VMCS dirty bitmap member.</div><div class="ttdef"><b>Definition</b> <a href="#l00175">__vm-vmx.h:175</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ggac5a7a61aec9e350c19bd87420f37e0aca688c05396a1a2f019988a58fbabd31c1"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0aca688c05396a1a2f019988a58fbabd31c1">L4_VM_VMX_ENTRY_CTLS_DFL1_REG</a></div><div class="ttdeci">@ L4_VM_VMX_ENTRY_CTLS_DFL1_REG</div><div class="ttdoc">Default 1 bits in entry controls.</div><div class="ttdef"><b>Definition</b> <a href="#l00056">__vm-vmx.h:56</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ggac5a7a61aec9e350c19bd87420f37e0aca8ac4e7068474b8f52dbf5311a0e0258c"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0aca8ac4e7068474b8f52dbf5311a0e0258c">L4_VM_VMX_EXIT_CTLS_DFL1_REG</a></div><div class="ttdeci">@ L4_VM_VMX_EXIT_CTLS_DFL1_REG</div><div class="ttdoc">Default 1 bits in exit controls.</div><div class="ttdef"><b>Definition</b> <a href="#l00055">__vm-vmx.h:55</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ggac5a7a61aec9e350c19bd87420f37e0acaa72109ccf2588608ad97d601b3f15e35"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acaa72109ccf2588608ad97d601b3f15e35">L4_VM_VMX_PINBASED_CTLS_DFL1_REG</a></div><div class="ttdeci">@ L4_VM_VMX_PINBASED_CTLS_DFL1_REG</div><div class="ttdoc">Default 1 bits in pin-based controls.</div><div class="ttdef"><b>Definition</b> <a href="#l00053">__vm-vmx.h:53</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ggac5a7a61aec9e350c19bd87420f37e0acab25250e6c3ab5a176d73925708abbad6"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acab25250e6c3ab5a176d73925708abbad6">L4_VM_VMX_NUM_DFL1_REGS</a></div><div class="ttdeci">@ L4_VM_VMX_NUM_DFL1_REGS</div><div class="ttdoc">Total number of default on registers.</div><div class="ttdef"><b>Definition</b> <a href="#l00057">__vm-vmx.h:57</a></div></div>
<div class="ttc" id="agroup__l4__vm__vmx__api_html_ggac5a7a61aec9e350c19bd87420f37e0acaf7a9ade10e34f67119a63fbacc3162fb"><div class="ttname"><a href="group__l4__vm__vmx__api.html#ggac5a7a61aec9e350c19bd87420f37e0acaf7a9ade10e34f67119a63fbacc3162fb">L4_VM_VMX_PROCBASED_CTLS_DFL1_REG</a></div><div class="ttdeci">@ L4_VM_VMX_PROCBASED_CTLS_DFL1_REG</div><div class="ttdoc">Default 1 bits in processor-based controls.</div><div class="ttdef"><b>Definition</b> <a href="#l00054">__vm-vmx.h:54</a></div></div>
<div class="ttc" id="agroup__l4sys__defines_html_ga362dfa378e662dd04f710a23fc7ea931"><div class="ttname"><a href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></div><div class="ttdeci">#define L4_NOTHROW</div><div class="ttdoc">Mark a function declaration and definition as never throwing an exception.</div><div class="ttdef"><b>Definition</b> <a href="compiler_8h_source.html#l00161">compiler.h:161</a></div></div>
<div class="ttc" id="agroup__l4sys__defines_html_ga427377e23e3680dc178035d391b2ca45"><div class="ttname"><a href="group__l4sys__defines.html#ga427377e23e3680dc178035d391b2ca45">L4_INLINE</a></div><div class="ttdeci">#define L4_INLINE</div><div class="ttdoc">L4 Inline function attribute.</div><div class="ttdef"><b>Definition</b> <a href="compiler_8h_source.html#l00051">compiler.h:51</a></div></div>
<div class="ttc" id="astructl4__vcpu__state__t_html"><div class="ttname"><a href="structl4__vcpu__state__t.html">l4_vcpu_state_t</a></div><div class="ttdoc">State of a vCPU.</div><div class="ttdef"><b>Definition</b> <a href="sys_2vcpu_8h_source.html#l00075">vcpu.h:76</a></div></div>
<div class="ttc" id="astructl4__vm__vmx__vcpu__infos__t_html"><div class="ttname"><a href="structl4__vm__vmx__vcpu__infos__t.html">l4_vm_vmx_vcpu_infos_t</a></div><div class="ttdoc">VMX information members.</div><div class="ttdef"><b>Definition</b> <a href="#l00239">__vm-vmx.h:240</a></div></div>
<div class="ttc" id="astructl4__vm__vmx__vcpu__infos__t_html_a168647389b9b0128f543e182f37ca8a7"><div class="ttname"><a href="structl4__vm__vmx__vcpu__infos__t.html#a168647389b9b0128f543e182f37ca8a7">l4_vm_vmx_vcpu_infos_t::caps</a></div><div class="ttdeci">l4_uint64_t caps[L4_VM_VMX_NUM_CAPS_REGS]</div><div class="ttdoc">Exported VMX capability registers. See L4_vm_vmx_caps_regs.</div><div class="ttdef"><b>Definition</b> <a href="#l00242">__vm-vmx.h:242</a></div></div>
<div class="ttc" id="astructl4__vm__vmx__vcpu__infos__t_html_a265db33e18f6cfa39143da5e4a525ff6"><div class="ttname"><a href="structl4__vm__vmx__vcpu__infos__t.html#a265db33e18f6cfa39143da5e4a525ff6">l4_vm_vmx_vcpu_infos_t::dfl1</a></div><div class="ttdeci">l4_uint32_t dfl1[L4_VM_VMX_NUM_DFL1_REGS]</div><div class="ttdoc">Exported VMX capability registers (default to 1 bits).</div><div class="ttdef"><b>Definition</b> <a href="#l00246">__vm-vmx.h:246</a></div></div>
<div class="ttc" id="astructl4__vm__vmx__vcpu__state__t_html"><div class="ttname"><a href="structl4__vm__vmx__vcpu__state__t.html">l4_vm_vmx_vcpu_state_t</a></div><div class="ttdoc">VMX vCPU state.</div><div class="ttdef"><b>Definition</b> <a href="#l00267">__vm-vmx.h:268</a></div></div>
<div class="ttc" id="astructl4__vm__vmx__vcpu__vmcs__t_html"><div class="ttname"><a href="structl4__vm__vmx__vcpu__vmcs__t.html">l4_vm_vmx_vcpu_vmcs_t</a></div><div class="ttdoc">VMX software VMCS.</div><div class="ttdef"><b>Definition</b> <a href="#l00205">__vm-vmx.h:206</a></div></div>
<div class="ttc" id="astructl4__vmx__offset__table__t_html"><div class="ttname"><a href="structl4__vmx__offset__table__t.html">l4_vmx_offset_table_t</a></div><div class="ttdoc">Software VMCS field offset table.</div><div class="ttdef"><b>Definition</b> <a href="#l00155">__vm-vmx.h:156</a></div></div>
<div class="ttc" id="asys_2vcpu_8h_html"><div class="ttname"><a href="sys_2vcpu_8h.html">vcpu.h</a></div><div class="ttdoc">vCPU API</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>l4</b></li><li class="navelem"><b>sys</b></li><li class="navelem"><b>__vm-vmx.h</b></li>
<li class="footer">Generated on <span class="timestamp"></span> for L4Re Operating System Framework by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
</ul>
</div>
</body>
</html>