source: git/Singular/mminit.cc @ cd6b45

fieker-DuValspielwiese
Last change on this file since cd6b45 was 2fd320a, checked in by Hans Schönemann <hannes@…>, 26 years ago
*hannes: added MTRACK git-svn-id: file:///usr/local/Singular/svn/trunk@2669 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.4 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/* $Id: mminit.cc,v 1.14 1998-11-12 13:08:00 Singular Exp $ */
5/*
6* ABSTRACT: init of memory management
7*/
8
9#define _POSIX_SOURCE 1
10
11#include <stdlib.h>
12#include <string.h>
13#define __USE_MISC
14#include <unistd.h>
15#ifdef macintosh
16#include <types.h>
17#else
18#include <sys/types.h>
19#endif
20#include "mod2.h"
21#include "mmemory.h"
22#include "mmprivat.h"
23extern "C" { /* begin of "C" */
24#include <gmp.h>
25
26#ifdef ALIGN_8
27mcb mm_normList[MAXLIST]=
28{ NULL,NULL,NULL,NULL,
29  NULL,NULL,NULL,NULL,
30  NULL,NULL,NULL,NULL,
31  NULL,NULL,NULL,NULL,
32  NULL,NULL};
33;
34mcb mm_tmpList[MAXLIST]=
35{ NULL,NULL,NULL,NULL,
36  NULL,NULL,NULL,NULL,
37  NULL,NULL,NULL,NULL,
38  NULL,NULL,NULL,NULL,
39  NULL,NULL};
40#ifdef MM_STAT
41int mm_active[MAXLIST+1]=
42{ 0,0,0,0,
43  0,0,0,0,
44  0,0,0,0,
45  0,0,0,0,
46  0,0,0};
47int mm_max[MAXLIST+2]=
48{ 0,0,0,0,
49  0,0,0,0,
50  0,0,0,0,
51  0,0,0,0,
52  0,0,0,0};
53#endif
54#else
55mcb mm_normList[MAXLIST]=
56{ NULL,NULL,NULL,NULL,
57  NULL,NULL,NULL,
58  NULL,NULL,NULL,NULL,
59  NULL,NULL,NULL,NULL,
60  NULL,NULL,NULL,NULL,
61  NULL,NULL};
62mcb mm_tmpList[MAXLIST]=
63{ NULL,NULL,NULL,NULL,
64  NULL,NULL,NULL,
65  NULL,NULL,NULL,NULL,
66  NULL,NULL,NULL,NULL,
67  NULL,NULL,NULL,NULL,
68  NULL,NULL};
69#ifdef MM_STAT
70int mm_active[MAXLIST+1]=
71{ 0,0,0,0,
72  0,0,0,
73  0,0,0,0,
74  0,0,0,0,
75  0,0,0,0,
76  0,0,0};
77int mm_max[MAXLIST+2]=
78{ 0,0,0,0,
79  0,0,0,
80  0,0,0,0,
81  0,0,0,0,
82  0,0,0,0,
83  0,0,0,0};
84#endif
85#endif
86
87
88mcb *mm_theList=mm_normList;
89
90#ifdef MPOLYPART
91void * mm_maxAddr=NULL;
92void * mm_minAddr=NULL;
93mcb mm_spec=NULL;
94void *mm_spec_part=NULL;
95#endif
96
97#ifdef MDEBUG
98
99#ifdef MTRACK
100DBMCB mm_theDBused={NULL,NULL,0,0,NULL,{0},0,0,NULL};
101DBMCB mm_theDBfree={NULL,NULL,0,0,NULL,{0},0,0,NULL};
102DBMCB mm_tmpDBused={NULL,NULL,0,0,NULL,{0},0,0,NULL};
103DBMCB mm_tmpDBfree={NULL,NULL,0,0,NULL,{0},0,0,NULL};
104DBMCB mm_normDBused={NULL,NULL,0,0,NULL,{0},0,0,NULL};
105DBMCB mm_normDBfree={NULL,NULL,0,0,NULL,{0},0,0,NULL};
106#else
107DBMCB mm_theDBused={NULL,NULL,0,0,NULL,0,0,NULL};
108DBMCB mm_theDBfree={NULL,NULL,0,0,NULL,0,0,NULL};
109DBMCB mm_tmpDBused={NULL,NULL,0,0,NULL,0,0,NULL};
110DBMCB mm_tmpDBfree={NULL,NULL,0,0,NULL,0,0,NULL};
111DBMCB mm_normDBused={NULL,NULL,0,0,NULL,0,0,NULL};
112DBMCB mm_normDBfree={NULL,NULL,0,0,NULL,0,0,NULL};
113#endif
114void * mm_maxAddr=NULL;
115void * mm_minAddr=NULL;
116
117#endif /* MDEBUG */
118
119status_t mm_status = MM_NORMAL;
120
121int mm_bytesUsed=0;
122int mm_bytesReal=0;
123int mm_bytesTmp=0;
124int mm_bytesNorm=0;
125
126int mm_specIndex=0;
127size_t mm_specSize = mm_mcbSizes[0];
128
129int mm_printMark=102400;
130} /* end of "C" */
131
132void* operator new ( size_t size )
133{
134#ifdef MDEBUG
135  return mmDBAlloc( size, "new",0);
136#else
137  return AllocL( size );
138#endif
139}
140
141void operator delete ( void* block )
142{
143#ifdef MDEBUG
144  mmDBFree( block, "delete",0);
145#else
146  FreeL( block );
147#endif
148}
149
150#ifdef MDEBUG
151void * mgAllocBlock( size_t t)
152{
153  return mmDBAllocBlock(t,"gmp",0);
154}
155void mgFreeBlock( void* a, size_t t)
156{
157  mmDBFreeBlock(a,t,"gmp",0);
158}
159void * mgReallocBlock( void* a, size_t t1, size_t t2)
160{
161  return mmDBReallocBlock(a,t1,t2,"gmp",0);
162}
163#endif
164
165#ifdef HAVE_SBRK
166#include <unistd.h>
167unsigned long mm_SbrkInit = (unsigned long)sbrk(0);
168#endif
169
170int mmInit();
171static int mmIsInitialized=mmInit();
172
173int mmInit( void )
174{
175  if(mmIsInitialized==0)
176  {
177#ifndef MDEBUG
178    mp_set_memory_functions(mmAllocBlock,mmReallocBlock,mmFreeBlock);
179#else
180    mp_set_memory_functions(mgAllocBlock,mgReallocBlock,mgFreeBlock);
181#endif
182  }
183  mmIsInitialized=1;
184  return 1;
185}
Note: See TracBrowser for help on using the repository browser.