Lines Matching defs:slot

47 // One slot would suffice, since the map is locked while mapping a page table,
64 inline void PutSlot(PhysicalPageSlot* slot);
107 PhysicalPageSlot* slot;
158 PhysicalPageSlot*& slot);
159 void PutSlot(PhysicalPageSlot* slot);
203 PhysicalPageSlot* slot = fSlots;
204 fSlots = slot->next;
205 return slot;
210 PhysicalPageSlotPool::PutSlot(PhysicalPageSlot* slot)
212 slot->next = fSlots;
213 fSlots = slot;
224 fFreeSlotCondition.Init(this, "physical page ops slot queue");
234 // wait for a free slot to turn up
243 PhysicalPageSlot* slot = fSlots;
244 fSlots = slot->next;
246 return slot;
256 // wait for two free slot to turn up
272 PhysicalPageSlotQueue::PutSlot(PhysicalPageSlot* slot)
276 slot->next = fSlots;
277 fSlots = slot;
279 if (slot->next == NULL)
281 else if (slot->next->next == NULL)
320 PhysicalPageSlot* slot;
321 status_t error = sPhysicalPageMapper.GetSlot(false, slot);
328 return slot;
350 if (fSlots[i].slot != NULL)
351 sPhysicalPageMapper.PutSlot(fSlots[i].slot);
361 status_t error = sPhysicalPageMapper.GetSlot(true, fSlots[i].slot);
390 page_slot& slot = fSlots[i];
391 if (slot.physicalAddress == physicalAddress) {
393 if (!slot.valid.GetBit(currentCPU)) {
395 invalidate_TLB(slot.slot->address);
396 slot.valid.SetBit(currentCPU);
398 return (void*)slot.slot->address;
403 page_slot& slot = fSlots[fNextSlot];
406 slot.physicalAddress = physicalAddress;
407 slot.slot->Map(physicalAddress);
408 slot.valid.ClearAll();
409 slot.valid.SetBit(currentCPU);
411 return (void*)slot.slot->address;
439 // get the debug slot
486 PhysicalPageSlot* slot = fPerCPUData[smp_get_current_cpu()].interruptSlot;
487 slot->Map(physicalAddress);
488 return (void*)slot->address;
496 PhysicalPageSlot* slot = NULL;
497 status_t error = GetSlot(true, slot);
501 slot->Map(physicalAddress);
503 *handle = slot;
504 *virtualAddress = slot->address + physicalAddress % B_PAGE_SIZE;
525 // get a slot from the per-cpu user pool
528 PhysicalPageSlot* slot = slotQueue.GetSlot();
529 slot->Map(physicalAddress);
531 *virtualAddress = slot->address + physicalAddress % B_PAGE_SIZE;
532 *handle = slot;
542 // return the slot to the per-cpu user pool
580 PhysicalPageSlot* slot = slotQueue->GetSlot();
583 slot->Map(address - pageOffset);
586 memset((void*)(slot->address + pageOffset), value, toSet);
593 slotQueue->PutSlot(slot);
610 PhysicalPageSlot* slot = slotQueue->GetSlot();
617 slot->Map(from - pageOffset);
620 error = user_memcpy(to, (void*)(slot->address + pageOffset),
625 memcpy(to, (void*)(slot->address + pageOffset), toCopy);
633 slotQueue->PutSlot(slot);
650 PhysicalPageSlot* slot = slotQueue->GetSlot();
657 slot->Map(to - pageOffset);
660 error = user_memcpy((void*)(slot->address + pageOffset), from,
665 memcpy((void*)(slot->address + pageOffset), from, toCopy);
673 slotQueue->PutSlot(slot);
702 LargeMemoryPhysicalPageMapper::GetSlot(bool canWait, PhysicalPageSlot*& slot)
722 slot = pool->GetSlot();
734 LargeMemoryPhysicalPageMapper::PutSlot(PhysicalPageSlot* slot)
738 PhysicalPageSlotPool* pool = slot->pool;
744 pool->PutSlot(slot);