lwres_buffer man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

LWRES_BUFFER(3)					  LWRES_BUFFER(3)

NAME
       lwres_buffer_init,		 lwres_buffer_invalidate,
       lwres_buffer_add,		   lwres_buffer_subtract,
       lwres_buffer_clear,  lwres_buffer_first, lwres_buffer_for-
       ward,	  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 - lightweight resolver buffer  manage-
       ment

SYNOPSIS
       #include <lwres/lwbuffer.h>

       void lwres_buffer_init(lwres_buffer_t *b, void *base,
       unsigned int length);

       void lwres_buffer_invalidate(lwres_buffer_t *b);

       void lwres_buffer_add(lwres_buffer_t *b, unsigned int n);

       void lwres_buffer_subtract(lwres_buffer_t *b, unsigned int
       n);

       void lwres_buffer_clear(lwres_buffer_t *b);

       void lwres_buffer_first(lwres_buffer_t *b);

       void lwres_buffer_forward(lwres_buffer_t *b, unsigned int
       n);

       void lwres_buffer_back(lwres_buffer_t *b, unsigned int n);

       lwres_uint8_t lwres_buffer_getuint8(lwres_buffer_t *b);

       void lwres_buffer_putuint8(lwres_buffer_t *b,
       lwres_uint8_t val);

       lwres_uint16_t lwres_buffer_getuint16(lwres_buffer_t *b);

       void lwres_buffer_putuint16(lwres_buffer_t *b,
       lwres_uint16_t val);

       lwres_uint32_t lwres_buffer_getuint32(lwres_buffer_t *b);

       void lwres_buffer_putuint32(lwres_buffer_t *b,
       lwres_uint32_t val);

       void lwres_buffer_putmem(lwres_buffer_t *b, const unsigned
       char *base, unsigned int length);

       void lwres_buffer_getmem(lwres_buffer_t *b, unsigned char
       *base, unsigned int length);

DESCRIPTION
       These functions provide bounds checked access to a  region
       of  memory  where data is being read or written.	 They are
       based on, and similar to, the isc_buffer_ functions in the
       ISC library.

       A  buffer  is  a	 region of memory, together with a set of
       related subregions.  The used  region  and  the	available
       region  are  disjoint,  and  their  union  is the buffer's
       region.	The used region extends from the beginning of the
       buffer region to the last used byte.  The available region
       extends from one byte greater than the last used	 byte  to
       the  end	 of  the  buffer's  region.  The size of the used
       region can be changed using various buffer commands.  Ini-
       tially, the used region is empty.

       The  used  region  is further subdivided into two disjoint
       regions: the consumed region  and  the  remaining  region.
       The  union  of  these two regions is the used region.  The
       consumed region extends from the	 beginning  of	the  used
       region  to  the	byte  before the current offset (if any).
       The remaining region the current pointer to the end of the
       used  region.   The  size  of  the  consumed region can be
       changed using various  buffer  commands.	  Initially,  the
       consumed region is empty.

       The  active  region  is	an  (optional)	subregion  of the
       remaining region.  It extends from the current  offset  to
       an  offset in the remaining region.  Initially, the active
       region is empty.	 If the current	 offset	 advances  beyond
       the chosen offset, the active region will also be empty.

	  /------------entire length---------------\\
	  /----- used region -----\\/-- available --\\
	  +----------------------------------------+
	  | consumed  | remaining |		   |
	  +----------------------------------------+
	  a	      b	    c	  d		   e

	 a == base of buffer.
	 b == current pointer.	Can be anywhere between a and d.
	 c == active pointer.  Meaningful between b and d.
	 d == used pointer.
	 e == length of buffer.

	 a-e == entire length of buffer.
	 a-d == used region.
	 a-b == consumed region.
	 b-d == remaining region.
	 b-c == optional active region.

       lwres_buffer_init()  initializes the lwres_buffer_t *b and
       assocates it with the memory region of size  length  bytes
       starting at location base.

       lwres_buffer_invalidate()  marks the buffer *b as invalid.
       Invalidating a buffer after use is not required, but makes
       it possible to catch its possible accidental use.

       The  functions  lwres_buffer_add()  and	lwres_buffer_sub-
       tract() respectively increase and decrease the used  space
       in  buffer  *b  by n bytes.  lwres_buffer_add() checks for
       buffer overflow	and  lwres_buffer_subtract()  checks  for
       underflow.   These functions do not allocate or deallocate
       memory.	They just change the value of used.

       A buffer is re-initialised by  lwres_buffer_clear().   The
       function sets used , current and active to zero.

       lwres_buffer_first  makes the consumed region of buffer *p
       empty by	 setting  current  to  zero  (the  start  of  the
       buffer).

       lwres_buffer_forward()  increases  the  consumed region of
       buffer *b by n bytes, checking for  overflow.   Similarly,
       lwres_buffer_back()  decreases  buffer b's consumed region
       by n bytes and checks for underflow.

       lwres_buffer_getuint8() reads an	 unsigned  8-bit  integer
       from  *b	 and  returns it.  lwres_buffer_putuint8() writes
       the unsigned 8-bit integer val to buffer *b.

       lwres_buffer_getuint16() and lwres_buffer_getuint32()  are
       identical  to  lwres_buffer_putuint8()  except  that  they
       respectively read an unsigned 16-bit or 32-bit integer  in
       network	byte order from b.  Similarly, lwres_buffer_putu-
       int16() and lwres_buffer_putuint32() writes  the	 unsigned
       16-bit  or 32-bit integer val to buffer b, in network byte
       order.

       Arbitrary amounts of data  are  read  or	 written  from	a
       lightweight resolver buffer with lwres_buffer_getmem() and
       lwres_buffer_putmem() respectively.  lwres_buffer_putmem()
       copies  length  bytes of memory at base to b.  Conversely,
       lwres_buffer_getmem() copies length bytes of memory from b
       to base.

BIND9			   Jun 30, 2000		  LWRES_BUFFER(3)
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net