source: git/Singular/mminit.cc @ 18dd47

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