source: git/Singular/mmprivate.h @ b719a3

spielwiese
Last change on this file since b719a3 was 393d6b, checked in by Hans Schönemann <hannes@…>, 25 years ago
* hannes: 64 bit changes git-svn-id: file:///usr/local/Singular/svn/trunk@3198 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.3 KB
Line 
1#ifndef MEMPRIVAT_H
2#define MEMPRIVAT_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: mmprivate.h,v 1.10 1999-06-30 15:42:13 Singular Exp $ */
7/*
8* ABSTRACT
9*/
10#include "structs.h"
11#include "mmheap.h"
12
13#define MAX_BLOCK_SIZE  (((SIZE_OF_HEAP_PAGE) / 16)*4)
14
15#define INDEX_ENTRY_T   char
16extern const INDEX_ENTRY_T mm_IndexTable[];
17extern const size_t mm_mcbSizes[];
18extern struct sip_memHeap mm_theList[];
19#define mmGetSize( index ) mm_mcbSizes[index]
20
21#ifndef GENERATE_INDEX_TABLE
22#define mmGetIndex(size)                                        \
23 (size <= MAX_BLOCK_SIZE ? mm_IndexTable[(size -1) >> 2] : -1)
24#else /* GENERATE_INDEX_TABLE */
25int mmGetIndex( size_t );
26#endif /* ! GENERATE_INDEX_TABLE */
27
28#if defined(MDEBUG) || defined(GENERATE_INDEX_TABLE)
29
30#define MM_NUMBER_OF_FRONT_PATTERNS   4
31typedef struct DBMCB
32{
33  void* _nnext;
34  struct DBMCB * next;
35  struct DBMCB * prev;
36  char * fname;
37#ifdef MTRACK
38  unsigned long bt_stack[BT_MAXSTACK];
39#endif
40  int init;
41  size_t size;
42  int lineno;
43  int flags;
44  memHeap heap;
45  char front_pattern[MM_NUMBER_OF_FRONT_PATTERNS];
46  void* data;
47} DBMCB;
48
49typedef DBMCB * pDBMCB;
50
51#define DebugOffsetFront (sizeof(DBMCB) - sizeof(void*))
52#define DebugOffsetBack SIZEOF_VOIDP
53
54#define SizeFromRealSize( size ) (size - DebugOffsetFront - DebugOffsetBack)
55#define RealSizeFromSize( size ) (size + DebugOffsetFront + DebugOffsetBack)
56
57
58extern DBMCB mm_theDBused;
59extern DBMCB mm_theDBfree;
60
61extern void * mm_maxAddr;
62extern void * mm_minAddr;
63
64#define MM_FREEFLAG 4
65#define MM_USEDFLAG 8
66
67void mmPrintFL( const char* fname, const int lineno );
68void mmDBInitNewHeapPage(memHeap heap);
69int mmCheckDBMCB ( DBMCB * what, int size , int flags);
70void mmFillDBMCB(DBMCB* what, size_t size, memHeap heap,
71                 int flags, char* fname, int lineno);
72void mmDBSetHeapsOfBlocks(memHeap fromheap, memHeap toheap);
73void mmTakeOutDBMCB (DBMCB* what );
74void mmMoveDBMCB ( pDBMCB from, pDBMCB to, DBMCB * what );
75void mmMoveDBMCBInto ( pDBMCB to, pDBMCB what );
76
77#endif /* MDEBUG */
78
79extern int mm_bytesMalloc;
80#ifdef HAVE_SBRK
81extern unsigned long mm_SbrkInit;
82#endif
83
84void mmCheckPrint( void );
85
86#define MM_PRINT_ALL_ADDR 1
87#define MM_PRINT_ALL_STACK 2
88
89
90#endif /* MEMPRIVATE_H */
91
Note: See TracBrowser for help on using the repository browser.