mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-25 09:41:15 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1 72102866-910b-0410-8b05-ffd578937521
31 lines
1.2 KiB
C
31 lines
1.2 KiB
C
#ifndef __zone_h_OBJECTS_INCLUDE
|
|
#define __zone_h_OBJECTS_INCLUDE
|
|
|
|
#include <stddef.h>
|
|
|
|
typedef struct _NXZone
|
|
{
|
|
void *(*realloc)(struct _NXZone *zonep, void *ptr, size_t size);
|
|
void *(*malloc)(struct _NXZone *zonep, size_t size);
|
|
void (*free)(struct _NXZone *zonep, void *ptr);
|
|
void (*destroy)(struct _NXZone *zonep);
|
|
} NXZone;
|
|
|
|
#define NX_NOZONE ((NXZone *)0)
|
|
#define NXZoneMalloc(zonep, size) ((*(zonep)->malloc)(zonep, size))
|
|
#define NXZoneRealloc(zonep, ptr, size) ((*(zonep)->realloc)(zonep, ptr, size))
|
|
#define NXZoneFree(zonep, ptr) ((*(zonep)->free)(zonep, ptr))
|
|
#define NXDestroyZone(zonep) ((*(zonep)->destroy)(zonep))
|
|
|
|
extern NXZone *NXDefaultMallocZone(void);
|
|
extern NXZone *NXCreateZone(size_t startSize, size_t granularity, int canFree);
|
|
extern NXZone *NXCreateChildZone(NXZone *parentZone, size_t startSize,
|
|
size_t granularity, int canFree);
|
|
extern void NXMergeZone(NXZone *zonep);
|
|
extern void *NXZoneCalloc(NXZone *zonep, size_t numElems, size_t byteSize);
|
|
extern NXZone *NXZoneFromPtr(void *ptr);
|
|
extern void NXZonePtrInfo(void *ptr);
|
|
extern void NXNameZone(NXZone *z, const char *name);
|
|
extern int NXMallocCheck(void);
|
|
|
|
#endif /* __zone_h_OBJECTS_INCLUDE */
|