summaryrefslogtreecommitdiff
path: root/static/netbsd/man9/sockopt.9 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man9/sockopt.9 3.html')
-rw-r--r--static/netbsd/man9/sockopt.9 3.html157
1 files changed, 0 insertions, 157 deletions
diff --git a/static/netbsd/man9/sockopt.9 3.html b/static/netbsd/man9/sockopt.9 3.html
deleted file mode 100644
index 75fa4080..00000000
--- a/static/netbsd/man9/sockopt.9 3.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">SOCKOPT(9)</td>
- <td class="head-vol">Kernel Developer's Manual</td>
- <td class="head-rtitle">SOCKOPT(9)</td>
- </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<p class="Pp"><code class="Nm">sockopt_init</code>,
- <code class="Nm">sockopt_destroy</code>,
- <code class="Nm">sockopt_get</code>, <code class="Nm">sockopt_getint</code>,
- <code class="Nm">sockopt_set</code>, <code class="Nm">sockopt_setint</code>
- &#x2014; <span class="Nd">socket options handling</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp"><code class="In">#include
- &lt;<a class="In">sys/socketvar.h</a>&gt;</code></p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">sockopt_init</code>(<var class="Fa" style="white-space: nowrap;">struct
- sockopt *sopt</var>, <var class="Fa" style="white-space: nowrap;">int
- level</var>, <var class="Fa" style="white-space: nowrap;">int name</var>,
- <var class="Fa" style="white-space: nowrap;">size_t size</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">sockopt_destroy</code>(<var class="Fa" style="white-space: nowrap;">struct
- sockopt *sopt</var>);</p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">sockopt_get</code>(<var class="Fa" style="white-space: nowrap;">struct
- sockopt *sopt</var>, <var class="Fa" style="white-space: nowrap;">void
- *value</var>, <var class="Fa" style="white-space: nowrap;">size_t
- size</var>);</p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">sockopt_getint</code>(<var class="Fa" style="white-space: nowrap;">struct
- sockopt *sopt</var>, <var class="Fa" style="white-space: nowrap;">int
- *value</var>);</p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">sockopt_set</code>(<var class="Fa" style="white-space: nowrap;">struct
- sockopt *sopt</var>, <var class="Fa" style="white-space: nowrap;">const void
- *value</var>, <var class="Fa" style="white-space: nowrap;">size_t
- size</var>);</p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">sockopt_setint</code>(<var class="Fa" style="white-space: nowrap;">struct
- sockopt *sopt</var>, <var class="Fa" style="white-space: nowrap;">int
- value</var>);</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">The <var class="Ft">sockopt</var> structure is used to pass a
- socket option and associated value:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>struct sockopt {
- int sopt_level; /* option level */
- int sopt_name; /* option name */
- size_t sopt_size; /* data length */
- size_t sopt_retsize; /* returned data length */
- void * sopt_data; /* data pointer */
- uint8_t sopt_buf[sizeof(int)]; /* internal storage */
-};</pre>
-</div>
-<p class="Pp">The internal storage is used for the common case of values up to
- integer size so that memory allocation is not required and sopt_data will
- point to this in that case.</p>
-<p class="Pp">Rather than provide accessor functions, the
- <var class="Ft">sockopt</var> structure is public and the contents are
- expected to be internally consistent, but the normal practice would be to
- use the appropriate methods for storage and retrieval of values where a
- known datatype is expected, as the size will be verified.</p>
-<p class="Pp">Note: a sockopt structure may only be used for a single
- level/name/size combination. If the structure is to be re-used, it must be
- destroyed and re-initialized with the new values.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="OPTIONS"><a class="permalink" href="#OPTIONS">OPTIONS</a></h1>
-<dl class="Bl-tag">
- <dt><code class="Cd">options DIAGNOSTIC</code></dt>
- <dd>Kernels compiled with the <code class="Dv">DIAGNOSTIC</code> option will
- perform basic sanity checks on socket options operations.</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="FUNCTIONS"><a class="permalink" href="#FUNCTIONS">FUNCTIONS</a></h1>
-<dl class="Bl-tag">
- <dt id="sockopt_init"><a class="permalink" href="#sockopt_init"><code class="Fn">sockopt_init</code></a>(<var class="Fa">sopt</var>,
- <var class="Fa">level</var>, <var class="Fa">name</var>,
- <var class="Fa">size</var>)</dt>
- <dd>Initialise sockopt storage. If <var class="Ar">size</var> is given,
- <code class="Fn">sockopt_init</code>() will arrange for sopt_data to point
- to a buffer of <var class="Ar">size</var> bytes for the sockopt value.
- Where memory needs to be allocated to satisfy this,
- <code class="Fn">sockopt_init</code>() may sleep.</dd>
- <dt id="sockopt_destroy"><a class="permalink" href="#sockopt_destroy"><code class="Fn">sockopt_destroy</code></a>(<var class="Fa">sopt</var>)</dt>
- <dd>Destroy sockopt storage, releasing any allocated memory.</dd>
- <dt id="sockopt_get"><a class="permalink" href="#sockopt_get"><code class="Fn">sockopt_get</code></a>(<var class="Fa">sopt</var>,
- <var class="Fa">value</var>, <var class="Fa">size</var>)</dt>
- <dd>Copy out sockopt value. Will return <code class="Er">EINVAL</code> if an
- incorrect data size is given.</dd>
- <dt id="sockopt_getint"><a class="permalink" href="#sockopt_getint"><code class="Fn">sockopt_getint</code></a>(<var class="Fa">sopt</var>,
- <var class="Fa">value</var>)</dt>
- <dd>Common case of get sockopt integer value. Will return
- <code class="Er">EINVAL</code> if sockopt does not contain an integer
- sized value.</dd>
- <dt><code class="Fn">sockopt_set</code>(<var class="Fa">sopt</var>,
- <var class="Fa">value</var>, <var class="Fa">size</var>)</dt>
- <dd>Copy in sockopt value. The sockopt structure must contain a data field of
- <var class="Ar">size</var> bytes or be previously unset, in which case a
- data buffer may be allocated using <a class="Xr">kmem_alloc(9)</a> with
- the <code class="Dv">KM_NOSLEEP</code> flag which may cause
- <code class="Fn">sockopt_set</code>() to return
- <code class="Er">ENOMEM</code>.
- <p class="Pp" id="sockopt_set">Note: If you need to use
- <a class="permalink" href="#sockopt_set"><code class="Fn">sockopt_set</code></a>()
- in a context where memory allocation may be required and you do not wish
- to contemplate failure, the sockopt structure can be initialised in a
- more suitable context using <code class="Fn">sockopt_init</code>() which
- will not fail.</p>
- </dd>
- <dt id="sockopt_setint"><a class="permalink" href="#sockopt_setint"><code class="Fn">sockopt_setint</code></a>(<var class="Fa">sopt</var>,
- <var class="Fa">value</var>)</dt>
- <dd>Common case of set sockopt integer value. The sockopt structure must
- contain an int sized data field or be previously unset, in which case the
- data pointer will be set to the internal storage.</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="CODE_REFERENCES"><a class="permalink" href="#CODE_REFERENCES">CODE
- REFERENCES</a></h1>
-<p class="Pp">The function prototypes and sockopt structure are defined in the
- <span class="Pa">sys/sys/socketvar.h</span> header file, and the socket
- options implementation is in
- <span class="Pa">sys/kern/uipc_socket.c</span>.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
- ALSO</a></h1>
-<p class="Pp"><a class="Xr">errno(2)</a>, <a class="Xr">kmem(9)</a></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<p class="Pp">The socket options KPI was inspired by a similar KPI in
- <span class="Ux">FreeBSD</span> and first appeared in
- <span class="Ux">NetBSD 5.0</span>.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">January 3, 2018</td>
- <td class="foot-os">NetBSD 10.1</td>
- </tr>
-</table>