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 144 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;
◆ omFreeBinPages()
| void omFreeBinPages |
( |
omBinPage |
page, |
|
|
int |
how_many |
|
) |
| |
Definition at line 201 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;
◆ 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)