mirror of
https://github.com/rcore-os/rCore-Tutorial-v3.git
synced 2024-11-24 10:26:25 +04:00
deploy: 5b38d93763
This commit is contained in:
parent
4ed863e3a2
commit
1ae263b4ab
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@
|
||||
(function() {var implementors = {};
|
||||
implementors["os"] = [{"text":"impl<'a, T> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html\" title=\"trait core::ops::deref::DerefMut\">DerefMut</a> for <a class=\"struct\" href=\"os/sync/up/struct.UPIntrRefMut.html\" title=\"struct os::sync::up::UPIntrRefMut\">UPIntrRefMut</a><'a, T>","synthetic":false,"types":["os::sync::up::UPIntrRefMut"]}];
|
||||
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
@ -1,3 +1,3 @@
|
||||
(function() {var implementors = {};
|
||||
implementors["os"] = [{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/mm/frame_allocator/struct.FrameTracker.html\" title=\"struct os::mm::frame_allocator::FrameTracker\">FrameTracker</a>","synthetic":false,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl<'a, T> <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/sync/up/struct.UPIntrRefMut.html\" title=\"struct os::sync::up::UPIntrRefMut\">UPIntrRefMut</a><'a, T>","synthetic":false,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/task/id/struct.PidHandle.html\" title=\"struct os::task::id::PidHandle\">PidHandle</a>","synthetic":false,"types":["os::task::id::PidHandle"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/task/id/struct.KernelStack.html\" title=\"struct os::task::id::KernelStack\">KernelStack</a>","synthetic":false,"types":["os::task::id::KernelStack"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/task/id/struct.TaskUserRes.html\" title=\"struct os::task::id::TaskUserRes\">TaskUserRes</a>","synthetic":false,"types":["os::task::id::TaskUserRes"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/net/udp/struct.UDP.html\" title=\"struct os::net::udp::UDP\">UDP</a>","synthetic":false,"types":["os::net::udp::UDP"]}];
|
||||
implementors["os"] = [{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/mm/frame_allocator/struct.FrameTracker.html\" title=\"struct os::mm::frame_allocator::FrameTracker\">FrameTracker</a>","synthetic":false,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/task/id/struct.PidHandle.html\" title=\"struct os::task::id::PidHandle\">PidHandle</a>","synthetic":false,"types":["os::task::id::PidHandle"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/task/id/struct.KernelStack.html\" title=\"struct os::task::id::KernelStack\">KernelStack</a>","synthetic":false,"types":["os::task::id::KernelStack"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/task/id/struct.TaskUserRes.html\" title=\"struct os::task::id::TaskUserRes\">TaskUserRes</a>","synthetic":false,"types":["os::task::id::TaskUserRes"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html\" title=\"trait core::ops::drop::Drop\">Drop</a> for <a class=\"struct\" href=\"os/net/udp/struct.UDP.html\" title=\"struct os::net::udp::UDP\">UDP</a>","synthetic":false,"types":["os::net::udp::UDP"]}];
|
||||
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `open_file` fn in crate `os`."><meta name="keywords" content="rust, rustlang, rust-lang, open_file"><title>open_file in os::fs::inode - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::fs::inode</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">fs</a>::<wbr><a href="index.html">inode</a>::<wbr><a class="fn" href="#">open_file</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/fs/inode.rs.html#85-106">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn open_file(name: &<a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.str.html">str</a>, flags: <a class="struct" href="struct.OpenFlags.html" title="struct os::fs::inode::OpenFlags">OpenFlags</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><<a class="struct" href="struct.OSInode.html" title="struct os::fs::inode::OSInode">OSInode</a>>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `open_file` fn in crate `os`."><meta name="keywords" content="rust, rustlang, rust-lang, open_file"><title>open_file in os::fs::inode - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::fs::inode</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">fs</a>::<wbr><a href="index.html">inode</a>::<wbr><a class="fn" href="#">open_file</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/fs/inode.rs.html#85-108">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn open_file(name: &<a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.str.html">str</a>, flags: <a class="struct" href="struct.OpenFlags.html" title="struct os::fs::inode::OpenFlags">OpenFlags</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><<a class="struct" href="struct.OSInode.html" title="struct os::fs::inode::OSInode">OSInode</a>>></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -3,4 +3,4 @@
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.writable" class="fnname">writable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.bool.html">bool</a>;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.read" class="fnname">read</a>(&self, buf: <a class="struct" href="../mm/page_table/struct.UserBuffer.html" title="struct os::mm::page_table::UserBuffer">UserBuffer</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>;
|
||||
<span class="item-spacer"></span> fn <a href="#tymethod.write" class="fnname">write</a>(&self, buf: <a class="struct" href="../mm/page_table/struct.UserBuffer.html" title="struct os::mm::page_table::UserBuffer">UserBuffer</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>;
|
||||
}</code></pre></div><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><div id="tymethod.readable" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/os/fs/mod.rs.html#8">source</a></div><h4 class="code-header">fn <a href="#tymethod.readable" class="fnname">readable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.bool.html">bool</a></h4></div><div id="tymethod.writable" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/os/fs/mod.rs.html#9">source</a></div><h4 class="code-header">fn <a href="#tymethod.writable" class="fnname">writable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.bool.html">bool</a></h4></div><div id="tymethod.read" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/os/fs/mod.rs.html#10">source</a></div><h4 class="code-header">fn <a href="#tymethod.read" class="fnname">read</a>(&self, buf: <a class="struct" href="../mm/page_table/struct.UserBuffer.html" title="struct os::mm::page_table::UserBuffer">UserBuffer</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></h4></div><div id="tymethod.write" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/os/fs/mod.rs.html#11">source</a></div><h4 class="code-header">fn <a href="#tymethod.write" class="fnname">write</a>(&self, buf: <a class="struct" href="../mm/page_table/struct.UserBuffer.html" title="struct os::mm::page_table::UserBuffer">UserBuffer</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></h4></div></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><section id="impl-File-for-UDP" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/net/udp.rs.html#31-88">source</a></span><a href="#impl-File-for-UDP" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="../net/udp/struct.UDP.html" title="struct os::net::udp::UDP">UDP</a></h3></section><section id="impl-File-for-OSInode" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/fs/inode.rs.html#108-139">source</a></span><a href="#impl-File-for-OSInode" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="inode/struct.OSInode.html" title="struct os::fs::inode::OSInode">OSInode</a></h3></section><section id="impl-File-for-Pipe" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/fs/pipe.rs.html#108-173">source</a></span><a href="#impl-File-for-Pipe" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="pipe/struct.Pipe.html" title="struct os::fs::pipe::Pipe">Pipe</a></h3></section><section id="impl-File-for-Stdin" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/fs/stdio.rs.html#9-28">source</a></span><a href="#impl-File-for-Stdin" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="stdio/struct.Stdin.html" title="struct os::fs::stdio::Stdin">Stdin</a></h3></section><section id="impl-File-for-Stdout" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/fs/stdio.rs.html#30-46">source</a></span><a href="#impl-File-for-Stdout" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="stdio/struct.Stdout.html" title="struct os::fs::stdio::Stdout">Stdout</a></h3></section></div><script type="text/javascript" src="../../implementors/os/fs/trait.File.js" data-ignore-extern-crates="" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
||||
}</code></pre></div><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><div id="tymethod.readable" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/os/fs/mod.rs.html#8">source</a></div><h4 class="code-header">fn <a href="#tymethod.readable" class="fnname">readable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.bool.html">bool</a></h4></div><div id="tymethod.writable" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/os/fs/mod.rs.html#9">source</a></div><h4 class="code-header">fn <a href="#tymethod.writable" class="fnname">writable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.bool.html">bool</a></h4></div><div id="tymethod.read" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/os/fs/mod.rs.html#10">source</a></div><h4 class="code-header">fn <a href="#tymethod.read" class="fnname">read</a>(&self, buf: <a class="struct" href="../mm/page_table/struct.UserBuffer.html" title="struct os::mm::page_table::UserBuffer">UserBuffer</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></h4></div><div id="tymethod.write" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/os/fs/mod.rs.html#11">source</a></div><h4 class="code-header">fn <a href="#tymethod.write" class="fnname">write</a>(&self, buf: <a class="struct" href="../mm/page_table/struct.UserBuffer.html" title="struct os::mm::page_table::UserBuffer">UserBuffer</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a></h4></div></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><section id="impl-File-for-UDP" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/net/udp.rs.html#31-88">source</a></span><a href="#impl-File-for-UDP" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="../net/udp/struct.UDP.html" title="struct os::net::udp::UDP">UDP</a></h3></section><section id="impl-File-for-OSInode" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/fs/inode.rs.html#110-141">source</a></span><a href="#impl-File-for-OSInode" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="inode/struct.OSInode.html" title="struct os::fs::inode::OSInode">OSInode</a></h3></section><section id="impl-File-for-Pipe" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/fs/pipe.rs.html#108-173">source</a></span><a href="#impl-File-for-Pipe" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="pipe/struct.Pipe.html" title="struct os::fs::pipe::Pipe">Pipe</a></h3></section><section id="impl-File-for-Stdin" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/fs/stdio.rs.html#9-28">source</a></span><a href="#impl-File-for-Stdin" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="stdio/struct.Stdin.html" title="struct os::fs::stdio::Stdin">Stdin</a></h3></section><section id="impl-File-for-Stdout" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/os/fs/stdio.rs.html#30-46">source</a></span><a href="#impl-File-for-Stdout" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.File.html" title="trait os::fs::File">File</a> for <a class="struct" href="stdio/struct.Stdout.html" title="struct os::fs::stdio::Stdout">Stdout</a></h3></section></div><script type="text/javascript" src="../../implementors/os/fs/trait.File.js" data-ignore-extern-crates="" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"mod":[["condvar",""],["mutex",""],["semaphore",""],["up",""]]};
|
||||
window.SIDEBAR_ITEMS = {"mod":[["condvar",""],["mutex",""],["semaphore",""],["up",""]],"struct":[["UPIntrFreeCell",""],["UPIntrRefMut",""]]};
|
28
issue-104/os/sync/struct.UPIntrFreeCell.html
Normal file
28
issue-104/os/sync/struct.UPIntrFreeCell.html
Normal file
File diff suppressed because one or more lines are too long
28
issue-104/os/sync/struct.UPIntrRefMut.html
Normal file
28
issue-104/os/sync/struct.UPIntrRefMut.html
Normal file
File diff suppressed because one or more lines are too long
2
issue-104/os/sync/up/fn.enable_intr.html
Normal file
2
issue-104/os/sync/up/fn.enable_intr.html
Normal file
@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `enable_intr` fn in crate `os`."><meta name="keywords" content="rust, rustlang, rust-lang, enable_intr"><title>enable_intr in os::sync::up - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::sync::up</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">sync</a>::<wbr><a href="index.html">up</a>::<wbr><a class="fn" href="#">enable_intr</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/sync/up.rs.html#19-23">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>#[no_mangle]
|
||||
extern "C" fn enable_intr()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
2
issue-104/os/sync/up/fn.swap_and_disable_intr.html
Normal file
2
issue-104/os/sync/up/fn.swap_and_disable_intr.html
Normal file
@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `swap_and_disable_intr` fn in crate `os`."><meta name="keywords" content="rust, rustlang, rust-lang, swap_and_disable_intr"><title>swap_and_disable_intr in os::sync::up - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::sync::up</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">sync</a>::<wbr><a href="index.html">up</a>::<wbr><a class="fn" href="#">swap_and_disable_intr</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/sync/up.rs.html#10-16">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>#[no_mangle]
|
||||
extern "C" fn swap_and_disable_intr() -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.bool.html">bool</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"struct":[["INTR_MASKING_INFO",""],["IntrMaskingInfo",""],["UPIntrFreeCell",""],["UPIntrRefMut",""],["UPSafeCellRaw",""]]};
|
||||
window.SIDEBAR_ITEMS = {"fn":[["enable_intr",""],["swap_and_disable_intr",""]],"struct":[["UPIntrFreeCell",""],["UPIntrRefMut",""]]};
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `sys_exec` fn in crate `os`."><meta name="keywords" content="rust, rustlang, rust-lang, sys_exec"><title>sys_exec in os::syscall::process - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::syscall::process</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">syscall</a>::<wbr><a href="index.html">process</a>::<wbr><a class="fn" href="#">sys_exec</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/syscall/process.rs.html#44-68">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn sys_exec(path: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*const </a><a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.u8.html">u8</a>, args: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*const </a><a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `sys_exec` fn in crate `os`."><meta name="keywords" content="rust, rustlang, rust-lang, sys_exec"><title>sys_exec in os::syscall::process - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::syscall::process</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">syscall</a>::<wbr><a href="index.html">process</a>::<wbr><a class="fn" href="#">sys_exec</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/syscall/process.rs.html#44-71">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn sys_exec(path: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*const </a><a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.u8.html">u8</a>, args: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*const </a><a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
@ -1 +1 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `sys_kill` fn in crate `os`."><meta name="keywords" content="rust, rustlang, rust-lang, sys_kill"><title>sys_kill in os::syscall::process - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::syscall::process</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">syscall</a>::<wbr><a href="index.html">process</a>::<wbr><a class="fn" href="#">sys_kill</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/syscall/process.rs.html#106-117">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn sys_kill(pid: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>, signal: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.u32.html">u32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `sys_kill` fn in crate `os`."><meta name="keywords" content="rust, rustlang, rust-lang, sys_kill"><title>sys_kill in os::syscall::process - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::syscall::process</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">syscall</a>::<wbr><a href="index.html">process</a>::<wbr><a class="fn" href="#">sys_kill</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/syscall/process.rs.html#109-120">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn sys_kill(pid: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.usize.html">usize</a>, signal: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.u32.html">u32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
@ -1,3 +1,3 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="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."><meta name="keywords" content="rust, rustlang, rust-lang, sys_waitpid"><title>sys_waitpid in os::syscall::process - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::syscall::process</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">syscall</a>::<wbr><a href="index.html">process</a>::<wbr><a class="fn" href="#">sys_waitpid</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/syscall/process.rs.html#72-104">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn sys_waitpid(pid: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a>, exit_code_ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.i32.html">i32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>If there is not a child process whose pid is same as given, return -1.
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="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."><meta name="keywords" content="rust, rustlang, rust-lang, sys_waitpid"><title>sys_waitpid in os::syscall::process - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../os/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In os::syscall::process</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../os/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Function <a href="../../index.html">os</a>::<wbr><a href="../index.html">syscall</a>::<wbr><a href="index.html">process</a>::<wbr><a class="fn" href="#">sys_waitpid</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/os/syscall/process.rs.html#75-107">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn sys_waitpid(pid: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a>, exit_code_ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.i32.html">i32</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/core/primitive.isize.html">isize</a></code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="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>
|
||||
</div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -137,6 +137,8 @@
|
||||
<span id="137">137</span>
|
||||
<span id="138">138</span>
|
||||
<span id="139">139</span>
|
||||
<span id="140">140</span>
|
||||
<span id="141">141</span>
|
||||
</pre><pre class="rust"><code><span class="kw">use</span> <span class="ident"><span class="kw">super</span>::File</span>;
|
||||
<span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::drivers::BLOCK_DEVICE</span>;
|
||||
<span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::mm::UserBuffer</span>;
|
||||
@ -222,9 +224,11 @@
|
||||
}
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">open_file</span>(<span class="ident">name</span>: <span class="kw-2">&</span><span class="ident">str</span>, <span class="ident">flags</span>: <span class="ident">OpenFlags</span>) -> <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">Arc</span><span class="op"><</span><span class="ident">OSInode</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="macro">println!</span>(<span class="string">"open_file :1"</span>);
|
||||
<span class="kw">let</span> (<span class="ident">readable</span>, <span class="ident">writable</span>) <span class="op">=</span> <span class="ident">flags</span>.<span class="ident">read_write</span>();
|
||||
<span class="kw">if</span> <span class="ident">flags</span>.<span class="ident">contains</span>(<span class="ident">OpenFlags::CREATE</span>) {
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">inode</span>) <span class="op">=</span> <span class="ident">ROOT_INODE</span>.<span class="ident">find</span>(<span class="ident">name</span>) {
|
||||
<span class="macro">println!</span>(<span class="string">"open_file :2"</span>);
|
||||
<span class="comment">// clear size</span>
|
||||
<span class="ident">inode</span>.<span class="ident">clear</span>();
|
||||
<span class="prelude-val">Some</span>(<span class="ident">Arc::new</span>(<span class="ident">OSInode::new</span>(<span class="ident">readable</span>, <span class="ident">writable</span>, <span class="ident">inode</span>)))
|
||||
|
@ -21,262 +21,27 @@
|
||||
<span id="21">21</span>
|
||||
<span id="22">22</span>
|
||||
<span id="23">23</span>
|
||||
<span id="24">24</span>
|
||||
<span id="25">25</span>
|
||||
<span id="26">26</span>
|
||||
<span id="27">27</span>
|
||||
<span id="28">28</span>
|
||||
<span id="29">29</span>
|
||||
<span id="30">30</span>
|
||||
<span id="31">31</span>
|
||||
<span id="32">32</span>
|
||||
<span id="33">33</span>
|
||||
<span id="34">34</span>
|
||||
<span id="35">35</span>
|
||||
<span id="36">36</span>
|
||||
<span id="37">37</span>
|
||||
<span id="38">38</span>
|
||||
<span id="39">39</span>
|
||||
<span id="40">40</span>
|
||||
<span id="41">41</span>
|
||||
<span id="42">42</span>
|
||||
<span id="43">43</span>
|
||||
<span id="44">44</span>
|
||||
<span id="45">45</span>
|
||||
<span id="46">46</span>
|
||||
<span id="47">47</span>
|
||||
<span id="48">48</span>
|
||||
<span id="49">49</span>
|
||||
<span id="50">50</span>
|
||||
<span id="51">51</span>
|
||||
<span id="52">52</span>
|
||||
<span id="53">53</span>
|
||||
<span id="54">54</span>
|
||||
<span id="55">55</span>
|
||||
<span id="56">56</span>
|
||||
<span id="57">57</span>
|
||||
<span id="58">58</span>
|
||||
<span id="59">59</span>
|
||||
<span id="60">60</span>
|
||||
<span id="61">61</span>
|
||||
<span id="62">62</span>
|
||||
<span id="63">63</span>
|
||||
<span id="64">64</span>
|
||||
<span id="65">65</span>
|
||||
<span id="66">66</span>
|
||||
<span id="67">67</span>
|
||||
<span id="68">68</span>
|
||||
<span id="69">69</span>
|
||||
<span id="70">70</span>
|
||||
<span id="71">71</span>
|
||||
<span id="72">72</span>
|
||||
<span id="73">73</span>
|
||||
<span id="74">74</span>
|
||||
<span id="75">75</span>
|
||||
<span id="76">76</span>
|
||||
<span id="77">77</span>
|
||||
<span id="78">78</span>
|
||||
<span id="79">79</span>
|
||||
<span id="80">80</span>
|
||||
<span id="81">81</span>
|
||||
<span id="82">82</span>
|
||||
<span id="83">83</span>
|
||||
<span id="84">84</span>
|
||||
<span id="85">85</span>
|
||||
<span id="86">86</span>
|
||||
<span id="87">87</span>
|
||||
<span id="88">88</span>
|
||||
<span id="89">89</span>
|
||||
<span id="90">90</span>
|
||||
<span id="91">91</span>
|
||||
<span id="92">92</span>
|
||||
<span id="93">93</span>
|
||||
<span id="94">94</span>
|
||||
<span id="95">95</span>
|
||||
<span id="96">96</span>
|
||||
<span id="97">97</span>
|
||||
<span id="98">98</span>
|
||||
<span id="99">99</span>
|
||||
<span id="100">100</span>
|
||||
<span id="101">101</span>
|
||||
<span id="102">102</span>
|
||||
<span id="103">103</span>
|
||||
<span id="104">104</span>
|
||||
<span id="105">105</span>
|
||||
<span id="106">106</span>
|
||||
<span id="107">107</span>
|
||||
<span id="108">108</span>
|
||||
<span id="109">109</span>
|
||||
<span id="110">110</span>
|
||||
<span id="111">111</span>
|
||||
<span id="112">112</span>
|
||||
<span id="113">113</span>
|
||||
<span id="114">114</span>
|
||||
<span id="115">115</span>
|
||||
<span id="116">116</span>
|
||||
<span id="117">117</span>
|
||||
<span id="118">118</span>
|
||||
<span id="119">119</span>
|
||||
<span id="120">120</span>
|
||||
<span id="121">121</span>
|
||||
<span id="122">122</span>
|
||||
<span id="123">123</span>
|
||||
<span id="124">124</span>
|
||||
<span id="125">125</span>
|
||||
<span id="126">126</span>
|
||||
<span id="127">127</span>
|
||||
<span id="128">128</span>
|
||||
<span id="129">129</span>
|
||||
<span id="130">130</span>
|
||||
<span id="131">131</span>
|
||||
<span id="132">132</span>
|
||||
<span id="133">133</span>
|
||||
<span id="134">134</span>
|
||||
<span id="135">135</span>
|
||||
<span id="136">136</span>
|
||||
<span id="137">137</span>
|
||||
<span id="138">138</span>
|
||||
<span id="139">139</span>
|
||||
<span id="140">140</span>
|
||||
</pre><pre class="rust"><code><span class="kw">use</span> <span class="ident">core::cell</span>::{<span class="ident">RefCell</span>, <span class="ident">RefMut</span>, <span class="ident">UnsafeCell</span>};
|
||||
<span class="kw">use</span> <span class="ident">core::ops</span>::{<span class="ident">Deref</span>, <span class="ident">DerefMut</span>};
|
||||
<span class="kw">use</span> <span class="ident">lazy_static</span>::<span class="kw-2">*</span>;
|
||||
</pre><pre class="rust"><code><span class="kw">pub</span> <span class="kw">use</span> <span class="ident">ksync</span>::{<span class="ident">UPIntrFreeCell</span>, <span class="ident">UPIntrRefMut</span>};
|
||||
<span class="kw">use</span> <span class="ident">riscv::register::sstatus</span>;
|
||||
|
||||
<span class="comment">/*
|
||||
/// Wrap a static data structure inside it so that we are
|
||||
/// able to access it without any `unsafe`.
|
||||
///
|
||||
/// We should only use it in uniprocessor.
|
||||
///
|
||||
/// In order to get mutable reference of inner data, call
|
||||
/// `exclusive_access`.
|
||||
pub struct UPSafeCell<T> {
|
||||
/// inner data
|
||||
inner: RefCell<T>,
|
||||
}
|
||||
<span class="comment">// extern "C" {</span>
|
||||
<span class="comment">// fn swap_and_disable_intr() -> bool;</span>
|
||||
<span class="comment">// fn enable_intr();</span>
|
||||
<span class="comment">// }</span>
|
||||
|
||||
unsafe impl<T> Sync for UPSafeCell<T> {}
|
||||
|
||||
impl<T> UPSafeCell<T> {
|
||||
/// User is responsible to guarantee that inner struct is only used in
|
||||
/// uniprocessor.
|
||||
pub unsafe fn new(value: T) -> Self {
|
||||
Self {
|
||||
inner: RefCell::new(value),
|
||||
}
|
||||
}
|
||||
/// Panic if the data has been borrowed.
|
||||
pub fn exclusive_access(&self) -> RefMut<'_, T> {
|
||||
self.inner.borrow_mut()
|
||||
}
|
||||
}
|
||||
*/</span>
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">UPSafeCellRaw</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> {
|
||||
<span class="ident">inner</span>: <span class="ident">UnsafeCell</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
}
|
||||
|
||||
<span class="kw">unsafe</span> <span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">UPSafeCellRaw</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> {}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">UPSafeCellRaw</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> {
|
||||
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">value</span>: <span class="ident">T</span>) -> <span class="self">Self</span> {
|
||||
<span class="self">Self</span> {
|
||||
<span class="ident">inner</span>: <span class="ident">UnsafeCell::new</span>(<span class="ident">value</span>),
|
||||
}
|
||||
}
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_mut</span>(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&mut</span> <span class="ident">T</span> {
|
||||
<span class="kw">unsafe</span> { <span class="kw-2">&mut</span> (<span class="kw-2">*</span><span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">get</span>()) }
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">IntrMaskingInfo</span> {
|
||||
<span class="ident">nested_level</span>: <span class="ident">usize</span>,
|
||||
<span class="ident">sie_before_masking</span>: <span class="ident">bool</span>,
|
||||
}
|
||||
|
||||
<span class="macro">lazy_static!</span> {
|
||||
<span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">INTR_MASKING_INFO</span>: <span class="ident">UPSafeCellRaw</span><span class="op"><</span><span class="ident">IntrMaskingInfo</span><span class="op">></span> <span class="op">=</span>
|
||||
<span class="kw">unsafe</span> { <span class="ident">UPSafeCellRaw::new</span>(<span class="ident">IntrMaskingInfo::new</span>()) };
|
||||
}
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">IntrMaskingInfo</span> {
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() -> <span class="self">Self</span> {
|
||||
<span class="self">Self</span> {
|
||||
<span class="ident">nested_level</span>: <span class="number">0</span>,
|
||||
<span class="ident">sie_before_masking</span>: <span class="bool-val">false</span>,
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">enter</span>(<span class="kw-2">&mut</span> <span class="self">self</span>) {
|
||||
<span class="attribute">#[<span class="ident">no_mangle</span>]</span>
|
||||
<span class="kw">extern</span> <span class="string">"C"</span> <span class="kw">fn</span> <span class="ident">swap_and_disable_intr</span>() -> <span class="ident">bool</span> {
|
||||
<span class="kw">let</span> <span class="ident">sie</span> <span class="op">=</span> <span class="ident">sstatus::read</span>().<span class="ident">sie</span>();
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">sstatus::clear_sie</span>();
|
||||
}
|
||||
<span class="kw">if</span> <span class="self">self</span>.<span class="ident">nested_level</span> <span class="op">==</span> <span class="number">0</span> {
|
||||
<span class="self">self</span>.<span class="ident">sie_before_masking</span> <span class="op">=</span> <span class="ident">sie</span>;
|
||||
}
|
||||
<span class="self">self</span>.<span class="ident">nested_level</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
}
|
||||
<span class="ident">sie</span>
|
||||
}
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">exit</span>(<span class="kw-2">&mut</span> <span class="self">self</span>) {
|
||||
<span class="self">self</span>.<span class="ident">nested_level</span> <span class="op">-</span><span class="op">=</span> <span class="number">1</span>;
|
||||
<span class="kw">if</span> <span class="self">self</span>.<span class="ident">nested_level</span> <span class="op">==</span> <span class="number">0</span> <span class="op">&&</span> <span class="self">self</span>.<span class="ident">sie_before_masking</span> {
|
||||
<span class="attribute">#[<span class="ident">no_mangle</span>]</span>
|
||||
<span class="kw">extern</span> <span class="string">"C"</span> <span class="kw">fn</span> <span class="ident">enable_intr</span>() {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">sstatus::set_sie</span>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">UPIntrFreeCell</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> {
|
||||
<span class="doccomment">/// inner data</span>
|
||||
<span class="ident">inner</span>: <span class="ident">RefCell</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
}
|
||||
|
||||
<span class="kw">unsafe</span> <span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">UPIntrFreeCell</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> {}
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">UPIntrRefMut</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span>(<span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">RefMut</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span><span class="op">></span>);
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">UPIntrFreeCell</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> {
|
||||
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">value</span>: <span class="ident">T</span>) -> <span class="self">Self</span> {
|
||||
<span class="self">Self</span> {
|
||||
<span class="ident">inner</span>: <span class="ident">RefCell::new</span>(<span class="ident">value</span>),
|
||||
}
|
||||
}
|
||||
|
||||
<span class="doccomment">/// Panic if the data has been borrowed.</span>
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">exclusive_access</span>(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="ident">UPIntrRefMut</span><span class="op"><</span><span class="lifetime">'_</span>, <span class="ident">T</span><span class="op">></span> {
|
||||
<span class="ident">INTR_MASKING_INFO</span>.<span class="ident">get_mut</span>().<span class="ident">enter</span>();
|
||||
<span class="ident">UPIntrRefMut</span>(<span class="prelude-val">Some</span>(<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">borrow_mut</span>()))
|
||||
}
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">exclusive_session</span><span class="op"><</span><span class="ident">F</span>, <span class="ident">V</span><span class="op">></span>(<span class="kw-2">&</span><span class="self">self</span>, <span class="ident">f</span>: <span class="ident">F</span>) -> <span class="ident">V</span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">F</span>: <span class="ident">FnOnce</span>(<span class="kw-2">&mut</span> <span class="ident">T</span>) -> <span class="ident">V</span>,
|
||||
{
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">inner</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">exclusive_access</span>();
|
||||
<span class="ident">f</span>(<span class="ident">inner</span>.<span class="ident">deref_mut</span>())
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span> <span class="ident">Drop</span> <span class="kw">for</span> <span class="ident">UPIntrRefMut</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span> {
|
||||
<span class="kw">fn</span> <span class="ident">drop</span>(<span class="kw-2">&mut</span> <span class="self">self</span>) {
|
||||
<span class="self">self</span>.<span class="number">0</span> <span class="op">=</span> <span class="prelude-val">None</span>;
|
||||
<span class="ident">INTR_MASKING_INFO</span>.<span class="ident">get_mut</span>().<span class="ident">exit</span>();
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span> <span class="ident">Deref</span> <span class="kw">for</span> <span class="ident">UPIntrRefMut</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span> {
|
||||
<span class="kw">type</span> <span class="ident">Target</span> <span class="op">=</span> <span class="ident">T</span>;
|
||||
<span class="kw">fn</span> <span class="ident">deref</span>(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="kw-2">&</span><span class="ident"><span class="self">Self</span>::Target</span> {
|
||||
<span class="self">self</span>.<span class="number">0</span>.<span class="ident">as_ref</span>().<span class="ident">unwrap</span>().<span class="ident">deref</span>()
|
||||
}
|
||||
}
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span> <span class="ident">DerefMut</span> <span class="kw">for</span> <span class="ident">UPIntrRefMut</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span> {
|
||||
<span class="kw">fn</span> <span class="ident">deref_mut</span>(<span class="kw-2">&mut</span> <span class="self">self</span>) -> <span class="kw-2">&mut</span> <span class="ident"><span class="self">Self</span>::Target</span> {
|
||||
<span class="self">self</span>.<span class="number">0</span>.<span class="ident">as_mut</span>().<span class="ident">unwrap</span>().<span class="ident">deref_mut</span>()
|
||||
}
|
||||
}
|
||||
</code></pre></div>
|
||||
}</code></pre></div>
|
||||
</section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="os" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0-nightly (f6f9d5e73 2022-08-04)" ></div></body></html>
|
@ -115,6 +115,9 @@
|
||||
<span id="115">115</span>
|
||||
<span id="116">116</span>
|
||||
<span id="117">117</span>
|
||||
<span id="118">118</span>
|
||||
<span id="119">119</span>
|
||||
<span id="120">120</span>
|
||||
</pre><pre class="rust"><code><span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::fs</span>::{<span class="ident">open_file</span>, <span class="ident">OpenFlags</span>};
|
||||
<span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::mm</span>::{<span class="ident">translated_ref</span>, <span class="ident">translated_refmut</span>, <span class="ident">translated_str</span>};
|
||||
<span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::task</span>::{
|
||||
@ -172,8 +175,11 @@
|
||||
<span class="ident">args</span> <span class="op">=</span> <span class="ident">args</span>.<span class="ident">add</span>(<span class="number">1</span>);
|
||||
}
|
||||
}
|
||||
<span class="macro">println!</span>(<span class="string">"sys_exec :1"</span>);
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">app_inode</span>) <span class="op">=</span> <span class="ident">open_file</span>(<span class="ident">path</span>.<span class="ident">as_str</span>(), <span class="ident">OpenFlags::RDONLY</span>) {
|
||||
<span class="macro">println!</span>(<span class="string">"sys_exec :2"</span>);
|
||||
<span class="kw">let</span> <span class="ident">all_data</span> <span class="op">=</span> <span class="ident">app_inode</span>.<span class="ident">read_all</span>();
|
||||
<span class="macro">println!</span>(<span class="string">"sys_exec :3"</span>);
|
||||
<span class="kw">let</span> <span class="ident">process</span> <span class="op">=</span> <span class="ident">current_process</span>();
|
||||
<span class="kw">let</span> <span class="ident">argc</span> <span class="op">=</span> <span class="ident">args_vec</span>.<span class="ident">len</span>();
|
||||
<span class="ident">process</span>.<span class="ident">exec</span>(<span class="ident">all_data</span>.<span class="ident">as_slice</span>(), <span class="ident">args_vec</span>);
|
||||
|
Loading…
Reference in New Issue
Block a user