mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-27 17:17:22 -04:00
54 lines
2 KiB
C
54 lines
2 KiB
C
/* Copyright (C) RSA Data Security, Inc. created 1993, 1996. This is an
|
|
unpublished work protected as such under copyright law. This work
|
|
contains proprietary, confidential, and trade secret information of
|
|
RSA Data Security, Inc. Use, disclosure or reproduction without the
|
|
express written authorization of RSA Data Security, Inc. is
|
|
prohibited.
|
|
*/
|
|
|
|
#ifndef DNSSAFE_BMEMPOOL_H
|
|
#define DNSSAFE_BMEMPOOL_H 1
|
|
|
|
typedef void (*B_MEMORY_POOL_DELETE_FUNCTION) PROTO_LIST ((POINTER));
|
|
|
|
typedef struct {
|
|
POINTER object;
|
|
unsigned int size;
|
|
B_MEMORY_POOL_DELETE_FUNCTION DeleteFunction;
|
|
} B_ALLOCED_DATA;
|
|
|
|
typedef struct {
|
|
struct {
|
|
unsigned int allocedCount;
|
|
unsigned int maxAllocedCount; /* Size of the actuall allocated list */
|
|
B_ALLOCED_DATA *allocedList;
|
|
/* POINTER reserved; */
|
|
} z; /* z gives the members that are zeroized by the constructor */
|
|
} B_MemoryPool;
|
|
|
|
void B_MemoryPoolConstructor PROTO_LIST ((B_MemoryPool *));
|
|
void B_MemoryPoolDestructor PROTO_LIST ((B_MemoryPool *));
|
|
|
|
void B_MemoryPoolReset PROTO_LIST ((B_MemoryPool *));
|
|
int B_MemoryPoolAlloc PROTO_LIST ((B_MemoryPool *, POINTER *, unsigned int));
|
|
int B_MemoryPoolAllocAndCopy PROTO_LIST
|
|
((B_MemoryPool *, POINTER *, POINTER, unsigned int));
|
|
int B_MemoryPoolAdoptData PROTO_LIST
|
|
((B_MemoryPool *, POINTER *, unsigned int));
|
|
int B_MemoryPoolAdoptObject PROTO_LIST
|
|
((B_MemoryPool *, POINTER *, B_MEMORY_POOL_DELETE_FUNCTION));
|
|
int B_MemoryPoolRealloc PROTO_LIST ((B_MemoryPool *, POINTER *, unsigned int));
|
|
int B_MemoryPoolSafeRealloc PROTO_LIST
|
|
((B_MemoryPool *, POINTER *, unsigned int));
|
|
void B_MemoryPoolFree PROTO_LIST ((B_MemoryPool *, POINTER *));
|
|
void B_MemoryPoolResetExceptObject PROTO_LIST ((B_MemoryPool *, POINTER));
|
|
|
|
/* These are "private member functions ".
|
|
*/
|
|
B_ALLOCED_DATA *B_MemoryPoolFindAllocedObject PROTO_LIST
|
|
((B_MemoryPool *, POINTER));
|
|
int B_MemoryPoolAdoptHelper PROTO_LIST
|
|
((B_MemoryPool *, POINTER, unsigned int, B_MEMORY_POOL_DELETE_FUNCTION));
|
|
|
|
#endif /* DNSSAFE_BMEMPOOL_H */
|
|
|