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()
◆ omAllocBinPages()
Definition at line 146 of file omBinPage.c.
160 if (region->init_pages >= how_many)
163 region->init_pages -= how_many;
164 if (region->init_pages)
165 region->init_addr += how_many*SIZEOF_SYSTEM_PAGE;
167 region->init_addr =
NULL;
174 if (region->next !=
NULL)
176 region = region->next;
181 region->next = new_region;
182 new_region->prev = region;
189 bin_page->region = region;
190 region->used_pages += how_many;
198 om_Info.AvailPages -= how_many;
◆ omFreeBinPages()
void omFreeBinPages |
( |
omBinPage |
page, |
|
|
int |
how_many |
|
) |
| |
Definition at line 203 of file omBinPage.c.
210 region->used_pages -= how_many;
211 if (region->used_pages == 0)
215 if (region->next !=
NULL)
233 char* page = (
char *)bin_page;
237 NEXT_PAGE(page) = page + SIZEOF_SYSTEM_PAGE;
247 region->current = (
void*) bin_page;
249 om_Info.AvailPages += how_many;
◆ om_BinPageIndicies
unsigned long* om_BinPageIndicies |
◆ om_MaxBinPageIndex
unsigned long om_MaxBinPageIndex |
◆ om_MinBinPageIndex
unsigned long om_MinBinPageIndex |
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)