lwres_buffer.html revision 010a51c427bfb6ab658fc0056955a1a5b69810be
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<!--
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - Copyright (C) 2004, 2005, 2007, 2014, 2015 Internet Systems Consortium, Inc. ("ISC")
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - Copyright (C) 2000, 2001 Internet Software Consortium.
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews -
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson - Permission to use, copy, modify, and/or distribute this software for any
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson - purpose with or without fee is hereby granted, provided that the above
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson - copyright notice and this permission notice appear in all copies.
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews -
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - PERFORMANCE OF THIS SOFTWARE.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson-->
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<html>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<head>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<title>lwres_buffer</title>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</head>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" title="lwres_buffer">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<a name="idp60651600"></a><div class="titlepage"></div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <div class="refnamediv">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<h2>Name</h2>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_init,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_invalidate,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_add,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_subtract,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_clear,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_first,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_forward,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_back,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_getuint8,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_putuint8,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_getuint16,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_putuint16,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_getuint32,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_putuint32,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_putmem,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson lwres_buffer_getmem
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson &#8212; lightweight resolver buffer management
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <div class="refsynopsisdiv" title="Synopsis">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<h2>Synopsis</h2>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <div class="funcsynopsis">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<pre class="funcsynopsisinfo">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson#include &lt;lwres/lwbuffer.h&gt;
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</pre>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_init</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>void *<var class="pdparam">base</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>unsigned int <var class="pdparam">length</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_invalidate</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr></table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_add</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>unsigned int <var class="pdparam">n</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_subtract</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>unsigned int <var class="pdparam">n</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_clear</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr></table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_first</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr></table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_forward</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>unsigned int <var class="pdparam">n</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_back</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>unsigned int <var class="pdparam">n</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_uint8_t
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_getuint8</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr></table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_putuint8</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_uint8_t <var class="pdparam">val</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_uint16_t
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_getuint16</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr></table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_putuint16</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_uint16_t <var class="pdparam">val</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_uint32_t
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_getuint32</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr></table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_putuint32</b>(</code></td>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews</tr>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_uint32_t <var class="pdparam">val</var><code>)</code>;</td>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<div class="funcprototype-spacer">�</div>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td><code class="funcdef">
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrewsvoid
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<b class="fsfunc">lwres_buffer_putmem</b>(</code></td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>const unsigned char *<var class="pdparam">base</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>unsigned int <var class="pdparam">length</var><code>)</code>;</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews</table>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<div class="funcprototype-spacer">�</div>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<td><code class="funcdef">
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrewsvoid
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<b class="fsfunc">lwres_buffer_getmem</b>(</code></td>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<td>lwres_buffer_t *<var class="pdparam">b</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<td>�</td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<td>unsigned char *<var class="pdparam">base</var>, </td>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<tr>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<td>�</td>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<td>unsigned int <var class="pdparam">length</var><code>)</code>;</td>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews</tr>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</table>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="funcprototype-spacer">�</div>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</div>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews </div>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews <div class="refsection" title="DESCRIPTION">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<a name="idp60744784"></a><h2>DESCRIPTION</h2>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson These functions provide bounds checked access to a region of memory
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson where data is being read or written.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson They are based on, and similar to, the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="literal">isc_buffer_</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson functions in the ISC library.
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews </p>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews <p>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews A buffer is a region of memory, together with a set of related
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson subregions.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The <span class="emphasis"><em>used region</em></span> and the
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews <span class="emphasis"><em>available</em></span> region are disjoint, and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson their union is the buffer's region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The used region extends from the beginning of the buffer region to the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson last used byte.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The available region extends from one byte greater than the last used
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson byte to the end of the buffer's region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The size of the used region can be changed using various
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson buffer commands.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson Initially, the used region is empty.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The used region is further subdivided into two disjoint regions: the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <span class="emphasis"><em>consumed region</em></span> and the <span class="emphasis"><em>remaining region</em></span>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The union of these two regions is the used region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The consumed region extends from the beginning of the used region to
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson the byte before the <span class="emphasis"><em>current</em></span> offset (if any).
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The <span class="emphasis"><em>remaining</em></span> region the current pointer to the end
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson of the used
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The size of the consumed region can be changed using various
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson buffer commands.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson Initially, the consumed region is empty.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The <span class="emphasis"><em>active region</em></span> is an (optional) subregion of the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson remaining
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson It extends from the current offset to an offset in the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson remaining region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson Initially, the active region is empty.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson If the current offset advances beyond the chosen offset,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson the active region will also be empty.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <pre class="programlisting">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson /------------entire length---------------\\
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson /----- used region -----\\/-- available --\\
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson +----------------------------------------+
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson | consumed | remaining | |
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson +----------------------------------------+
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson a b c d e
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </pre>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <pre class="programlisting">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson a == base of buffer.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson b == current pointer. Can be anywhere between a and d.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson c == active pointer. Meaningful between b and d.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson d == used pointer.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson e == length of buffer.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </pre>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <pre class="programlisting">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson a-e == entire length of buffer.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson a-d == used region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson a-b == consumed region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson b-d == remaining region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson b-c == optional active region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</pre>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p><code class="function">lwres_buffer_init()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson initializes the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <span class="type">lwres_buffer_t</span>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>*b</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson and assocates it with the memory region of size
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>length</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson bytes starting at location
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>base.</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p><code class="function">lwres_buffer_invalidate()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson marks the buffer <em class="parameter"><code>*b</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson as invalid. Invalidating a buffer after use is not required,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson but makes it possible to catch its possible accidental use.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The functions
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_add()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_subtract()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson respectively increase and decrease the used space in
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>*b</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson by
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>n</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson bytes.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_add()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson checks for buffer overflow and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_subtract()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson checks for underflow.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson These functions do not allocate or deallocate memory.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson They just change the value of
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="varname">used</code>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson A buffer is re-initialised by
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_clear()</code>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson The function sets
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="varname">used</code>,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="varname">current</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="varname">active</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson to zero.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p><code class="function">lwres_buffer_first</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson makes the consumed region of buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>*p</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson empty by setting
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="varname">current</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson to zero (the start of the buffer).
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p><code class="function">lwres_buffer_forward()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson increases the consumed region of buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>*b</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson by
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>n</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson bytes, checking for overflow.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson Similarly,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_back()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson decreases buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>b</code></em>'s
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson consumed region by
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>n</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson bytes and checks for underflow.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p><code class="function">lwres_buffer_getuint8()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson reads an unsigned 8-bit integer from
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>*b</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson and returns it.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_putuint8()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson writes the unsigned 8-bit integer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>val</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson to buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>*b</code></em>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p><code class="function">lwres_buffer_getuint16()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_getuint32()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson are identical to
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_putuint8()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson except that they respectively read an unsigned 16-bit or 32-bit integer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson in network byte order from
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>b</code></em>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson Similarly,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_putuint16()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_putuint32()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson writes the unsigned 16-bit or 32-bit integer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>val</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson to buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>b</code></em>,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson in network byte order.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson Arbitrary amounts of data are read or written from a lightweight
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson resolver buffer with
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_getmem()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_putmem()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson respectively.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_putmem()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson copies
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>length</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson bytes of memory at
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>base</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson to
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>b</code></em>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson Conversely,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <code class="function">lwres_buffer_getmem()</code>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson copies
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>length</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson bytes of memory from
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>b</code></em>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson to
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <em class="parameter"><code>base</code></em>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </p>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson </div>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</div></body>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson</html>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson