<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a></h2><divid="sidebar-vars"data-name="frame_alloc"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a></h2><divid="sidebar-vars"data-name="frame_allocator_test"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a></h2><divid="sidebar-vars"data-name="frame_dealloc"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a></h2><divid="sidebar-vars"data-name="init_frame_allocator"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Module frame_allocator</a></h2><divclass="sidebar-elems"><divclass="block items"><ul><li><ahref="#structs">Structs</a></li><li><ahref="#traits">Traits</a></li><li><ahref="#functions">Functions</a></li><li><ahref="#types">Type Definitions</a></li></ul></div><divid="sidebar-vars"data-name="frame_allocator"data-ty="mod"data-relpath="./"></div><scriptdefersrc="./sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Module <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><aclass="mod"href="#">frame_allocator</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/mm/frame_allocator.rs.html#1-131" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="structs"class="small-section-header"><ahref="#structs">Structs</a></h2>
<h1class="fqn"><spanclass="in-band">Module <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><aclass="mod"href="#">frame_allocator</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/mm/frame_allocator.rs.html#1-133" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="structs"class="small-section-header"><ahref="#structs">Structs</a></h2>
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Struct FRAME_ALLOCATOR</a></h2><divclass="sidebar-elems"><divclass="block items"><h3class="sidebar-title"><ahref="#fields">Fields</a></h3><divclass="sidebar-links"><ahref="#structfield.__private_field">__private_field</a></div><h3class="sidebar-title"><ahref="#deref-methods-UPIntrFreeCell%3CStackFrameAllocator%3E">Methods from Deref<Target=UPIntrFreeCell<StackFrameAllocator>></a></h3><divclass="sidebar-links"><ahref="#method.exclusive_access">exclusive_access</a><ahref="#method.exclusive_session">exclusive_session</a></div><h3class="sidebar-title"><ahref="#trait-implementations">Trait Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-Deref">Deref</a><ahref="#impl-LazyStatic">LazyStatic</a></div><h3class="sidebar-title"><ahref="#synthetic-implementations">Auto Trait Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-RefUnwindSafe">RefUnwindSafe</a><ahref="#impl-Send">Send</a><ahref="#impl-Sync">Sync</a><ahref="#impl-Unpin">Unpin</a><ahref="#impl-UnwindSafe">UnwindSafe</a></div><h3class="sidebar-title"><ahref="#blanket-implementations">Blanket Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-Any">Any</a><ahref="#impl-Borrow%3CT%3E">Borrow<T></a><ahref="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><ahref="#impl-From%3CT%3E">From<T></a><ahref="#impl-Into%3CU%3E">Into<U></a><ahref="#impl-TryFrom%3CU%3E">TryFrom<U></a><ahref="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a></h2><divid="sidebar-vars"data-name="FRAME_ALLOCATOR"data-ty="struct"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Struct <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a>::<wbr><aclass="struct"href="#">FRAME_ALLOCATOR</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/mm/frame_allocator.rs.html#85-90" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust struct"><code>pub struct FRAME_ALLOCATOR {
<h1class="fqn"><spanclass="in-band">Struct <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a>::<wbr><aclass="struct"href="#">FRAME_ALLOCATOR</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/mm/frame_allocator.rs.html#87-92" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust struct"><code>pub struct FRAME_ALLOCATOR {
}</code></pre></div><h2id="fields"class="fields small-section-header">Fields<ahref="#fields"class="anchor"></a></h2><spanid="structfield.__private_field"class="structfield small-section-header"><ahref="#structfield.__private_field"class="anchor field"></a><code>__private_field: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.unit.html">()</a></code></span><h2id="deref-methods-UPIntrFreeCell%3CStackFrameAllocator%3E"class="small-section-header"><span>Methods from <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html"title="trait core::ops::deref::Deref">Deref</a><Target = <aclass="struct"href="../../sync/up/struct.UPIntrFreeCell.html"title="struct os::sync::up::UPIntrFreeCell">UPIntrFreeCell</a><<aclass="struct"href="struct.StackFrameAllocator.html"title="struct os::mm::frame_allocator::StackFrameAllocator">StackFrameAllocator</a>>></span><ahref="#deref-methods-UPIntrFreeCell%3CStackFrameAllocator%3E"class="anchor"></a></h2><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.exclusive_access"class="method has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/sync/up.rs.html#106-109"title="goto source code">source</a></div><ahref="#method.exclusive_access"class="anchor"></a><h4class="code-header">pub fn <ahref="#method.exclusive_access"class="fnname">exclusive_access</a>(&self) -><aclass="struct"href="../../sync/up/struct.UPIntrRefMut.html"title="struct os::sync::up::UPIntrRefMut">UPIntrRefMut</a><'_, T></h4></div></summary><divclass="docblock"><p>Panic if the data has been borrowed.</p>
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Trait FrameAllocator</a></h2><divclass="sidebar-elems"><divclass="block items"><h3class="sidebar-title"><ahref="#required-methods">Required Methods</a></h3><divclass="sidebar-links"><ahref="#tymethod.alloc">alloc</a><ahref="#tymethod.dealloc">dealloc</a><ahref="#tymethod.new">new</a></div><h3class="sidebar-title"><ahref="#implementors">Implementors</a></h3></div><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a></h2><divid="sidebar-vars"data-name="FrameAllocator"data-ty="trait"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Trait <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a>::<wbr><aclass="trait"href="#">FrameAllocator</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/mm/frame_allocator.rs.html#35-39" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust trait"><code>trait FrameAllocator {
<h1class="fqn"><spanclass="in-band">Trait <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a>::<wbr><aclass="trait"href="#">FrameAllocator</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/mm/frame_allocator.rs.html#37-41" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust trait"><code>trait FrameAllocator {
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Type Definition FrameAllocatorImpl</a></h2><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">mm</a>::<wbr><ahref="index.html">frame_allocator</a></h2><divid="sidebar-vars"data-name="FrameAllocatorImpl"data-ty="type"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">syscall</a>::<wbr><ahref="index.html">process</a></h2><divid="sidebar-vars"data-name="sys_kill"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">syscall</a>::<wbr><ahref="index.html">process</a></h2><divid="sidebar-vars"data-name="sys_waitpid"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Function <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">syscall</a>::<wbr><ahref="index.html">process</a>::<wbr><aclass="fn"href="#">sys_waitpid</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/syscall/process.rs.html#79-112" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust fn"><code>pub fn sys_waitpid(pid: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a>, exit_code_ptr: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*mut </a><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.i32.html">i32</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a></code></pre></div><detailsclass="rustdoc-toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>If there is not a child process whose pid is same as given, return -1.
<h1class="fqn"><spanclass="in-band">Function <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">syscall</a>::<wbr><ahref="index.html">process</a>::<wbr><aclass="fn"href="#">sys_waitpid</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/syscall/process.rs.html#79-115" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust fn"><code>pub fn sys_waitpid(pid: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a>, exit_code_ptr: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*mut </a><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.i32.html">i32</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a></code></pre></div><detailsclass="rustdoc-toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>If there is not a child process whose pid is same as given, return -1.
Else if there is a child process but it is still running, return -2.</p>
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Module process</a></h2><divclass="sidebar-elems"><divclass="block items"><ul><li><ahref="#functions">Functions</a></li></ul></div><divid="sidebar-vars"data-name="process"data-ty="mod"data-relpath="./"></div><scriptdefersrc="./sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Module <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">syscall</a>::<wbr><aclass="mod"href="#">process</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/syscall/process.rs.html#1-126" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="functions"class="small-section-header"><ahref="#functions">Functions</a></h2>
<h1class="fqn"><spanclass="in-band">Module <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">syscall</a>::<wbr><aclass="mod"href="#">process</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/syscall/process.rs.html#1-129" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="functions"class="small-section-header"><ahref="#functions">Functions</a></h2>
<divclass="item-table"><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.sys_exec.html"title="os::syscall::process::sys_exec fn">sys_exec</a></div><divclass="item-right docblock-short"></div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.sys_exit.html"title="os::syscall::process::sys_exit fn">sys_exit</a></div><divclass="item-right docblock-short"></div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.sys_fork.html"title="os::syscall::process::sys_fork fn">sys_fork</a></div><divclass="item-right docblock-short"></div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.sys_get_time.html"title="os::syscall::process::sys_get_time fn">sys_get_time</a></div><divclass="item-right docblock-short"></div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.sys_getpid.html"title="os::syscall::process::sys_getpid fn">sys_getpid</a></div><divclass="item-right docblock-short"></div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.sys_kill.html"title="os::syscall::process::sys_kill fn">sys_kill</a></div><divclass="item-right docblock-short"></div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.sys_waitpid.html"title="os::syscall::process::sys_waitpid fn">sys_waitpid</a></div><divclass="item-right docblock-short"><p>If there is not a child process whose pid is same as given, return -1.
Else if there is a child process but it is still running, return -2.</p>
<noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../index.html">os</a>::<wbr><ahref="index.html">task</a></h2><divid="sidebar-vars"data-name="add_initproc"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../os/index.html"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../index.html">os</a>::<wbr><ahref="index.html">task</a></h2><divid="sidebar-vars"data-name="check_signals_of_current"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../os/index.html"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../index.html">os</a>::<wbr><ahref="index.html">task</a></h2><divid="sidebar-vars"data-name="current_add_signal"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../os/index.html"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../index.html">os</a>::<wbr><ahref="index.html">task</a></h2><divid="sidebar-vars"data-name="exit_current_and_run_next"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../os/index.html"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a></h2><divid="sidebar-vars"data-name="kernel_stack_position"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Function <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a>::<wbr><aclass="fn"href="#">kernel_stack_position</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/task/id.rs.html#69-75" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust fn"><code>pub fn kernel_stack_position(kstack_id: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.tuple.html">(</a><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>, <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.tuple.html">)</a></code></pre></div><detailsclass="rustdoc-toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>Return (bottom, top) of a kernel stack in kernel space.</p>
<h1class="fqn"><spanclass="in-band">Function <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a>::<wbr><aclass="fn"href="#">kernel_stack_position</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/task/id.rs.html#71-77" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust fn"><code>pub fn kernel_stack_position(kstack_id: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.tuple.html">(</a><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>, <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.tuple.html">)</a></code></pre></div><detailsclass="rustdoc-toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>Return (bottom, top) of a kernel stack in kernel space.</p>
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a></h2><divid="sidebar-vars"data-name="kstack_alloc"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a></h2><divid="sidebar-vars"data-name="trap_cx_bottom_from_tid"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><divclass="sidebar-elems"><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a></h2><divid="sidebar-vars"data-name="ustack_bottom_from_tid"data-ty="fn"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Module id</a></h2><divclass="sidebar-elems"><divclass="block items"><ul><li><ahref="#structs">Structs</a></li><li><ahref="#functions">Functions</a></li></ul></div><divid="sidebar-vars"data-name="id"data-ty="mod"data-relpath="./"></div><scriptdefersrc="./sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Module <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><aclass="mod"href="#">id</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/task/id.rs.html#1-246" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="structs"class="small-section-header"><ahref="#structs">Structs</a></h2>
<h1class="fqn"><spanclass="in-band">Module <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><aclass="mod"href="#">id</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/task/id.rs.html#1-252" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="structs"class="small-section-header"><ahref="#structs">Structs</a></h2>
<divclass="item-table"><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.kernel_stack_position.html"title="os::task::id::kernel_stack_position fn">kernel_stack_position</a></div><divclass="item-right docblock-short"><p>Return (bottom, top) of a kernel stack in kernel space.</p>
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Struct KernelStack</a></h2><divclass="sidebar-elems"><divclass="block items"><h3class="sidebar-title"><ahref="#fields">Tuple Fields</a></h3><h3class="sidebar-title"><ahref="#implementations">Methods</a></h3><divclass="sidebar-links"><ahref="#method.get_top">get_top</a><ahref="#method.push_on_top">push_on_top</a></div><h3class="sidebar-title"><ahref="#trait-implementations">Trait Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-Drop">Drop</a></div><h3class="sidebar-title"><ahref="#synthetic-implementations">Auto Trait Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-RefUnwindSafe">RefUnwindSafe</a><ahref="#impl-Send">Send</a><ahref="#impl-Sync">Sync</a><ahref="#impl-Unpin">Unpin</a><ahref="#impl-UnwindSafe">UnwindSafe</a></div><h3class="sidebar-title"><ahref="#blanket-implementations">Blanket Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-Any">Any</a><ahref="#impl-Borrow%3CT%3E">Borrow<T></a><ahref="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><ahref="#impl-From%3CT%3E">From<T></a><ahref="#impl-Into%3CU%3E">Into<U></a><ahref="#impl-TryFrom%3CU%3E">TryFrom<U></a><ahref="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a></h2><divid="sidebar-vars"data-name="KernelStack"data-ty="struct"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Struct PidHandle</a></h2><divclass="sidebar-elems"><divclass="block items"><h3class="sidebar-title"><ahref="#fields">Tuple Fields</a></h3><h3class="sidebar-title"><ahref="#trait-implementations">Trait Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-Drop">Drop</a></div><h3class="sidebar-title"><ahref="#synthetic-implementations">Auto Trait Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-RefUnwindSafe">RefUnwindSafe</a><ahref="#impl-Send">Send</a><ahref="#impl-Sync">Sync</a><ahref="#impl-Unpin">Unpin</a><ahref="#impl-UnwindSafe">UnwindSafe</a></div><h3class="sidebar-title"><ahref="#blanket-implementations">Blanket Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-Any">Any</a><ahref="#impl-Borrow%3CT%3E">Borrow<T></a><ahref="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><ahref="#impl-From%3CT%3E">From<T></a><ahref="#impl-Into%3CU%3E">Into<U></a><ahref="#impl-TryFrom%3CU%3E">TryFrom<U></a><ahref="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><h2class="location">Other items in<br><ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a></h2><divid="sidebar-vars"data-name="PidHandle"data-ty="struct"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Struct <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a>::<wbr><aclass="struct"href="#">PidHandle</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/task/id.rs.html#56"title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust struct"><code>pub struct PidHandle(pub <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>);</code></pre></div><h2id="fields"class="fields small-section-header">Tuple Fields<ahref="#fields"class="anchor"></a></h2><spanid="structfield.0"class="structfield small-section-header"><ahref="#structfield.0"class="anchor field"></a><code>0: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></code></span><h2id="trait-implementations"class="small-section-header">Trait Implementations<ahref="#trait-implementations"class="anchor"></a></h2><divid="trait-implementations-list"><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-Drop"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/task/id.rs.html#62-66" title="goto source code">source</a></div><ahref="#impl-Drop"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html"title="trait core::ops::drop::Drop">Drop</a> for <aclass="struct"href="struct.PidHandle.html"title="struct os::task::id::PidHandle">PidHandle</a></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.drop"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/task/id.rs.html#63-65" title="goto source code">source</a></div><ahref="#method.drop"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop"class="fnname">drop</a>(&mut self)</h4></div></summary><divclass='docblock'><p>Executes the destructor for this type. <ahref="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></p>
<h1class="fqn"><spanclass="in-band">Struct <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><ahref="index.html">id</a>::<wbr><aclass="struct"href="#">PidHandle</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/task/id.rs.html#56"title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust struct"><code>pub struct PidHandle(pub <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>);</code></pre></div><h2id="fields"class="fields small-section-header">Tuple Fields<ahref="#fields"class="anchor"></a></h2><spanid="structfield.0"class="structfield small-section-header"><ahref="#structfield.0"class="anchor field"></a><code>0: <aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></code></span><h2id="trait-implementations"class="small-section-header">Trait Implementations<ahref="#trait-implementations"class="anchor"></a></h2><divid="trait-implementations-list"><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-Drop"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/task/id.rs.html#62-68" title="goto source code">source</a></div><ahref="#impl-Drop"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html"title="trait core::ops::drop::Drop">Drop</a> for <aclass="struct"href="struct.PidHandle.html"title="struct os::task::id::PidHandle">PidHandle</a></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.drop"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/task/id.rs.html#63-67" title="goto source code">source</a></div><ahref="#method.drop"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop"class="fnname">drop</a>(&mut self)</h4></div></summary><divclass='docblock'><p>Executes the destructor for this type. <ahref="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></p>
</div></details></div></details></div><h2id="synthetic-implementations"class="small-section-header">Auto Trait Implementations<ahref="#synthetic-implementations"class="anchor"></a></h2><divid="synthetic-implementations-list"><divid="impl-RefUnwindSafe"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-RefUnwindSafe"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html"title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <aclass="struct"href="struct.PidHandle.html"title="struct os::task::id::PidHandle">PidHandle</a></h3></div><divid="impl-Send"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Send"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> for <aclass="struct"href="struct.PidHandle.html"title="struct os::task::id::PidHandle">PidHandle</a></h3></div><divid="impl-Sync"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Sync"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a> for <aclass="struct"href="struct.PidHandle.html"title="struct os::task::id::PidHandle">PidHandle</a></h3></div><divid="impl-Unpin"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Unpin"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html"title="trait core::marker::Unpin">Unpin</a> for <aclass="struct"href="struct.PidHandle.html"title="struct os::task::id::PidHandle">PidHandle</a></h3></div><divid="impl-UnwindSafe"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-UnwindSafe"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html"title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <aclass="struct"href="struct.PidHandle.html"title="struct os::task::id::PidHandle">PidHandle</a></h3></div></div><h2id="blanket-implementations"class="small-section-header">Blanket Implementations<ahref="#blanket-implementations"class="anchor"></a></h2><divid="blanket-implementations-list"><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-Any"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136"title="goto source code">source</a></div><ahref="#impl-Any"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> for T <spanclass="where fmt-newline">where<br> T: 'static + ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.type_id"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133"title="goto source code">source</a></div><ahref="#method.type_id"class="anchor"></a><h4class="code-header">pub fn <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id"class="fnname">type_id</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html"title="struct core::any::TypeId">TypeId</a></h4></div></summary><divclass='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-Borrow%3CT%3E"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#209-214"title="goto source code">source</a></div><ahref="#impl-Borrow%3CT%3E"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><T> for T <spanclass="where fmt-newline">where<br> T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.borrow"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211"title="goto source code">source</a></div><ahref="#method.borrow"class="anchor"></a><h4class="code-header">pub fn <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow"class="fnname">borrow</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.reference.html">&</a>T</h4></div></summary><divclass='docblock'><p>Immutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-BorrowMut%3CT%3E"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-222"title="goto source code">source</a></div><ahref="#impl-BorrowMut%3CT%3E"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html"title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T <spanclass="where fmt-newline">where<br> T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.borrow_mut"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219"title="goto source code">source</a></div><ahref="#method.borrow_mut"class="anchor"></a><h4class="code-header">pub fn <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut"class="fnname">borrow_mut</a>(&mut self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.reference.html">&mut </a>T</h4></div></summary><divclass='docblock'><p>Mutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
<noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg"></head><bodyclass="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Module process</a></h2><divclass="sidebar-elems"><divclass="block items"><ul><li><ahref="#structs">Structs</a></li></ul></div><divid="sidebar-vars"data-name="process"data-ty="mod"data-relpath="./"></div><scriptdefersrc="./sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../../os/index.html"><imgclass="rust-logo"src="../../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Module <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><aclass="mod"href="#">process</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/task/process.rs.html#1-284" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="structs"class="small-section-header"><ahref="#structs">Structs</a></h2>
<h1class="fqn"><spanclass="in-band">Module <ahref="../../index.html">os</a>::<wbr><ahref="../index.html">task</a>::<wbr><aclass="mod"href="#">process</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../../src/os/task/process.rs.html#1-290" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="structs"class="small-section-header"><ahref="#structs">Structs</a></h2>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.fork"class="method has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/task/process.rs.html#202-279" title="goto source code">source</a></div><ahref="#method.fork"class="anchor"></a><h4class="code-header">pub fn <ahref="#method.fork"class="fnname">fork</a>(self: &<aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"title="struct alloc::sync::Arc">Arc</a><Self>) -><aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"title="struct alloc::sync::Arc">Arc</a><Self></h4></div></summary><divclass="docblock"><p>Only support processes with a single thread.</p>
</div></details><divid="method.getpid"class="method has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/task/process.rs.html#281-283" title="goto source code">source</a></div><ahref="#method.getpid"class="anchor"></a><h4class="code-header">pub fn <ahref="#method.getpid"class="fnname">getpid</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></h4></div></div></details><h2id="synthetic-implementations"class="small-section-header">Auto Trait Implementations<ahref="#synthetic-implementations"class="anchor"></a></h2><divid="synthetic-implementations-list"><divid="impl-RefUnwindSafe"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-RefUnwindSafe"class="anchor"></a><h3class="code-header in-band">impl !<aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html"title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div><divid="impl-Send"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Send"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div><divid="impl-Sync"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Sync"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div><divid="impl-Unpin"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Unpin"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html"title="trait core::marker::Unpin">Unpin</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div><divid="impl-UnwindSafe"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-UnwindSafe"class="anchor"></a><h3class="code-header in-band">impl !<aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html"title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div></div><h2id="blanket-implementations"class="small-section-header">Blanket Implementations<ahref="#blanket-implementations"class="anchor"></a></h2><divid="blanket-implementations-list"><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-Any"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136"title="goto source code">source</a></div><ahref="#impl-Any"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> for T <spanclass="where fmt-newline">where<br> T: 'static + ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.type_id"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133"title="goto source code">source</a></div><ahref="#method.type_id"class="anchor"></a><h4class="code-header">pub fn <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id"class="fnname">type_id</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html"title="struct core::any::TypeId">TypeId</a></h4></div></summary><divclass='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.fork"class="method has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/task/process.rs.html#208-285" title="goto source code">source</a></div><ahref="#method.fork"class="anchor"></a><h4class="code-header">pub fn <ahref="#method.fork"class="fnname">fork</a>(self: &<aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"title="struct alloc::sync::Arc">Arc</a><Self>) -><aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"title="struct alloc::sync::Arc">Arc</a><Self></h4></div></summary><divclass="docblock"><p>Only support processes with a single thread.</p>
</div></details><divid="method.getpid"class="method has-srclink"><divclass="rightside"><aclass="srclink"href="../../../src/os/task/process.rs.html#287-289" title="goto source code">source</a></div><ahref="#method.getpid"class="anchor"></a><h4class="code-header">pub fn <ahref="#method.getpid"class="fnname">getpid</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></h4></div></div></details><h2id="synthetic-implementations"class="small-section-header">Auto Trait Implementations<ahref="#synthetic-implementations"class="anchor"></a></h2><divid="synthetic-implementations-list"><divid="impl-RefUnwindSafe"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-RefUnwindSafe"class="anchor"></a><h3class="code-header in-band">impl !<aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html"title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div><divid="impl-Send"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Send"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div><divid="impl-Sync"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Sync"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div><divid="impl-Unpin"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-Unpin"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html"title="trait core::marker::Unpin">Unpin</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div><divid="impl-UnwindSafe"class="impl has-srclink"><divclass="rightside"></div><ahref="#impl-UnwindSafe"class="anchor"></a><h3class="code-header in-band">impl !<aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html"title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <aclass="struct"href="struct.ProcessControlBlock.html"title="struct os::task::process::ProcessControlBlock">ProcessControlBlock</a></h3></div></div><h2id="blanket-implementations"class="small-section-header">Blanket Implementations<ahref="#blanket-implementations"class="anchor"></a></h2><divid="blanket-implementations-list"><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-Any"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132-136"title="goto source code">source</a></div><ahref="#impl-Any"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> for T <spanclass="where fmt-newline">where<br> T: 'static + ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.type_id"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#133"title="goto source code">source</a></div><ahref="#method.type_id"class="anchor"></a><h4class="code-header">pub fn <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id"class="fnname">type_id</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html"title="struct core::any::TypeId">TypeId</a></h4></div></summary><divclass='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-Borrow%3CT%3E"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#209-214"title="goto source code">source</a></div><ahref="#impl-Borrow%3CT%3E"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><T> for T <spanclass="where fmt-newline">where<br> T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.borrow"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211"title="goto source code">source</a></div><ahref="#method.borrow"class="anchor"></a><h4class="code-header">pub fn <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow"class="fnname">borrow</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.reference.html">&</a>T</h4></div></summary><divclass='docblock'><p>Immutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><divid="impl-BorrowMut%3CT%3E"class="impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-222"title="goto source code">source</a></div><ahref="#impl-BorrowMut%3CT%3E"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html"title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T <spanclass="where fmt-newline">where<br> T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h3></div></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><divid="method.borrow_mut"class="method trait-impl has-srclink"><divclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219"title="goto source code">source</a></div><ahref="#method.borrow_mut"class="anchor"></a><h4class="code-header">pub fn <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut"class="fnname">borrow_mut</a>(&mut self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/core/primitive.reference.html">&mut </a>T</h4></div></summary><divclass='docblock'><p>Mutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
<noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../favicon.svg"></head><bodyclass="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu"role="button">☰</div><aclass="sidebar-logo"href="../../os/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Struct INITPROC</a></h2><divclass="sidebar-elems"><divclass="block items"><h3class="sidebar-title"><ahref="#fields">Fields</a></h3><divclass="sidebar-links"><ahref="#structfield.__private_field">__private_field</a></div><h3class="sidebar-title"><ahref="#trait-implementations">Trait Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-Deref">Deref</a><ahref="#impl-LazyStatic">LazyStatic</a></div><h3class="sidebar-title"><ahref="#synthetic-implementations">Auto Trait Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-RefUnwindSafe">RefUnwindSafe</a><ahref="#impl-Send">Send</a><ahref="#impl-Sync">Sync</a><ahref="#impl-Unpin">Unpin</a><ahref="#impl-UnwindSafe">UnwindSafe</a></div><h3class="sidebar-title"><ahref="#blanket-implementations">Blanket Implementations</a></h3><divclass="sidebar-links"><ahref="#impl-Any">Any</a><ahref="#impl-Borrow%3CT%3E">Borrow<T></a><ahref="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><ahref="#impl-From%3CT%3E">From<T></a><ahref="#impl-Into%3CU%3E">Into<U></a><ahref="#impl-TryFrom%3CU%3E">TryFrom<U></a><ahref="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><h2class="location">Other items in<br><ahref="../index.html">os</a>::<wbr><ahref="index.html">task</a></h2><divid="sidebar-vars"data-name="INITPROC"data-ty="struct"data-relpath=""></div><scriptdefersrc="sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../os/index.html"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="18"height="18"alt="Pick another theme!"src="../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><div>
<inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../settings.html"title="settings"><imgwidth="18"height="18"alt="Change settings"src="../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Struct <ahref="../index.html">os</a>::<wbr><ahref="index.html">task</a>::<wbr><aclass="struct"href="#">INITPROC</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../src/os/task/mod.rs.html#117-124" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust struct"><code>pub struct INITPROC {
<h1class="fqn"><spanclass="in-band">Struct <ahref="../index.html">os</a>::<wbr><ahref="index.html">task</a>::<wbr><aclass="struct"href="#">INITPROC</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../src/os/task/mod.rs.html#129-136" title="goto source code">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust struct"><code>pub struct INITPROC {
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] syscall::process::sys_waitpid(): remove child from PCB's children Vector"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] syscall::process::sys_waitpid(): get child's exit_code and return child pid"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::exit_current_and_run_next(): it's main thread, process should terminate at once"</span>);
<spanclass="comment">// mark this process as a zombie process</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::exit_current_and_run_next(): mark this process as a zombie process"</span>);
<spanclass="comment">// record exit code of main process</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::exit_current_and_run_next(): record exit code in process_inner"</span>);
<spanclass="comment">// move all child processes under init process</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::exit_current_and_run_next(): move all child processes under INITPROC"</span>);
<spanclass="comment">// deallocate user res (including tid/trap_cx/ustack) of all threads</span>
<spanclass="comment">// it has to be done before we dealloc the whole memory_set</span>
<spanclass="comment">// otherwise they will be deallocated twice</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::exit_current_and_run_next(): deallocate user res (tid/trap_cx/ustack) of all threads"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::exit_current_and_run_next(): clear children Vector in process_inner"</span>);
<spanclass="comment">// deallocate other data in user space i.e. program code/data section</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::exit_current_and_run_next(): deallocate code/data in user space"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::new(): build MemorySet, set user_stack_base, set entry_point"</span>);
<spanclass="comment">// memory_set with elf program headers/trampoline/user stack_base addr/entry_point</span>
<spanclass="comment">// create a main thread, we should allocate ustack and trap_cx here</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::new(): create a main thread begin"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::new(): create a main thread: new TCB(alloc kstack, utack & trap_cx...) "</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::new(): create a main thread... start"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::new(): create a main thread: new TCB(alloc kstack, utack & trap_cx...) "</span>);
<spanclass="comment">// prepare trap_cx of main thread</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::new(): create a main thread: set trap_cx(entry_point, ustack_top, k_satp, k_sp, trap_handler) "</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::new(): create a main thread: set trap_cx(entry_point, ustack_top, k_satp, k_sp, trap_handler) "</span>);
<spanclass="comment">// add main thread to scheduler</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::new(): add_task(task): add main thread to scheduler"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::new(): add_task(task): add main thread to scheduler"</span>);
<spanclass="comment">// push arguments on user stack</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::exec(): push arguments on user stack for this thread"</span>);
<spanclass="comment">// create child process pcb</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::fork(): new child PCB with new pid, memory_set, fd_table, ..."</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::fork(): new child PCB with new pid, memory_set, fd_table, ..."</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::fork(): add child link in parent' children Vec"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::fork(): add child link in parent' children Vec"</span>);
<spanclass="comment">// create main thread of child process</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::fork(): TaskControlBlock::new(): create main thread of child process"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::fork(): TaskControlBlock::new(): create main thread of child process"</span>);
<spanclass="comment">// modify kstack_top in trap_cx of this thread</span>
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::fork(): modify child's kstack_top in trap_cx of child"</span>);
<spanclass="macro">kprintln!</span>(<spanclass="string">"[KERN] task::process::PCB::fork(): modify child's kstack_top in trap_cx of child"</span>);