source: git/Singular/mmemory.h @ 49eeee

spielwiese
Last change on this file since 49eeee was 49eeee, checked in by Hans Schönemann <hannes@…>, 26 years ago
* hannes: fixed bug in maps.cc: size of monom is not pMonomSize but mmGetSpecSize() changed header in tesths.cc changed handling of ring changes (polys*.cc ring.cc) git-svn-id: file:///usr/local/Singular/svn/trunk@1462 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 4.2 KB
Line 
1#ifndef MMEMORY_H
2#define MMEMORY_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: mmemory.h,v 1.6 1998-04-24 16:39:22 Singular Exp $ */
7/*
8* ABSTRACT
9*/
10#include <stdlib.h>
11#include "structs.h"
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#include "mod2.h"
18 
19#ifdef DO_DEEP_PROFILE
20extern void _memcpyW(void* p1, void* p2, long l);
21#define  memcpyW(p1, p2, l) _memcpyW((void*) p1, (void*) p2, (long) l) 
22#else                                                                   
23#define memcpyW(p1, p2, l)                      \
24do                                              \
25{                                               \
26  long _i = l;                                  \
27  long* _s1 = (long*) p1;                       \
28  const long* _s2 = (long*) p2;                 \
29                                                \
30  for (;;)                                      \
31  {                                             \
32    *_s1 = *_s2;                                \
33    _i--;                                       \
34    if (_i == 0) break;                         \
35    _s1++;                                      \
36    _s2++;                                      \
37  }                                             \
38}                                               \
39while(0)
40#endif
41 
42
43void mmSpecializeBlock( size_t );
44
45int mmMemReal( void );
46int mmMemUsed( void );
47
48#define mstrdup mmStrdup
49/* char * mstrdup(char *s); */
50
51size_t mmSizeL( void* );
52#define mmGetSpecSize() mm_specSize
53
54extern size_t mm_specSize;
55
56#ifdef MM_STAT
57void mmStat(int slot);
58#endif
59#ifndef MDEBUG
60
61void * mmAllocBlock( size_t );
62void * mmAllocBlock0( size_t );
63
64void mmFreeBlock( void*, size_t );
65
66void * mmReallocBlock( void*, size_t, size_t );
67
68void * mmAllocSpecialized( void );
69
70void mmFreeSpecialized( void* );
71
72void * mmAlloc( size_t );
73
74void * mmRealloc( void*, size_t );
75
76void mmFree( void* );
77
78char * mmStrdup( const char* );
79
80#define mmTest(A,B) TRUE
81#define mmTestL(A) TRUE
82#define mmTestP(A,B)
83#define mmTestLP(A)
84#define Free mmFreeBlock
85#define Alloc mmAllocBlock
86#define Alloc0 mmAllocBlock0
87#define ReAlloc mmReallocBlock
88#define FreeL mmFree
89#define AllocL mmAlloc
90
91#else /* MDEBUG */
92
93void * mmDBAllocBlock( size_t, char*, int );
94void * mmDBAllocBlock0( size_t, char*, int );
95
96void mmDBFreeBlock( void*, size_t, char*, int );
97
98void * mmDBReallocBlock( void*, size_t, size_t, char*, int );
99
100void * mmDBAllocSpecialized( char*, int );
101
102void mmDBFreeSpecialized( void*, char*, int );
103
104void * mmDBAlloc( size_t, char*, int );
105
106void * mmDBRealloc( void*, size_t, char*, int );
107
108void mmDBFree( void*, char*, int );
109
110char * mmDBStrdup( const char * s, char *fname, int lineno);
111
112BOOLEAN mmDBTestBlock( const void* adr, const size_t size, const char * fname, const int lineno );
113
114BOOLEAN mmDBTest( const void* adr, const char * fname, const int lineno );
115
116#define mmAllocBlock(size) mmDBAllocBlock(size,__FILE__,__LINE__)
117
118#define mmFreeBlock(adr,size) mmDBFreeBlock(adr,size,__FILE__,__LINE__)
119
120#define mmAllocSpecialized() mmDBAllocSpecialized(__FILE__,__LINE__)
121
122#define mmFreeSpecialized(adr) mmDBFreeSpecialized(adr,__FILE__,__LINE__)
123
124#define mmAlloc(size) mmDBAlloc(size,__FILE__,__LINE__)
125
126#define mmFree(adr) mmDBFree(adr,__FILE__,__LINE__)
127
128#define mmReallocBlock(adr,oldsize,newsize) mmDBReallocBlock(adr,oldsize,newsize,__FILE__,__LINE__)
129
130#define mmStrdup(A) mmDBStrdup(A,__FILE__,__LINE__)
131
132#define mmTest(A,B) mmDBTestBlock(A,B,__FILE__,__LINE__)
133#define mmTestL(A) mmDBTest(A,__FILE__,__LINE__)
134#define mmTestP(A,B) mmDBTestBlock(A,B,__FILE__,__LINE__)
135#define mmTestLP(A) mmDBTest(A,__FILE__,__LINE__)
136#define Alloc(size) mmDBAllocBlock(size,__FILE__,__LINE__)
137#define Alloc0(size) mmDBAllocBlock0(size,__FILE__,__LINE__)
138#define Free(adr,size) mmDBFreeBlock(adr,size,__FILE__,__LINE__)
139#define mmAllocSpecialized() mmDBAllocSpecialized(__FILE__,__LINE__)
140#define mmFreeSpecialized(adr) mmDBFreeSpecialized(adr,__FILE__,__LINE__)
141#define AllocL(size) mmDBAlloc(size,__FILE__,__LINE__)
142#define FreeL(adr) mmDBFree(adr,__FILE__,__LINE__)
143#define ReAlloc(adr,oldsize,newsize) mmDBReallocBlock(adr,oldsize,newsize,__FILE__,__LINE__)
144
145void mmTestList();
146
147#endif /* MDEBUG */
148#ifdef __cplusplus
149}
150#endif
151
152#endif
Note: See TracBrowser for help on using the repository browser.