static UNNEEDED uint32_t max_page_id(void) { static uint32_t max_page = 0; if(unlikely(max_page == 0)) { L4_Word_t md_num = 0; L4_MemoryDesc_t *md; while((md = L4_MemoryDesc(kip_mem, md_num)) != NULL) { if(L4_MemoryDescType(md) == L4_ConventionalMemoryType && !L4_IsMemoryDescVirtual(md)) { L4_Word_t hi = L4_MemoryDescHigh(md); if((hi >> 12) > max_page) max_page = hi >> 12; } md_num++; }
static int sys$find_memory_info(L4_KernelInterfacePage_t *kip, int pos, L4_Word_t *low, L4_Word_t *high, L4_Word_t *type) { L4_MemoryDesc_t *mem_desc; mem_desc = L4_MemoryDesc(kip, pos); PANIC(mem_desc == NULL); (*low) = L4_MemoryDescLow(mem_desc); (*high) = L4_MemoryDescHigh(mem_desc); (*type) = mem_desc->x.type; PANIC((*high) <= (*low)); return(mem_desc->x.v == 0); }