1074ba9b2SJens Wiklander /* 2074ba9b2SJens Wiklander * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 3074ba9b2SJens Wiklander * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 4074ba9b2SJens Wiklander * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 5074ba9b2SJens Wiklander * IN NO EVENT SHALL ST BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 6074ba9b2SJens Wiklander * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 7074ba9b2SJens Wiklander * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 8074ba9b2SJens Wiklander * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 9074ba9b2SJens Wiklander * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 10074ba9b2SJens Wiklander * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 11074ba9b2SJens Wiklander * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 12074ba9b2SJens Wiklander */ 13074ba9b2SJens Wiklander 14074ba9b2SJens Wiklander /* 15074ba9b2SJens Wiklander 16074ba9b2SJens Wiklander Interface definitions for bget.c, the memory management package. 17074ba9b2SJens Wiklander 18074ba9b2SJens Wiklander */ 19074ba9b2SJens Wiklander 204e570655SJerome Forissier 21074ba9b2SJens Wiklander #ifndef _ 22074ba9b2SJens Wiklander #ifdef PROTOTYPES 23074ba9b2SJens Wiklander #define _(x) x /* If compiler knows prototypes */ 24074ba9b2SJens Wiklander #else 25074ba9b2SJens Wiklander #define _(x) () /* It it doesn't */ 26074ba9b2SJens Wiklander #endif /* PROTOTYPES */ 27074ba9b2SJens Wiklander #endif 28074ba9b2SJens Wiklander 29*17967299SJens Wiklander #define BGET_HDR_QUANTUM (2 * sizeof(long)) 30*17967299SJens Wiklander 31074ba9b2SJens Wiklander typedef long bufsize; 32b7f0111dSVolodymyr Babchuk struct bpoolset; 33b7f0111dSVolodymyr Babchuk 34b7f0111dSVolodymyr Babchuk void bpool _((void *buffer, bufsize len, struct bpoolset *poolset)); 35*17967299SJens Wiklander void *bget _((bufsize align, bufsize hdr_size, bufsize size, struct bpoolset *poolset)); 36*17967299SJens Wiklander void *bgetz _((bufsize align, bufsize hdr_size, bufsize size, struct bpoolset *poolset)); 37*17967299SJens Wiklander void *bgetr _((void *buffer, bufsize align, bufsize hdr_size, bufsize newsize, 38b7f0111dSVolodymyr Babchuk struct bpoolset *poolset)); 394e570655SJerome Forissier void brel _((void *buf, struct bpoolset *poolset, int wipe)); 40074ba9b2SJens Wiklander void bectl _((int (*compact)(bufsize sizereq, int sequence), 41074ba9b2SJens Wiklander void *(*acquire)(bufsize size), 42b7f0111dSVolodymyr Babchuk void (*release)(void *buf), bufsize pool_incr, 43b7f0111dSVolodymyr Babchuk struct bpoolset *poolset)); 44074ba9b2SJens Wiklander void bstats _((bufsize *curalloc, bufsize *totfree, bufsize *maxfree, 45b7f0111dSVolodymyr Babchuk long *nget, long *nrel, struct bpoolset *poolset)); 46074ba9b2SJens Wiklander void bstatse _((bufsize *pool_incr, long *npool, long *npget, 47b7f0111dSVolodymyr Babchuk long *nprel, long *ndget, long *ndrel, 48b7f0111dSVolodymyr Babchuk struct bpoolset *poolset)); 490135712bSVolodymyr Babchuk void bufdump _((void *buf)); 50074ba9b2SJens Wiklander void bpoold _((void *pool, int dumpalloc, int dumpfree)); 51074ba9b2SJens Wiklander int bpoolv _((void *pool)); 5227e8d08dSJens Wiklander 5327e8d08dSJens Wiklander #if !defined(__KERNEL__) && !defined(__LDELF__) && defined(CFG_TA_BGET_TEST) 5427e8d08dSJens Wiklander int bget_main_test(void *(*malloc_func)(size_t), void (*free_func)(void *)); 5527e8d08dSJens Wiklander #endif 56