Go to the source code of this file.
◆ OM_SIZEOF_INDEX_PAGE
#define OM_SIZEOF_INDEX_PAGE (((unsigned long) SIZEOF_SYSTEM_PAGE) << LOG_BIT_SIZEOF_LONG) |
◆ omAreAddrOnSamePage
◆ omFreeBinPage
◆ omGetBinPageOfAddr
#define omGetBinPageOfAddr |
( |
|
addr | ) |
((omBinPage) ((long) (addr) & ~(SIZEOF_SYSTEM_PAGE -1))) |
◆ omGetPageIndexOfAddr
#define omGetPageIndexOfAddr |
( |
|
addr | ) |
(((unsigned long) addr) >> (LOG_BIT_SIZEOF_LONG + LOG_BIT_SIZEOF_SYSTEM_PAGE)) |
◆ omGetPageOfAddr
#define omGetPageOfAddr |
( |
|
addr | ) |
((void*) (((long)addr) & ~(SIZEOF_SYSTEM_PAGE -1))) |
◆ omGetPageShiftOfAddr
#define omGetPageShiftOfAddr |
( |
|
addr | ) |
((((unsigned long) addr) & (OM_SIZEOF_INDEX_PAGE -1)) >> LOG_BIT_SIZEOF_SYSTEM_PAGE) |
◆ omIsAddrOnPage
#define omIsAddrOnPage |
( |
|
addr, |
|
|
|
page |
|
) |
| (omGetPageOfAddr(addr) == (void*) (page)) |
◆ omIsAddrPageAligned
#define omIsAddrPageAligned |
( |
|
addr | ) |
(((long) (addr) & (SIZEOF_SYSTEM_PAGE -1)) == 0) |
◆ omIsBinPageAddr
◆ omAllocBinPage()
Definition at line 96 of file omBinPage.c.
143 OM_ALLOC_BINPAGE_HOOK;
◆ omAllocBinPages()
Definition at line 147 of file omBinPage.c.
158 if (region->init_pages >= how_many)
161 region->init_pages -= how_many;
162 if (region->init_pages)
163 region->init_addr += how_many*SIZEOF_SYSTEM_PAGE;
165 region->init_addr =
NULL;
172 if (region->next !=
NULL)
174 region = region->next;
179 region->next = new_region;
180 new_region->prev = region;
187 bin_page->region = region;
188 region->used_pages += how_many;
196 om_Info.AvailPages -= how_many;
200 OM_ALLOC_BINPAGE_HOOK;
◆ omFreeBinPages()
void omFreeBinPages |
( |
omBinPage |
page, |
|
|
int |
how_many |
|
) |
| |
Definition at line 204 of file omBinPage.c.
208 region->used_pages -= how_many;
209 if (region->used_pages == 0)
213 if (region->next !=
NULL)
231 char* page = (
char *)bin_page;
235 NEXT_PAGE(page) = page + SIZEOF_SYSTEM_PAGE;
245 region->current = (
void*) bin_page;
247 om_Info.AvailPages += how_many;
249 OM_FREE_BINPAGE_HOOK;
◆ om_BinPageIndicies
unsigned long* om_BinPageIndicies |
|
extern |
◆ om_MaxBinPageIndex
unsigned long om_MaxBinPageIndex |
|
extern |
◆ om_MinBinPageIndex
unsigned long om_MinBinPageIndex |
|
extern |
static omBinPageRegion omAllocNewBinPagesRegion(int min_pages)
static omBinPageRegion om_CurrentBinPageRegion
static void omFreeBinPagesRegion(omBinPageRegion region)
#define OM_IS_EMPTY_REGION(region)
OM_INLINE_LOCAL void omInsertRegionBefore(omBinPageRegion insert, omBinPageRegion before)
static void * omTakeOutConsecutivePages(omBinPageRegion region, int how_many)
OM_INLINE_LOCAL void omInsertRegionAfter(omBinPageRegion insert, omBinPageRegion after)
OM_INLINE_LOCAL void omTakeOutRegion(omBinPageRegion region)