difftastic/rustdoc/rustix/ioctl/index.html

14 lines
9.1 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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="Unsafe `ioctl` API."><title>rustix::ioctl - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-ac92e1bbe349e143.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="rustix" data-themes="" data-resource-suffix="" data-rustdoc-version="1.76.0 (07dca489a 2024-02-04)" data-channel="1.76.0" data-search-js="search-2b6ce74ff89ae146.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-f2adc0d6ca4d09fb.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-305769736d49e732.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-feafe1bb7466e4bd.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[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">&#9776;</button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rustix/index.html">rustix</a><span class="version">0.38.34</span></h2></div><h2 class="location"><a href="#">Module ioctl</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Aliases</a></li></ul></section><h2><a href="../index.html">In crate rustix</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../rustix/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">rustix</a>::<wbr><a class="mod" href="#">ioctl</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../src/rustix/ioctl/mod.rs.html#1-358">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Unsafe <code>ioctl</code> API.</p>
<p>Unix systems expose a number of <code>ioctl</code>s. <code>ioctl</code>s have been adopted as a
general purpose system call for making calls into the kernel. In addition
to the wide variety of system calls that are included by default in the
kernel, many drivers expose their own <code>ioctl</code>s for controlling their
behavior, some of which are proprietary. Therefore it is impossible to make
a safe interface for every <code>ioctl</code> call, as they all have wildly varying
semantics.</p>
<p>This module provides an unsafe interface to write your own <code>ioctl</code> API. To
start, create a type that implements <a href="trait.Ioctl.html" title="trait rustix::ioctl::Ioctl"><code>Ioctl</code></a>. Then, pass it to <a href="fn.ioctl.html" title="fn rustix::ioctl::ioctl"><code>ioctl</code></a>
to make the <code>ioctl</code> call.</p>
</div></details><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.BadOpcode.html" title="struct rustix::ioctl::BadOpcode">BadOpcode</a></div><div class="desc docblock-short">Provides a bad opcode at compile time.</div></li><li><div class="item-name"><a class="struct" href="struct.Getter.html" title="struct rustix::ioctl::Getter">Getter</a></div><div class="desc docblock-short">Implements the traditional “getter” pattern for <code>ioctl</code>s.</div></li><li><div class="item-name"><a class="struct" href="struct.NoArg.html" title="struct rustix::ioctl::NoArg">NoArg</a></div><div class="desc docblock-short">Implements an <code>ioctl</code> with no real arguments.</div></li><li><div class="item-name"><a class="struct" href="struct.NoneOpcode.html" title="struct rustix::ioctl::NoneOpcode">NoneOpcode</a></div><div class="desc docblock-short">Provides a <code>None</code> code at compile time.</div></li><li><div class="item-name"><a class="struct" href="struct.Opcode.html" title="struct rustix::ioctl::Opcode">Opcode</a></div><div class="desc docblock-short">The opcode used by an <code>Ioctl</code>.</div></li><li><div class="item-name"><a class="struct" href="struct.ReadOpcode.html" title="struct rustix::ioctl::ReadOpcode">ReadOpcode</a></div><div class="desc docblock-short">Provides a read code at compile time.</div></li><li><div class="item-name"><a class="struct" href="struct.ReadWriteOpcode.html" title="struct rustix::ioctl::ReadWriteOpcode">ReadWriteOpcode</a></div><div class="desc docblock-short">Provides a read/write code at compile time.</div></li><li><div class="item-name"><a class="struct" href="struct.Setter.html" title="struct rustix::ioctl::Setter">Setter</a></div><div class="desc docblock-short">Implements the pattern for <code>ioctl</code>s where a pointer argument is given to
the <code>ioctl</code>.</div></li><li><div class="item-name"><a class="struct" href="struct.Updater.html" title="struct rustix::ioctl::Updater">Updater</a></div><div class="desc docblock-short">Implements an “updater” pattern for <code>ioctl</code>s.</div></li><li><div class="item-name"><a class="struct" href="struct.WriteOpcode.html" title="struct rustix::ioctl::WriteOpcode">WriteOpcode</a></div><div class="desc docblock-short">Provides a write code at compile time.</div></li></ul><h2 id="enums" class="section-header"><a href="#enums">Enums</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.Direction.html" title="enum rustix::ioctl::Direction">Direction</a></div><div class="desc docblock-short">The direction that an <code>ioctl</code> is going.</div></li></ul><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.CompileTimeOpcode.html" title="trait rustix::ioctl::CompileTimeOpcode">CompileTimeOpcode</a></div><div class="desc docblock-short">Trait for something that provides an <code>ioctl</code> opcode at compile time.</div></li><li><div class="item-name"><a class="trait" href="trait.Ioctl.html" title="trait rustix::ioctl::Ioctl">Ioctl</a></div><div class="desc docblock-short">A trait defining the properties of an <code>ioctl</code> command.</div></li></ul><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.ioctl.html" title="fn rustix::ioctl::ioctl">ioctl</a><sup title="unsafe function"></sup></div><div class="desc docblock-short">Perform an <code>ioctl</code> call.</div></li></ul><h2 id="types" class="section-header"><a href="#types">Type Aliases</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.IoctlOutput.html" title="type rustix::ioctl::IoctlOutput">IoctlOutput</a></div><div class="desc docblock-short">The type used by the <code>ioctl</code> to signify the output.</div></li><li><div class="item-name"><a class="type" href="type.RawOpcode.html" title="type rustix::ioctl::RawOpcode">RawOpcode</a></div><div class="desc docblock-short">The type used by the <code>ioctl</code> to signify the command.</div></li></ul></section></div></main></body></html>