source: git/Singular/mmemory.h @ d2b2a7

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