lwres_buffer.html revision 8a66318e41ed14c5a88130e8c362610e8faa2121
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<!--
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - Copyright (C) 2001 Internet Software Consortium.
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews -
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson - Permission to use, copy, modify, and 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
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<!-- $Id: lwres_buffer.html,v 1.5 2004/03/05 08:32:19 marka Exp $ -->
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<HTML
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><HEAD
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><TITLE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer</TITLE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><META
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonNAME="GENERATOR"
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsCONTENT="Modular DocBook HTML Stylesheet Version 1.73
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson"></HEAD
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><BODY
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="REFENTRY"
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonBGCOLOR="#FFFFFF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonTEXT="#000000"
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonLINK="#0000FF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonVLINK="#840084"
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonALINK="#0000FF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><H1
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><A
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonNAME="AEN1"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer</A
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></H1
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><DIV
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="REFNAMEDIV"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><A
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonNAME="AEN8"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></A
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><H2
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>Name</H2
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>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
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><DIV
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="REFSYNOPSISDIV"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><A
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonNAME="AEN26"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></A
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><H2
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>Synopsis</H2
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><DIV
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCSYNOPSIS"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><A
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonNAME="AEN27"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></A
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><PRE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCSYNOPSISINFO"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>#include &lt;lwres/lwbuffer.h&gt;</PRE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_init</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, void *base, unsigned int length);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_invalidate</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_add</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, unsigned int n);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_subtract</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, unsigned int n);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_clear</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_first</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_forward</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, unsigned int n);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_back</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, unsigned int n);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_uint8_t
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_getuint8</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_putuint8</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, lwres_uint8_t val);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_uint16_t
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_getuint16</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_putuint16</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, lwres_uint16_t val);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_uint32_t
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_getuint32</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_putuint32</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, lwres_uint32_t val);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_putmem</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, const unsigned char *base, unsigned int length);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCDEF"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>void
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlwres_buffer_getmem</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>(lwres_buffer_t *b, unsigned char *base, unsigned int length);</CODE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></DIV
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></DIV
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><DIV
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="REFSECT1"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><A
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonNAME="AEN106"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></A
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><H2
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>DESCRIPTION</H2
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>These functions provide bounds checked access to a region of memory
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonwhere data is being read or written.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThey are based on, and similar to, the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="LITERAL"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>isc_buffer_</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonfunctions in the ISC library.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>A buffer is a region of memory, together with a set of related
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonsubregions.
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsThe <SPAN
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsCLASS="emphasis"
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="EMPHASIS"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>used region</I
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews></SPAN
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson> and the
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<SPAN
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsCLASS="emphasis"
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="EMPHASIS"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>available</I
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews></SPAN
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson> region are disjoint, and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssontheir union is the buffer's region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThe used region extends from the beginning of the buffer region to the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonlast used byte.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThe available region extends from one byte greater than the last used
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbyte to the end of the buffer's region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThe size of the used region can be changed using various
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbuffer commands.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonInitially, the used region is empty.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>The used region is further subdivided into two disjoint regions: the
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews<SPAN
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsCLASS="emphasis"
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="EMPHASIS"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>consumed region</I
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews></SPAN
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews> and the <SPAN
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsCLASS="emphasis"
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="EMPHASIS"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>remaining region</I
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews></SPAN
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThe union of these two regions is the used region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThe consumed region extends from the beginning of the used region to
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrewsthe byte before the <SPAN
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsCLASS="emphasis"
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="EMPHASIS"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>current</I
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews></SPAN
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson> offset (if any).
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsThe <SPAN
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsCLASS="emphasis"
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="EMPHASIS"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>remaining</I
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews></SPAN
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson> region the current pointer to the end of the used
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonregion.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThe size of the consumed region can be changed using various
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbuffer commands.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonInitially, the consumed region is empty.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews>The <SPAN
8a66318e41ed14c5a88130e8c362610e8faa2121Mark AndrewsCLASS="emphasis"
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="EMPHASIS"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>active region</I
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews></SPAN
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson> is an (optional) subregion of the remaining
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonregion.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonIt extends from the current offset to an offset in the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonremaining region.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonInitially, the active region is empty.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonIf the current offset advances beyond the chosen offset,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonthe active region will also be empty.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><PRE
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PROGRAMLISTING"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
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
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
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.</PRE
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_init()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssoninitializes the
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<SPAN
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="TYPE"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_t</SPAN
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>*b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonand assocates it with the memory region of size
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>length</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbytes starting at location
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>base.</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_invalidate()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonmarks the buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>*b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonas invalid. Invalidating a buffer after use is not required,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbut makes it possible to catch its possible accidental use.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>The functions
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_add()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonand
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_subtract()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonrespectively increase and decrease the used space in
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbuffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>*b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonby
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>n</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbytes.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_add()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonchecks for buffer overflow and
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_subtract()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonchecks for underflow.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThese functions do not allocate or deallocate memory.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThey just change the value of
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="STRUCTFIELD"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>used</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>A buffer is re-initialised by
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_clear()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonThe function sets
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="STRUCTFIELD"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>used</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson> ,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="STRUCTFIELD"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>current</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonand
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="STRUCTFIELD"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>active</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonto zero.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_first</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonmakes the consumed region of buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>*p</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonempty by setting
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="STRUCTFIELD"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>current</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonto zero (the start of the buffer).</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_forward()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonincreases the consumed region of buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>*b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonby
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>n</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbytes, checking for overflow.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonSimilarly,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_back()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssondecreases buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>'s
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonconsumed region by
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>n</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbytes and checks for underflow.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_getuint8()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonreads an unsigned 8-bit integer from
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>*b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonand returns it.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_putuint8()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonwrites the unsigned 8-bit integer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>val</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonto buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>*b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_getuint16()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonand
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_getuint32()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonare identical to
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_putuint8()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonexcept that they respectively read an unsigned 16-bit or 32-bit integer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonin network byte order from
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonSimilarly,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_putuint16()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonand
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_putuint32()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonwrites the unsigned 16-bit or 32-bit integer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>val</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonto buffer
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonin network byte order.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>Arbitrary amounts of data are read or written from a lightweight
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonresolver buffer with
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_getmem()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonand
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_putmem()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonrespectively.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_putmem()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssoncopies
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>length</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbytes of memory at
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>base</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonto
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>.
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonConversely,
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="FUNCTION"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>lwres_buffer_getmem()</TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssoncopies
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>length</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonbytes of memory from
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>b</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafssonto
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas GustafssonCLASS="PARAMETER"
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson><I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>base</I
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></TT
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson>.</P
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></DIV
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></BODY
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson></HTML
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews>