lwres_buffer.html revision 61e1dc26d62c2a0059e3ca7efe2ad0f4a5b8df92
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<!--
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - Copyright (C) 2001 Internet Software Consortium.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync -
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - Permission to use, copy, modify, and distribute this software for any
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - purpose with or without fee is hereby granted, provided that the above
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - copyright notice and this permission notice appear in all copies.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync -
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync - PERFORMANCE OF THIS SOFTWARE.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync-->
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<!-- $Id: lwres_buffer.html,v 1.7 2004/04/07 00:57:02 marka Exp $ -->
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<HTML
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><HEAD
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><TITLE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer</TITLE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><META
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncNAME="GENERATOR"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCONTENT="Modular DocBook HTML Stylesheet Version 1.73
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync"></HEAD
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><BODY
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="REFENTRY"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncBGCOLOR="#FFFFFF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncTEXT="#000000"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncLINK="#0000FF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncVLINK="#840084"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncALINK="#0000FF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><H1
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncNAME="AEN1"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer</A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></H1
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><DIV
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="REFNAMEDIV"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncNAME="AEN8"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><H2
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>Name</H2
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_init, lwres_buffer_invalidate, lwres_buffer_add, lwres_buffer_subtract, lwres_buffer_clear, lwres_buffer_first, lwres_buffer_forward, lwres_buffer_back, lwres_buffer_getuint8, lwres_buffer_putuint8, lwres_buffer_getuint16, lwres_buffer_putuint16, lwres_buffer_getuint32, lwres_buffer_putuint32, lwres_buffer_putmem, lwres_buffer_getmem&nbsp;--&nbsp;lightweight resolver buffer management</DIV
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><DIV
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="REFSYNOPSISDIV"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncNAME="AEN26"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><H2
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>Synopsis</H2
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><DIV
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCSYNOPSIS"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncNAME="AEN27"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><PRE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCSYNOPSISINFO"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>#include &lt;lwres/lwbuffer.h&gt;</PRE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_init</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, void *base, unsigned int length);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_invalidate</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_add</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, unsigned int n);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_subtract</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, unsigned int n);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_clear</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_first</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_forward</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, unsigned int n);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_back</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, unsigned int n);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_uint8_t
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_getuint8</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_putuint8</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, lwres_uint8_t val);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_uint16_t
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_getuint16</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_putuint16</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, lwres_uint16_t val);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_uint32_t
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_getuint32</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_putuint32</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, lwres_uint32_t val);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_putmem</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, const unsigned char *base, unsigned int length);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCDEF"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>void
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclwres_buffer_getmem</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>(lwres_buffer_t *b, unsigned char *base, unsigned int length);</CODE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></DIV
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></DIV
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><DIV
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="REFSECT1"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncNAME="AEN106"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></A
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><H2
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>DESCRIPTION</H2
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>These functions provide bounds checked access to a region of memory
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncwhere data is being read or written.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThey are based on, and similar to, the
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="LITERAL"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>isc_buffer_</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncfunctions in the ISC library.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>A buffer is a region of memory, together with a set of related
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncsubregions.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe <SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="emphasis"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="EMPHASIS"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>used region</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync> and the
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="emphasis"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="EMPHASIS"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>available</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync> region are disjoint, and
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynctheir union is the buffer's region.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe used region extends from the beginning of the buffer region to the
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynclast used byte.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe available region extends from one byte greater than the last used
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbyte to the end of the buffer's region.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe size of the used region can be changed using various
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbuffer commands.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncInitially, the used region is empty.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>The used region is further subdivided into two disjoint regions: the
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="emphasis"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="EMPHASIS"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>consumed region</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync> and the <SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="emphasis"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="EMPHASIS"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>remaining region</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe union of these two regions is the used region.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe consumed region extends from the beginning of the used region to
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncthe byte before the <SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="emphasis"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="EMPHASIS"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>current</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync> offset (if any).
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe <SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="emphasis"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="EMPHASIS"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>remaining</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync> region the current pointer to the end of the used
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncregion.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe size of the consumed region can be changed using various
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbuffer commands.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncInitially, the consumed region is empty.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>The <SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="emphasis"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="EMPHASIS"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>active region</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync> is an (optional) subregion of the remaining
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncregion.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncIt extends from the current offset to an offset in the
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncremaining region.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncInitially, the active region is empty.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncIf the current offset advances beyond the chosen offset,
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncthe active region will also be empty.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><PRE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PROGRAMLISTING"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync /------------entire length---------------\\
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync /----- used region -----\\/-- available --\\
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync +----------------------------------------+
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync | consumed | remaining | |
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync +----------------------------------------+
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync a b c d e
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync a == base of buffer.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync b == current pointer. Can be anywhere between a and d.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync c == active pointer. Meaningful between b and d.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync d == used pointer.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync e == length of buffer.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync a-e == entire length of buffer.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync a-d == used region.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync a-b == consumed region.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync b-d == remaining region.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync b-c == optional active region.</PRE
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_init()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncinitializes the
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="TYPE"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_t</SPAN
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>*b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncand assocates it with the memory region of size
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>length</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbytes starting at location
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>base.</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_invalidate()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncmarks the buffer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>*b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncas invalid. Invalidating a buffer after use is not required,
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbut makes it possible to catch its possible accidental use.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>The functions
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_add()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncand
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_subtract()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncrespectively increase and decrease the used space in
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbuffer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>*b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncby
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>n</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbytes.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_add()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncchecks for buffer overflow and
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_subtract()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncchecks for underflow.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThese functions do not allocate or deallocate memory.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThey just change the value of
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="STRUCTFIELD"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>used</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>A buffer is re-initialised by
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_clear()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncThe function sets
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="STRUCTFIELD"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>used</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync> ,
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="STRUCTFIELD"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>current</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncand
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="STRUCTFIELD"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>active</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncto zero.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_first</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncmakes the consumed region of buffer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>*p</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncempty by setting
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="STRUCTFIELD"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>current</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncto zero (the start of the buffer).</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_forward()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncincreases the consumed region of buffer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>*b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncby
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>n</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbytes, checking for overflow.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncSimilarly,
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_back()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncdecreases buffer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>'s
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncconsumed region by
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>n</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbytes and checks for underflow.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_getuint8()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncreads an unsigned 8-bit integer from
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>*b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncand returns it.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_putuint8()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncwrites the unsigned 8-bit integer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>val</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncto buffer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>*b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_getuint16()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncand
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_getuint32()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncare identical to
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_putuint8()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncexcept that they respectively read an unsigned 16-bit or 32-bit integer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncin network byte order from
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncSimilarly,
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_putuint16()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncand
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_putuint32()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncwrites the unsigned 16-bit or 32-bit integer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>val</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncto buffer
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>,
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncin network byte order.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>Arbitrary amounts of data are read or written from a lightweight
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncresolver buffer with
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_getmem()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncand
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_putmem()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncrespectively.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_putmem()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynccopies
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>length</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbytes of memory at
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>base</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncto
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>.
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncConversely,
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="FUNCTION"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>lwres_buffer_getmem()</TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsynccopies
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>length</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncbytes of memory from
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>b</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncto
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync<TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsyncCLASS="PARAMETER"
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync><I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>base</I
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></TT
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>.</P
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></DIV
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></BODY
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync></HTML
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync>
2e848e79ccf2e4285250a0af98ddb9eb28864878vboxsync