source: git/factory/memman.h @ 26da1d

spielwiese
Last change on this file since 26da1d was 341696, checked in by Hans Schönemann <hannes@…>, 14 years ago
Adding Id property to all files git-svn-id: file:///usr/local/Singular/svn/trunk@12231 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.3 KB
Line 
1/* emacs edit mode for this file is -*- C -*- */
2/* $Id$ */
3
4#ifndef INCL_MEMMAN_H
5#define INCL_MEMMAN_H
6
7#include <config.h>
8
9#include <stdlib.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15int  mmInit( void );
16
17void mmSpecializeBlock( size_t );
18
19void mmMark( void );
20
21void mmSweep( void );
22
23void mmSwitch( void );
24
25int mmMemReal( void );
26
27int mmMemUsed( void );
28
29#define mstrdup mmStrdup
30/* char * mstrdup(char *s); */
31
32size_t mmSizeL( void* );
33
34#ifndef MDEBUG
35
36void * mmAllocBlock( size_t );
37void * mmAllocBlock0( size_t );
38
39void mmFreeBlock( void*, size_t );
40
41void * mmReallocBlock( void*, size_t, size_t );
42
43void * mmAllocSpecialized( void );
44
45void mmFreeSpecialized( void* );
46
47void * mmAlloc( size_t );
48
49void * mmRealloc( void*, size_t );
50
51void mmFree( void* );
52
53char * mmStrdup( char* );
54
55#define mmTest(A,B) TRUE
56#define mmTestL(A) TRUE
57#define mmTestP(A,B)
58#define mmTestLP(A)
59#define Free mmFreeBlock
60#define Alloc mmAllocBlock
61#define Alloc0 mmAllocBlock0
62#define ReAlloc mmReallocBlock
63#define FreeL mmFree
64#define AllocL mmAlloc
65
66#else /* MDEBUG */
67
68void * mmDBAllocBlock( size_t, char*, int );
69void * mmDBAllocBlock0( size_t, char*, int );
70
71void mmDBFreeBlock( void*, size_t, char*, int );
72
73void * mmDBReallocBlock( void*, size_t, size_t, char*, int );
74
75void * mmDBAllocSpecialized( char*, int );
76
77void mmDBFreeSpecialized( void*, char*, int );
78
79void * mmDBAlloc( size_t, char*, int );
80
81void * mmDBRealloc( void*, size_t, char*, int );
82
83void mmDBFree( void*, char*, int );
84
85char * mmDBStrdup( char * s, char *fname, int lineno);
86
87int mmDBTestBlock( const void* adr, const size_t size, const char * fname, const int lineno );
88
89int mmDBTest( const void* adr, const char * fname, const int lineno );
90
91#define mmAllocBlock(size) mmDBAllocBlock(size,__FILE__,__LINE__)
92
93#define mmFreeBlock(adr,size) mmDBFreeBlock(adr,size,__FILE__,__LINE__)
94
95#define mmAllocSpecialized() mmDBAllocSpecialized(__FILE__,__LINE__)
96
97#define mmFreeSpecialized(adr) mmDBFreeSpecialized(adr,__FILE__,__LINE__)
98
99#define mmAlloc(size) mmDBAlloc(size,__FILE__,__LINE__)
100
101#define mmFree(adr) mmDBFree(adr,__FILE__,__LINE__)
102
103#define mmReallocBlock(adr,oldsize,newsize) mmDBReallocBlock(adr,oldsize,newsize,__FILE__,__LINE__)
104
105#define mmStrdup(A) mmDBStrdup(A,__FILE__,__LINE__)
106
107#define mmTest(A,B) mmDBTestBlock(A,B,__FILE__,__LINE__)
108#define mmTestL(A) mmDBTest(A,__FILE__,__LINE__)
109#define mmTestP(A,B) mmDBTestBlock(A,B,__FILE__,__LINE__)
110#define mmTestLP(A) mmDBTest(A,__FILE__,__LINE__)
111#define Alloc(size) mmDBAllocBlock(size,__FILE__,__LINE__)
112#define Alloc0(size) mmDBAllocBlock0(size,__FILE__,__LINE__)
113#define Free(adr,size) mmDBFreeBlock(adr,size,__FILE__,__LINE__)
114#define mmAllocSpecialized() mmDBAllocSpecialized(__FILE__,__LINE__)
115#define mmFreeSpecialized(adr) mmDBFreeSpecialized(adr,__FILE__,__LINE__)
116#define AllocL(size) mmDBAlloc(size,__FILE__,__LINE__)
117#define FreeL(adr) mmDBFree(adr,__FILE__,__LINE__)
118#define ReAlloc(adr,oldsize,newsize) mmDBReallocBlock(adr,oldsize,newsize,__FILE__,__LINE__)
119
120void mmTestList();
121
122#endif /* MDEBUG */
123
124#ifdef __cplusplus
125struct memman_new_delete
126{
127  inline void* operator new( size_t size ) { return mmAlloc( size ); }
128  inline void* operator new []( size_t size ) { return mmAlloc( size ); }
129  inline void operator delete( void* block ) {  mmFree( block ); }
130  inline void operator delete []( void* block ) {  mmFree( block ); }
131};
132}
133#endif
134
135#endif /* ! INCL_MEMMAN_H */
Note: See TracBrowser for help on using the repository browser.