main index

section index




/*-------------------------------------------------------------*/
/***************************************************************
 * A netwib_bufpool permits to obtain and release memory,      *
 * without having to malloc and free it : this is done once.   *
 ***************************************************************/

/*-------------------------------------------------------------*/
typedef struct {
  netwib_bool inuse;
  netwib_buf buf;
} netwib_bufpool_item;
typedef struct {
  netwib_uint32 numinit;
  netwib_uint32 startsearchat;
  netwib_bufpool_item *pitems;
  netwib_uint32 pitemssize;
} netwib_bufpool;

/*-------------------------------------------------------------*/
/* Name : netwib_bufpool_init
   Description :
     Initialize a netwib_bufpool.
   Input parameter(s) :
   Input/output parameter(s) :
     *pbufpool : bufpool initialized
   Output parameter(s) :
   Normal return values :
     NETWIB_ERR_OK : ok
*/
netwib_err netwib_bufpool_init(netwib_bufpool *pbufpool);

/*-------------------------------------------------------------*/
/* Name : netwib_bufpool_close
   Description :
     Close a netwib_bufpool.
   Input parameter(s) :
   Input/output parameter(s) :
     *pbufpool : bufpool closed
   Output parameter(s) :
   Normal return values :
     NETWIB_ERR_OK : ok
*/
netwib_err netwib_bufpool_close(netwib_bufpool *pbufpool);

/*-------------------------------------------------------------*/
/* Name : netwib_bufpool_buf_init
   Description :
     Give a buffer pointer to user.
   Input parameter(s) :
   Input/output parameter(s) :
     *pbufpool : bufpool
   Output parameter(s) :
     *ppbuf : pointer obtained
   Normal return values :
     NETWIB_ERR_OK : ok
*/
netwib_err netwib_bufpool_buf_init(netwib_bufpool *pbufpool,
                                   netwib_buf **ppbuf);

/*-------------------------------------------------------------*/
/* Name : netwib_bufpool_buf_close
   Description :
     The user indicates he does not need the buffer anymore.
   Input parameter(s) :
   Input/output parameter(s) :
     *pbufpool : bufpool
     *ppbuf : pointer to close
   Output parameter(s) :
   Normal return values :
     NETWIB_ERR_OK : ok
*/
netwib_err netwib_bufpool_buf_close(netwib_bufpool *pbufpool,
                                    netwib_buf **ppbuf);







main index

section index