source: git/Singular/mminit.cc @ e835e9

spielwiese
Last change on this file since e835e9 was e835e9, checked in by Olaf Bachmann <obachman@…>, 26 years ago
* removed static from mm_SbrkInit definition git-svn-id: file:///usr/local/Singular/svn/trunk@1506 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.0 KB
RevLine 
[0e1846]1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
[e835e9]4/* $Id: mminit.cc,v 1.10 1998-04-28 08:46:22 obachman Exp $ */
[0e1846]5/*
[e2f1c7]6* ABSTRACT: init of memory management
[0e1846]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"
[d751cf]16extern "C" { /* begin of "C" */
[0e1846]17#ifdef HAVE_GMP
[99965c5]18#include <gmp.h>
[0e1846]19#endif
20
21#ifdef ALIGN_8
22mcb mm_normList[MAXLIST]=
23{ NULL,NULL,NULL,NULL,
24  NULL,NULL,NULL,NULL,
25  NULL,NULL,NULL,NULL,
26  NULL,NULL,NULL,NULL,
27  NULL,NULL};
28;
29mcb mm_tmpList[MAXLIST]=
30{ NULL,NULL,NULL,NULL,
31  NULL,NULL,NULL,NULL,
32  NULL,NULL,NULL,NULL,
33  NULL,NULL,NULL,NULL,
34  NULL,NULL};
[f3d535]35#ifdef MM_STAT
36int mm_active[MAXLIST+1]=
37{ 0,0,0,0,
38  0,0,0,0,
39  0,0,0,0,
40  0,0,0,0,
41  0,0,0};
42int mm_max[MAXLIST+2]=
43{ 0,0,0,0,
44  0,0,0,0,
45  0,0,0,0,
46  0,0,0,0,
47  0,0,0,0};
48#endif
[0e1846]49#else
50mcb mm_normList[MAXLIST]=
51{ NULL,NULL,NULL,NULL,
52  NULL,NULL,NULL,
53  NULL,NULL,NULL,NULL,
54  NULL,NULL,NULL,NULL,
55  NULL,NULL,NULL,NULL,
56  NULL,NULL};
57mcb mm_tmpList[MAXLIST]=
58{ NULL,NULL,NULL,NULL,
59  NULL,NULL,NULL,
60  NULL,NULL,NULL,NULL,
61  NULL,NULL,NULL,NULL,
62  NULL,NULL,NULL,NULL,
63  NULL,NULL};
[f3d535]64#ifdef MM_STAT
65int mm_active[MAXLIST+1]=
66{ 0,0,0,0,
67  0,0,0,
68  0,0,0,0,
69  0,0,0,0,
70  0,0,0,0,
71  0,0,0};
72int mm_max[MAXLIST+2]=
73{ 0,0,0,0,
74  0,0,0,
75  0,0,0,0,
76  0,0,0,0,
77  0,0,0,0,
78  0,0,0,0};
[0e1846]79#endif
[f3d535]80#endif
81
[0e1846]82
83mcb *mm_theList=mm_normList;
84
85#ifdef MPOLYPART
86void * mm_maxAddr=NULL;
87void * mm_minAddr=NULL;
88mcb mm_spec=NULL;
89void *mm_spec_part=NULL;
90#endif
91
92#ifdef MDEBUG
93
[f3d535]94DBMCB mm_theDBused={NULL,NULL,0,0,NULL,0,0,NULL};
95DBMCB mm_theDBfree={NULL,NULL,0,0,NULL,0,0,NULL};
96DBMCB mm_tmpDBused={NULL,NULL,0,0,NULL,0,0,NULL};
97DBMCB mm_tmpDBfree={NULL,NULL,0,0,NULL,0,0,NULL};
98DBMCB mm_normDBused={NULL,NULL,0,0,NULL,0,0,NULL};
99DBMCB mm_normDBfree={NULL,NULL,0,0,NULL,0,0,NULL};
[0e1846]100void * mm_maxAddr=NULL;
101void * mm_minAddr=NULL;
102
103#endif /* MDEBUG */
104
105status_t mm_status = MM_NORMAL;
106
107int mm_bytesUsed=0;
108int mm_bytesReal=0;
109int mm_bytesTmp=0;
110int mm_bytesNorm=0;
111
112int mm_specIndex=0;
113size_t mm_specSize = mm_mcbSizes[0];
114
115int mm_printMark=102400;
[d751cf]116} /* end of "C" */
[0e1846]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
[1c452c]153#ifdef HAVE_SBRK
154#include <unistd.h>
[e835e9]155unsigned long mm_SbrkInit = sbrk(0);
[1c452c]156#endif
157
[0e1846]158int mmInit();
159static int mmIsInitialized=mmInit();
160
161int mmInit( void )
162{
163#ifdef HAVE_GMP
[f3d535]164  if(mmIsInitialized==0)
165  {
[0e1846]166#ifndef MDEBUG
[f3d535]167    mp_set_memory_functions(mmAllocBlock,mmReallocBlock,mmFreeBlock);
[0e1846]168#else
[f3d535]169    mp_set_memory_functions(mgAllocBlock,mgReallocBlock,mgFreeBlock);
[0e1846]170#endif
[f3d535]171  }
[0e1846]172#endif
[8fc4bee]173  mmIsInitialized=1;
[0e1846]174  return 1;
175}
Note: See TracBrowser for help on using the repository browser.