|
Packit Service |
a8c26c |
/***********************************************************************
|
|
Packit Service |
a8c26c |
* *
|
|
Packit Service |
a8c26c |
* This software is part of the ast package *
|
|
Packit Service |
a8c26c |
* Copyright (c) 1985-2012 AT&T Intellectual Property *
|
|
Packit Service |
a8c26c |
* and is licensed under the *
|
|
Packit Service |
a8c26c |
* Eclipse Public License, Version 1.0 *
|
|
Packit Service |
a8c26c |
* by AT&T Intellectual Property *
|
|
Packit Service |
a8c26c |
* *
|
|
Packit Service |
a8c26c |
* A copy of the License is available at *
|
|
Packit Service |
a8c26c |
* http://www.eclipse.org/org/documents/epl-v10.html *
|
|
Packit Service |
a8c26c |
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
|
|
Packit Service |
a8c26c |
* *
|
|
Packit Service |
a8c26c |
* Information and Software Systems Research *
|
|
Packit Service |
a8c26c |
* AT&T Research *
|
|
Packit Service |
a8c26c |
* Florham Park NJ *
|
|
Packit Service |
a8c26c |
* *
|
|
Packit Service |
a8c26c |
* Glenn Fowler <gsf@research.att.com> *
|
|
Packit Service |
a8c26c |
* David Korn <dgk@research.att.com> *
|
|
Packit Service |
a8c26c |
* Phong Vo <kpv@research.att.com> *
|
|
Packit Service |
a8c26c |
* *
|
|
Packit Service |
a8c26c |
***********************************************************************/
|
|
Packit Service |
a8c26c |
#ifndef _VMALLOC_H
|
|
Packit Service |
a8c26c |
#define _VMALLOC_H 1
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
/* Public header file for the virtual malloc package.
|
|
Packit Service |
a8c26c |
**
|
|
Packit Service |
a8c26c |
** Written by Kiem-Phong Vo, kpv@research.att.com, 01/16/1994.
|
|
Packit Service |
a8c26c |
*/
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define VMALLOC_VERSION 20110808L
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#if _PACKAGE_ast
|
|
Packit Service |
a8c26c |
#include <ast_std.h>
|
|
Packit Service |
a8c26c |
#else
|
|
Packit Service |
a8c26c |
#include <ast_common.h>
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
typedef struct _vmalloc_s Vmalloc_t;
|
|
Packit Service |
a8c26c |
typedef struct _vmstat_s Vmstat_t;
|
|
Packit Service |
a8c26c |
typedef struct _vmdisc_s Vmdisc_t;
|
|
Packit Service |
a8c26c |
typedef struct _vmethod_s Vmethod_t;
|
|
Packit Service |
a8c26c |
typedef struct _vmdata_s Vmdata_t;
|
|
Packit Service |
a8c26c |
typedef Void_t* (*Vmemory_f)_ARG_((Vmalloc_t*, Void_t*, size_t, size_t, Vmdisc_t*));
|
|
Packit Service |
a8c26c |
typedef int (*Vmexcept_f)_ARG_((Vmalloc_t*, int, Void_t*, Vmdisc_t*));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
struct _vmstat_s
|
|
Packit Service |
a8c26c |
{ int n_busy; /* number of busy blocks */
|
|
Packit Service |
a8c26c |
int n_free; /* number of free blocks */
|
|
Packit Service |
a8c26c |
size_t s_busy; /* total amount of busy space */
|
|
Packit Service |
a8c26c |
size_t s_free; /* total amount of free space */
|
|
Packit Service |
a8c26c |
size_t m_busy; /* largest busy piece */
|
|
Packit Service |
a8c26c |
size_t m_free; /* largest free piece */
|
|
Packit Service |
a8c26c |
int n_seg; /* number of segments */
|
|
Packit Service |
a8c26c |
size_t extent; /* total size of region */
|
|
Packit Service |
a8c26c |
int n_region; /* #parallel regions (Vmregion) */
|
|
Packit Service |
a8c26c |
int n_open; /* #calls that finds open reg */
|
|
Packit Service |
a8c26c |
int n_lock; /* #calls where reg was locked */
|
|
Packit Service |
a8c26c |
int n_probe; /* #probes to find a region */
|
|
Packit Service |
a8c26c |
int mode; /* region mode bits */
|
|
Packit Service |
a8c26c |
};
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
struct _vmdisc_s
|
|
Packit Service |
a8c26c |
{ Vmemory_f memoryf; /* memory manipulator */
|
|
Packit Service |
a8c26c |
Vmexcept_f exceptf; /* exception handler */
|
|
Packit Service |
a8c26c |
size_t round; /* rounding requirement */
|
|
Packit Service |
a8c26c |
size_t size; /* actual size of discipline */
|
|
Packit Service |
a8c26c |
};
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
struct _vmethod_s
|
|
Packit Service |
a8c26c |
{ Void_t* (*allocf)_ARG_((Vmalloc_t*,size_t,int));
|
|
Packit Service |
a8c26c |
Void_t* (*resizef)_ARG_((Vmalloc_t*,Void_t*,size_t,int,int));
|
|
Packit Service |
a8c26c |
int (*freef)_ARG_((Vmalloc_t*,Void_t*,int));
|
|
Packit Service |
a8c26c |
long (*addrf)_ARG_((Vmalloc_t*,Void_t*,int));
|
|
Packit Service |
a8c26c |
long (*sizef)_ARG_((Vmalloc_t*,Void_t*,int));
|
|
Packit Service |
a8c26c |
int (*compactf)_ARG_((Vmalloc_t*,int));
|
|
Packit Service |
a8c26c |
Void_t* (*alignf)_ARG_((Vmalloc_t*,size_t,size_t,int));
|
|
Packit Service |
a8c26c |
unsigned short meth;
|
|
Packit Service |
a8c26c |
};
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
struct _vmalloc_s
|
|
Packit Service |
a8c26c |
{ Vmethod_t meth; /* method for allocation */
|
|
Packit Service |
a8c26c |
char* file; /* file name */
|
|
Packit Service |
a8c26c |
int line; /* line number */
|
|
Packit Service |
a8c26c |
char* func; /* calling function */
|
|
Packit Service |
a8c26c |
Vmdisc_t* disc; /* discipline to get space */
|
|
Packit Service |
a8c26c |
Vmdata_t* data; /* the real region data */
|
|
Packit Service |
a8c26c |
Vmalloc_t* next; /* linked list of regions */
|
|
Packit Service |
a8c26c |
};
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define VM_TRUST 0000000 /* obsolete */
|
|
Packit Service |
a8c26c |
#define VM_TRACE 0000001 /* generate traces of calls */
|
|
Packit Service |
a8c26c |
#define VM_DBCHECK 0000002 /* check for boundary overwrite */
|
|
Packit Service |
a8c26c |
#define VM_DBABORT 0000004 /* abort on any warning */
|
|
Packit Service |
a8c26c |
#define VM_SHARE 0000010 /* sharable across processes */
|
|
Packit Service |
a8c26c |
#define VM_MEMORYF 0000020 /* vm was allocated by memoryf */
|
|
Packit Service |
a8c26c |
#define VM_FLAGS 0000017 /* user-settable flags */
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define VM_MTBEST 0000100 /* Vmbest method */
|
|
Packit Service |
a8c26c |
#define VM_MTPOOL 0000200 /* Vmpool method */
|
|
Packit Service |
a8c26c |
#define VM_MTLAST 0000400 /* Vmlast method */
|
|
Packit Service |
a8c26c |
#define VM_MTDEBUG 0001000 /* Vmdebug method */
|
|
Packit Service |
a8c26c |
#define VM_MTPROFILE 0002000 /* Vmdebug method */
|
|
Packit Service |
a8c26c |
#define VM_METHODS 0003700 /* available allocation methods */
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define VM_RSCOPY 0000001 /* copy old contents */
|
|
Packit Service |
a8c26c |
#define VM_RSMOVE 0000002 /* old contents is moveable */
|
|
Packit Service |
a8c26c |
#define VM_RSZERO 0000004 /* clear new space */
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
/* exception types */
|
|
Packit Service |
a8c26c |
#define VM_OPEN 1 /* region being opened */
|
|
Packit Service |
a8c26c |
#define VM_ENDOPEN 2 /* end of region opening */
|
|
Packit Service |
a8c26c |
#define VM_CLOSE 3 /* announce being closed */
|
|
Packit Service |
a8c26c |
#define VM_ENDCLOSE 4 /* end of region closing */
|
|
Packit Service |
a8c26c |
#define VM_DISC 5 /* discipline being changed */
|
|
Packit Service |
a8c26c |
#define VM_NOMEM 6 /* can't obtain memory */
|
|
Packit Service |
a8c26c |
#define VM_BADADDR (-1) /* currently a no-op */
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
/* for application-specific data in shared/persistent regions */
|
|
Packit Service |
a8c26c |
#define VM_MMGET 0 /* get data value (void*) */
|
|
Packit Service |
a8c26c |
#define VM_MMSET 1 /* set data value (void*) */
|
|
Packit Service |
a8c26c |
#define VM_MMADD 2 /* add data value (long) */
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
_BEGIN_EXTERNS_ /* public data */
|
|
Packit Service |
a8c26c |
#if _BLD_vmalloc && defined(__EXPORT__)
|
|
Packit Service |
a8c26c |
#define extern extern __EXPORT__
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
#if !_BLD_vmalloc && defined(__IMPORT__)
|
|
Packit Service |
a8c26c |
#define extern extern __IMPORT__
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Vmethod_t* Vmbest; /* best allocation */
|
|
Packit Service |
a8c26c |
extern Vmethod_t* Vmlast; /* last-block allocation */
|
|
Packit Service |
a8c26c |
extern Vmethod_t* Vmpool; /* pool allocation */
|
|
Packit Service |
a8c26c |
extern Vmethod_t* Vmdebug; /* allocation with debugging */
|
|
Packit Service |
a8c26c |
extern Vmethod_t* Vmprofile; /* profiling memory usage */
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Vmdisc_t* Vmdcsystem; /* get memory from the OS */
|
|
Packit Service |
a8c26c |
extern Vmdisc_t* Vmdcheap; /* get memory from Vmheap */
|
|
Packit Service |
a8c26c |
extern Vmdisc_t* Vmdcsbrk; /* like Vmdcsystem - legacy use */
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Vmalloc_t _Vmheap; /* heap region - use with care! */
|
|
Packit Service |
a8c26c |
extern Vmalloc_t* Vmheap; /* = &_Vmheap - safe to use */
|
|
Packit Service |
a8c26c |
extern Vmalloc_t* Vmregion; /* malloc region */
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#undef extern
|
|
Packit Service |
a8c26c |
_END_EXTERNS_
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
_BEGIN_EXTERNS_ /* public functions */
|
|
Packit Service |
a8c26c |
#if _BLD_vmalloc && defined(__EXPORT__)
|
|
Packit Service |
a8c26c |
#define extern __EXPORT__
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Vmalloc_t* vmopen _ARG_(( Vmdisc_t*, Vmethod_t*, int ));
|
|
Packit Service |
a8c26c |
extern int vmclose _ARG_(( Vmalloc_t* ));
|
|
Packit Service |
a8c26c |
extern int vmclear _ARG_(( Vmalloc_t* ));
|
|
Packit Service |
a8c26c |
extern int vmcompact _ARG_(( Vmalloc_t* ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Vmdisc_t* vmdisc _ARG_(( Vmalloc_t*, Vmdisc_t* ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Vmalloc_t* vmmopen _ARG_(( char*, int, ssize_t ));
|
|
Packit Service |
a8c26c |
extern Void_t* vmmvalue _ARG_(( Vmalloc_t*, int, Void_t*, int ));
|
|
Packit Service |
a8c26c |
extern void vmmrelease _ARG_(( Vmalloc_t*, int ));
|
|
Packit Service |
a8c26c |
extern Void_t* vmmaddress _ARG_(( size_t ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Void_t* vmalloc _ARG_(( Vmalloc_t*, size_t ));
|
|
Packit Service |
a8c26c |
extern Void_t* vmalign _ARG_(( Vmalloc_t*, size_t, size_t ));
|
|
Packit Service |
a8c26c |
extern Void_t* vmresize _ARG_(( Vmalloc_t*, Void_t*, size_t, int ));
|
|
Packit Service |
a8c26c |
extern Void_t* vmgetmem _ARG_(( Vmalloc_t*, Void_t*, size_t ));
|
|
Packit Service |
a8c26c |
extern int vmfree _ARG_(( Vmalloc_t*, Void_t* ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern long vmaddr _ARG_(( Vmalloc_t*, Void_t* ));
|
|
Packit Service |
a8c26c |
extern long vmsize _ARG_(( Vmalloc_t*, Void_t* ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Vmalloc_t* vmregion _ARG_(( Void_t* ));
|
|
Packit Service |
a8c26c |
extern Void_t* vmsegment _ARG_(( Vmalloc_t*, Void_t* ));
|
|
Packit Service |
a8c26c |
extern int vmset _ARG_(( Vmalloc_t*, int, int ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern Void_t* vmdbwatch _ARG_(( Void_t* ));
|
|
Packit Service |
a8c26c |
extern int vmdbcheck _ARG_(( Vmalloc_t* ));
|
|
Packit Service |
a8c26c |
extern int vmdebug _ARG_(( int ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern int vmprofile _ARG_(( Vmalloc_t*, int ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern int vmtrace _ARG_(( int ));
|
|
Packit Service |
a8c26c |
extern int vmtrbusy _ARG_((Vmalloc_t*));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern int vmstat _ARG_((Vmalloc_t*, Vmstat_t*));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
extern int vmwalk _ARG_((Vmalloc_t*,
|
|
Packit Service |
a8c26c |
int(*)(Vmalloc_t*,Void_t*,size_t,Vmdisc_t*,Void_t*), Void_t*));
|
|
Packit Service |
a8c26c |
extern char* vmstrdup _ARG_((Vmalloc_t*, const char*));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#if !defined(_BLD_vmalloc) && !defined(_AST_STD_H) && \
|
|
Packit Service |
a8c26c |
!defined(__stdlib_h) && !defined(__STDLIB_H) && \
|
|
Packit Service |
a8c26c |
!defined(_STDLIB_INCLUDED) && !defined(_INC_STDLIB)
|
|
Packit Service |
a8c26c |
extern Void_t* malloc _ARG_(( size_t ));
|
|
Packit Service |
a8c26c |
extern Void_t* realloc _ARG_(( Void_t*, size_t ));
|
|
Packit Service |
a8c26c |
extern void free _ARG_(( Void_t* ));
|
|
Packit Service |
a8c26c |
extern void cfree _ARG_(( Void_t* ));
|
|
Packit Service |
a8c26c |
extern Void_t* calloc _ARG_(( size_t, size_t ));
|
|
Packit Service |
a8c26c |
extern Void_t* memalign _ARG_(( size_t, size_t ));
|
|
Packit Service |
a8c26c |
extern Void_t* valloc _ARG_(( size_t ));
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
extern int setregmax _ARG_(( int ));
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#undef extern
|
|
Packit Service |
a8c26c |
_END_EXTERNS_
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
/* to coerce any value to a Vmalloc_t*, make ANSI happy */
|
|
Packit Service |
a8c26c |
#define _VM_(vm) ((Vmalloc_t*)(vm))
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
/* enable recording of where a call originates from */
|
|
Packit Service |
a8c26c |
#ifdef VMFL
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#if defined(__FILE__)
|
|
Packit Service |
a8c26c |
#define _VMFILE_(vm) (_VM_(vm)->file = (char*)__FILE__)
|
|
Packit Service |
a8c26c |
#else
|
|
Packit Service |
a8c26c |
#define _VMFILE_(vm) (_VM_(vm)->file = (char*)0)
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#if defined(__LINE__)
|
|
Packit Service |
a8c26c |
#define _VMLINE_(vm) (_VM_(vm)->line = __LINE__)
|
|
Packit Service |
a8c26c |
#else
|
|
Packit Service |
a8c26c |
#define _VMLINE_(vm) (_VM_(vm)->line = 0)
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#if defined(__FUNCTION__)
|
|
Packit Service |
a8c26c |
#define _VMFUNC_(vm) (_VM_(vm)->func = (char*)__FUNCTION__)
|
|
Packit Service |
a8c26c |
#else
|
|
Packit Service |
a8c26c |
#define _VMFUNC_(vm) (_VM_(vm)->func = (char*)0)
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define _VMFL_(vm) (_VMFILE_(vm), _VMLINE_(vm), _VMFUNC_(vm))
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define vmalloc(vm,sz) (_VMFL_(vm), \
|
|
Packit Service |
a8c26c |
(*(_VM_(vm)->meth.allocf))((vm),(sz),0) )
|
|
Packit Service |
a8c26c |
#define vmresize(vm,d,sz,type) (_VMFL_(vm), \
|
|
Packit Service |
a8c26c |
(*(_VM_(vm)->meth.resizef))\
|
|
Packit Service |
a8c26c |
((vm),(Void_t*)(d),(sz),(type),0) )
|
|
Packit Service |
a8c26c |
#define vmfree(vm,d) (_VMFL_(vm), \
|
|
Packit Service |
a8c26c |
(*(_VM_(vm)->meth.freef))((vm),(Void_t*)(d),0) )
|
|
Packit Service |
a8c26c |
#define vmalign(vm,sz,align) (_VMFL_(vm), \
|
|
Packit Service |
a8c26c |
(*(_VM_(vm)->meth.alignf))((vm),(sz),(align),0) )
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#undef malloc
|
|
Packit Service |
a8c26c |
#undef realloc
|
|
Packit Service |
a8c26c |
#undef calloc
|
|
Packit Service |
a8c26c |
#undef free
|
|
Packit Service |
a8c26c |
#undef memalign
|
|
Packit Service |
a8c26c |
#undef valloc
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#if _map_malloc
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define malloc(s) (_VMFL_(Vmregion), _ast_malloc((size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define realloc(d,s) (_VMFL_(Vmregion), _ast_realloc((Void_t*)(d),(size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define calloc(n,s) (_VMFL_(Vmregion), _ast_calloc((size_t)n, (size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define free(d) (_VMFL_(Vmregion), _ast_free((Void_t*)(d)) )
|
|
Packit Service |
a8c26c |
#define memalign(a,s) (_VMFL_(Vmregion), _ast_memalign((size_t)(a),(size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define valloc(s) (_VMFL_(Vmregion), _ast_valloc((size_t)(s) )
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#else
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#if !_std_malloc
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#if __STD_C || defined(__STDPP__) || defined(__GNUC__)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define malloc(s) (_VMFL_(Vmregion), malloc((size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define realloc(d,s) (_VMFL_(Vmregion), realloc((Void_t*)(d),(size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define calloc(n,s) (_VMFL_(Vmregion), calloc((size_t)n, (size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define free(d) (_VMFL_(Vmregion), free((Void_t*)(d)) )
|
|
Packit Service |
a8c26c |
#define memalign(a,s) (_VMFL_(Vmregion), memalign((size_t)(a),(size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define valloc(s) (_VMFL_(Vmregion), valloc((size_t)(s) )
|
|
Packit Service |
a8c26c |
#ifndef strdup
|
|
Packit Service |
a8c26c |
#define strdup(s) ( _VMFL_(Vmregion), (strdup)((char*)(s)) )
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#else
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define _VMNM_(a,b,c,d,e,f) a/**/b/**/c/**/d/**/e/**/f
|
|
Packit Service |
a8c26c |
#define malloc(s) (_VMFL_(Vmregion), _VMNM_(mallo,/,*,*,/,c)\
|
|
Packit Service |
a8c26c |
((size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define realloc(d,s) (_VMFL_(Vmregion), _VMNM_(reallo,/,*,*,/,c)\
|
|
Packit Service |
a8c26c |
((Void_t*)(d),(size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define calloc(n,s) (_VMFL_(Vmregion), _VMNM_(callo,/,*,*,/,c)\
|
|
Packit Service |
a8c26c |
((size_t)n, (size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define free(d) (_VMFL_(Vmregion), _VMNM_(fre,/,*,*,/,e)((Void_t*)(d)) )
|
|
Packit Service |
a8c26c |
#define memalign(a,s) (_VMFL_(Vmregion), _VMNM_(memalig,/,*,*,/,n)\
|
|
Packit Service |
a8c26c |
((size_t)(a),(size_t)(s)) )
|
|
Packit Service |
a8c26c |
#define valloc(s) (_VMFL_(Vmregion), _VMNM_(vallo,/,*,*,/,c)\
|
|
Packit Service |
a8c26c |
((size_t)(s) )
|
|
Packit Service |
a8c26c |
#ifndef strdup
|
|
Packit Service |
a8c26c |
#define strdup(s) ( _VMFL_(Vmregion), _VMNM_(strdu,/,*,*,/,p)\
|
|
Packit Service |
a8c26c |
((char*)(s)) )
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#endif /*__STD_C || defined(__STDPP__) || defined(__GNUC__)*/
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define cfree(d) free(d)
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#endif /*!_std_malloc*/
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#endif /*_map_malloc*/
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#endif /*VMFL*/
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
/* non-debugging/profiling allocation calls */
|
|
Packit Service |
a8c26c |
#ifndef vmalloc
|
|
Packit Service |
a8c26c |
#define vmalloc(vm,sz) (*(_VM_(vm)->meth.allocf))((vm),(sz),0)
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#ifndef vmresize
|
|
Packit Service |
a8c26c |
#define vmresize(vm,d,sz,type) (*(_VM_(vm)->meth.resizef))\
|
|
Packit Service |
a8c26c |
((vm),(Void_t*)(d),(sz),(type),0)
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#ifndef vmfree
|
|
Packit Service |
a8c26c |
#define vmfree(vm,d) (*(_VM_(vm)->meth.freef))((vm),(Void_t*)(d),0)
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#ifndef vmalign
|
|
Packit Service |
a8c26c |
#define vmalign(vm,sz,align) (*(_VM_(vm)->meth.alignf))((vm),(sz),(align),0)
|
|
Packit Service |
a8c26c |
#endif
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define vmaddr(vm,addr) (*(_VM_(vm)->meth.addrf))((vm),(Void_t*)(addr),0)
|
|
Packit Service |
a8c26c |
#define vmsize(vm,addr) (*(_VM_(vm)->meth.sizef))((vm),(Void_t*)(addr),0)
|
|
Packit Service |
a8c26c |
#define vmcompact(vm) (*(_VM_(vm)->meth.compactf))((vm),0)
|
|
Packit Service |
a8c26c |
#define vmoldof(v,p,t,n,x) (t*)vmresize((v), (p), sizeof(t)*(n)+(x), \
|
|
Packit Service |
a8c26c |
(VM_RSMOVE) )
|
|
Packit Service |
a8c26c |
#define vmnewof(v,p,t,n,x) (t*)vmresize((v), (p), sizeof(t)*(n)+(x), \
|
|
Packit Service |
a8c26c |
(VM_RSMOVE|VM_RSCOPY|VM_RSZERO) )
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#define vmdata(vm) ((Void_t*)(_VM_(vm)->data) )
|
|
Packit Service |
a8c26c |
#define vmlocked(vm) (*((unsigned int*)(_VM_(vm)->data)) )
|
|
Packit Service |
a8c26c |
|
|
Packit Service |
a8c26c |
#endif /* _VMALLOC_H */
|