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