source: git/Singular/mmpage.h @ 263824

fieker-DuValspielwiese
Last change on this file since 263824 was e48debd, checked in by Hans Schönemann <hannes@…>, 25 years ago
*hannes: no .h file should include mod2.h git-svn-id: file:///usr/local/Singular/svn/trunk@2766 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 1.3 KB
Line 
1#ifndef MMPAGE_H
2#define MMPAGE_H
3
4#ifdef PAGE_TEST
5#undef PALLOC
6#define PALLOC mmPage_Create
7#undef PFREE
8#define PFREE mmPage_Delete
9#endif
10
11/***********************************************************************
12 *
13 * declarations of procedures
14 */
15
16void* mmGetPage();
17
18void mmFreePage(void* page);
19
20void mmReleaseFreePages();
21
22extern int mm_bytesValloc;
23int mmGetNumberOfFreePages();
24int mmGetNumberOfUsedPages();
25int mmGetNumberOfAllocatedPages();
26
27/***********************************************************************
28 *
29 * Macros for page manipulations
30 */
31
32#ifdef HAVE_PAGE_ALIGNMENT
33
34#define mmIsAddrPageAligned(addr) \
35  (((long) (addr) & (SIZE_OF_SYSTEM_PAGE -1)) == 0)
36
37#define mmGetPageOfAddr(addr) \
38  ((void*) ((long) (addr) & ~(SIZE_OF_SYSTEM_PAGE -1)))
39
40#define mmIsAddrOnPage(addr, page) (mmGetPageOfAddr(addr) == (void*) (page))
41
42#define mmAreAddrOnSamePage(a1, a2) \
43  (mmGetPageOfAddr(a1) == mmGetPageOfAddr(a2))
44
45int mmIsAddrOnFreePage(void* addr);
46
47#define mmIsNotAddrOnFreePage(addr) (!mmIsAddrOnFreePage(addr))
48
49#else /* ! HAVE_PAGE_ALIGNMENT */
50
51#define mmIsAddrPageAligned(addr) 1
52
53#define mmGetPageOfAddr(addr) (addr)
54
55#define mmIsAddrOnPage(addr, page) 1
56
57#define mmAreAddrOnSamePage(a1, a2) 1
58
59#define mmIsAddrOnFreePage(addr) 1
60
61#define mmIsNotAddrOnFreePage(addr) 1
62#endif
63
64
65#endif /* MMPAGE_H */
Note: See TracBrowser for help on using the repository browser.