source: git/Singular/mminit.cc @ ed3c47

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