Lines Matching refs:owner

173 		IORequestOwner& owner = fAllocatedRequestOwners[i];
174 owner.team = -1;
175 owner.thread = -1;
176 owner.priority = B_IDLE_PRIORITY;
177 fUnusedRequestOwners.Add(&owner);
244 IORequestOwner* owner = _GetRequestOwner(request->TeamID(),
246 if (owner == NULL) {
255 bool wasActive = owner->IsActive();
256 request->SetOwner(owner);
257 owner->requests.Add(request);
261 owner->priority = priority;
262 //dprintf(" request %p -> owner %p (thread %ld, active %d)\n", request, owner, owner->thread, wasActive);
265 fActiveRequestOwners.Add(owner);
310 IORequestOwner* owner = it.Next();) {
311 kprintf(" %p", owner);
366 // Remove the request from the request owner.
367 IORequestOwner* owner = request->Owner();
368 owner->requests.MoveFrom(&owner->completed_requests);
369 owner->requests.Remove(request);
372 if (!owner->IsActive()) {
373 fActiveRequestOwners.Remove(owner);
374 fUnusedRequestOwners.Add(owner);
480 IOSchedulerSimple::_NextActiveRequestOwner(IORequestOwner*& owner,
487 if (owner != NULL)
488 owner = fActiveRequestOwners.GetNext(owner);
489 if (owner == NULL)
490 owner = fActiveRequestOwners.Head();
492 if (owner != NULL) {
493 quantum = _ComputeRequestOwnerBandwidth(owner->priority);
588 IORequestOwner* owner = NULL;
592 //dprintf("IOSchedulerSimple::_Scheduler(): next iteration: request owner: %p, quantum: %lld\n", owner, quantum);
600 if (owner == NULL) {
601 owner = fActiveRequestOwners.GetPrevious(&marker);
606 if (owner == NULL || quantum < (off_t)fBlockSize) {
607 if (!_NextActiveRequestOwner(owner, quantum)) {
614 //dprintf("IOSchedulerSimple::_Scheduler(): request owner: %p (thread %ld)\n",
615 //owner, owner->thread);
616 // Prepare operations for the owner.
619 while (IOOperation* operation = owner->operations.RemoveHead()) {
620 // TODO: We might actually grant the owner more bandwidth than
639 IORequest* request = owner->requests.Head();
643 panic("no more requests for owner %p (thread %" B_PRId32 ")", owner, owner->thread);
655 owner->requests.Remove(request);
656 owner->completed_requests.Add(request);
660 // Get the next owner.
662 _NextActiveRequestOwner(owner, quantum);
665 // If the current owner doesn't have anymore requests, we have to
666 // insert our marker, since the owner will be gone in the next
668 if (owner->requests.IsEmpty()) {
669 fActiveRequestOwners.InsertBefore(owner, &marker);
670 owner = NULL;
789 IORequestOwner* owner = fRequestOwners->Lookup(thread);
790 if (owner != NULL && !owner->IsActive())
791 fUnusedRequestOwners.Remove(owner);
792 if (owner != NULL || !allocate)
793 return owner;
798 while ((owner = fUnusedRequestOwners.RemoveHead()) != NULL) {
799 if (owner->thread < 0 || !Thread::IsAlive(owner->thread)) {
800 if (owner->thread >= 0)
801 fRequestOwners->RemoveUnchecked(owner);
802 owner->team = team;
803 owner->thread = thread;
804 owner->priority = B_IDLE_PRIORITY;
805 fRequestOwners->InsertUnchecked(owner);
809 existingOwners.Add(owner);
813 return owner;