/*-------------------------------------------------------------*/
/***************************************************************
* 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);