diff options
Diffstat (limited to 'static/netbsd/man9/sockopt.9 3.html')
| -rw-r--r-- | static/netbsd/man9/sockopt.9 3.html | 157 |
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> - — <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 - <<a class="In">sys/socketvar.h</a>></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> |
