File: zone.h

package info (click to toggle)
gstep-extensions 0.8.5.990905-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 592 kB
  • ctags: 429
  • sloc: objc: 2,819; sh: 1,836; ansic: 860; makefile: 209; lex: 194
file content (31 lines) | stat: -rw-r--r-- 1,193 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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 */