source: git/omalloc/omBin.h @ 8291be

spielwiese
Last change on this file since 8291be was 341696, checked in by Hans Schönemann <hannes@…>, 14 years ago
Adding Id property to all files git-svn-id: file:///usr/local/Singular/svn/trunk@12231 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.5 KB
Line 
1/*******************************************************************
2 *  File:    omBin.h
3 *  Purpose: declaration of routines related to Bins
4 *  Author:  obachman (Olaf Bachmann)
5 *  Created: 11/99
6 *  Version: $Id$
7 *******************************************************************/
8#ifndef OM_BIN_H
9#define OM_BIN_H
10
11#define omGetAlignedSpecBin(size) _omGetSpecBin(size, 1, 0)
12#define omGetSpecBin(size) _omGetSpecBin(size, 0, 0)
13omBin _omGetSpecBin(size_t size, int align, int track);
14
15#define omUnGetSpecBin(bin_ptr) _omUnGetSpecBin(bin_ptr, 0)
16#define omDeleteSpecBin(bin_ptr) _omUnGetSpecBin(bin_ptr, 1)
17void  _omUnGetSpecBin(omBin *bin, int force);
18size_t omGetUsedBinBytes();
19
20omBin omGetStickyBinOfBin(omBin bin);
21void omMergeStickyBinIntoBin(omBin sticky_bin, omBin into_bin);
22
23unsigned long omGetNewStickyBinTag(omBin bin);
24void omSetStickyBinTag(omBin bin, unsigned long sticky);
25void omUnSetStickyBinTag(omBin bin, unsigned long sticky);
26void omDeleteStickyBinTag(omBin bin, unsigned long sticky);
27
28unsigned long omGetNewStickyAllBinTag();
29void omSetStickyAllBinTag(unsigned long sticky);
30void omUnSetStickyAllBinTag(unsigned long sticky);
31void omDeleteStickyAllBinTag(unsigned long sticky);
32
33void omPrintBinStats(FILE* fd);
34#define omIsStickyBin(bin) (bin->sticky >= SIZEOF_VOIDP)
35
36/*BEGINPRIVATE*/
37#ifndef OM_NDEBUG
38int omIsKnownTopBin(omBin bin, int normal_bin);
39#endif
40#ifdef OM_HAVE_TRACK
41#define omGetSpecTrackBin(size) _omGetSpecBin(size, 0, 1)
42#endif
43
44#define omIsStaticNormalBin(bin)                                            \
45 ((unsigned long) bin >= ((unsigned long) &om_StaticBin[0]) &&              \
46  (unsigned long) bin <= ((unsigned long) &om_StaticBin[OM_MAX_BIN_INDEX]))
47#define omIsNormalBin(bin) omIsStaticNormalBin(bin) || omFindInGList(om_SpecBin, next, bin, bin) || omIsStickyBin(bin)
48#define omIsSpecBin(bin) (!omIsStaticNormalBin(bin) && !omIsStickyBin(bin))
49
50#ifdef OM_HAVE_TRACK
51#define omIsStaticTrackBin(bin)                                                  \
52 ((unsigned long) bin >= ((unsigned long) &om_StaticTrackBin[0]) &&              \
53  (unsigned long) bin <= ((unsigned long) &om_StaticTrackBin[OM_MAX_BIN_INDEX]))
54#define omIsTrackBin(bin) omIsStaticTrackBin(bin) || omFindInGList(om_SpecTrackBin, next, bin, bin)
55#else
56#define omIsKnownTopBin(bin, normal_bin)  1
57#define omIsStaticTrackBin(bin) 0
58#define omIsTrackBin(bin)       0
59#endif
60#define omIsStaticBin(bin) omIsStaticNormalBin(bin) || omIsStaticTrackBin(bin)
61/*ENDPRIVATE*/
62
63#endif /* OM_BIN_H */
Note: See TracBrowser for help on using the repository browser.