mpvrc/rustix/ioctl/index.html

13 lines
No EOL
8.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-42caa33d.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.84.1 (e71f9a9a9 2025-01-27)" data-channel="1.84.1" data-search-js="search-92e6798f.js" data-settings-js="settings-0f613d39.js" ><script src="../../static.files/storage-59e33391.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rustix/index.html">rustix</a><span class="version">0.38.42</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module ioctl</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#functions" title="Functions">Functions</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate rustix</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="../index.html">rustix</a></span><h1>Module <span>ioctl</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/rustix/ioctl/mod.rs.html#1-359">Source</a> </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">Structs<a href="#structs" class="anchor">§</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.IntegerSetter.html" title="struct rustix::ioctl::IntegerSetter">Integer<wbr>Setter</a></div><div class="desc docblock-short">Implements an <code>ioctl</code> that passes an integer into the <code>ioctl</code>.</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">None<wbr>Opcode</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">Read<wbr>Opcode</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">Read<wbr>Write<wbr>Opcode</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">Write<wbr>Opcode</a></div><div class="desc docblock-short">Provides a write code at compile time.</div></li></ul><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</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">Traits<a href="#traits" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.CompileTimeOpcode.html" title="trait rustix::ioctl::CompileTimeOpcode">Compile<wbr>Time<wbr>Opcode</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">Functions<a href="#functions" class="anchor">§</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">Type Aliases<a href="#types" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.IoctlOutput.html" title="type rustix::ioctl::IoctlOutput">Ioctl<wbr>Output</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>