slotspace
memset(&slotspace, 0, sizeof(slotspace));
slotspace.area[SLAREA_USER].sslot = 0;
slotspace.area[SLAREA_USER].nslot = PDIR_SLOT_USERLIM+1;
slotspace.area[SLAREA_USER].active = true;
slotspace.area[SLAREA_PTE].sslot = PDIR_SLOT_PTE;
slotspace.area[SLAREA_PTE].nslot = 1;
slotspace.area[SLAREA_PTE].active = true;
slotspace.area[SLAREA_PCPU].sslot = PDIR_SLOT_PCPU;
slotspace.area[SLAREA_PCPU].nslot = 1;
slotspace.area[SLAREA_PCPU].active = true;
slotspace.area[SLAREA_DMAP].active = false;
slotspace.area[SLAREA_HYPV].sslot = 256;
slotspace.area[SLAREA_HYPV].nslot = 17;
slotspace.area[SLAREA_HYPV].active = true;
slotspace.area[SLAREA_ASAN].sslot = L4_SLOT_KASAN;
slotspace.area[SLAREA_ASAN].nslot = NL4_SLOT_KASAN;
slotspace.area[SLAREA_ASAN].active = true;
slotspace.area[SLAREA_MSAN].sslot = L4_SLOT_KMSAN;
slotspace.area[SLAREA_MSAN].nslot = NL4_SLOT_KMSAN;
slotspace.area[SLAREA_MSAN].active = true;
slotspace.area[SLAREA_KERN].sslot = L4_SLOT_KERNBASE;
slotspace.area[SLAREA_KERN].nslot = 1;
slotspace.area[SLAREA_KERN].active = true;
extern struct slotspace slotspace;
#define L4_SLOT_PTE slotspace.area[SLAREA_PTE].sslot
#define L4_SLOT_KERN slotspace.area[SLAREA_MAIN].sslot
extern struct slotspace slotspace;
size_t sslot = slotspace.area[type].sslot;
size_t nslot = slotspace.area[type].nslot;
if (!slotspace.area[i].active)
if (slotspace.area[i].sslot >= curslot &&
slotspace.area[i].sslot < minsslot) {
minsslot = slotspace.area[i].sslot;
minnslot = slotspace.area[i].nslot;
slotspace.area[type].sslot = pl4_i(va);
slotspace.area[type].nslot =
slotspace.area[type].active = true;
struct slotspace slotspace __read_mostly;