Lines Matching defs:request

46 			IORequest* request = it.Next();) {
47 kprintf(" %p", request);
53 IORequest* request = it.Next();) {
54 kprintf(" %p", request);
102 fNewRequestCondition.Init(this, "I/O new request");
104 fFinishedRequestCondition.Init(this, "I/O finished request");
223 IOSchedulerSimple::ScheduleRequest(IORequest* request)
225 TRACE("%p->IOSchedulerSimple::ScheduleRequest(%p)\n", this, request);
227 IOBuffer* buffer = request->Buffer();
234 status_t status = buffer->LockMemory(request->TeamID(),
235 request->IsWrite());
237 request->SetStatusAndNotify(status);
244 IORequestOwner* owner = _GetRequestOwner(request->TeamID(),
245 request->ThreadID(), true);
247 panic("IOSchedulerSimple: Out of request owners!\n");
250 buffer->UnlockMemory(request->TeamID(), request->IsWrite());
251 request->SetStatusAndNotify(B_NO_MEMORY);
256 request->SetOwner(owner);
257 owner->requests.Add(request);
259 int32 priority = thread_get_io_priority(request->ThreadID());
262 //dprintf(" request %p -> owner %p (thread %ld, active %d)\n", request, owner, owner->thread, wasActive);
268 request);
277 IOSchedulerSimple::AbortRequest(IORequest* request, status_t status)
307 kprintf(" active request owners:");
346 // notify request and remove operation
347 IORequest* request = operation->Parent();
349 request->OperationFinished(operation);
359 // If the request is done, we need to perform its notifications.
360 if (request->IsFinished()) {
361 if (request->Status() == B_OK && request->RemainingBytes() > 0) {
362 // The request has been processed OK so far, but it isn't really
364 request->SetUnfinished();
366 // Remove the request from the request owner.
367 IORequestOwner* owner = request->Owner();
369 owner->requests.Remove(request);
370 request->SetOwner(NULL);
377 if (request->HasCallbacks()) {
378 // The request has callbacks that may take some time to
379 // perform, so we hand it over to the request notifier.
380 fFinishedRequests.Add(request);
383 // No callbacks -- finish the request right now.
385 IO_SCHEDULER_REQUEST_FINISHED, this, request);
386 request->NotifyFinished();
404 IOSchedulerSimple::_PrepareRequestOperations(IORequest* request,
408 //dprintf("IOSchedulerSimple::_PrepareRequestOperations(%p)\n", request);
412 while (quantum >= (off_t)fBlockSize && request->RemainingBytes() > 0) {
417 status_t status = fDMAResource->TranslateNext(request, operation,
429 AbortRequest(request, status);
448 status_t status = operation->Prepare(request);
452 AbortRequest(request, status);
456 operation->SetOriginalRange(request->Offset(), request->Length());
457 request->Advance(request->Length());
592 //dprintf("IOSchedulerSimple::_Scheduler(): next iteration: request owner: %p, quantum: %lld\n", owner, quantum);
614 //dprintf("IOSchedulerSimple::_Scheduler(): request owner: %p (thread %ld)\n",
639 IORequest* request = owner->requests.Head();
640 if (request == NULL) {
648 resourcesAvailable = _PrepareRequestOperations(request,
652 if (request->RemainingBytes() == 0 || request->Status() <= 0) {
653 // If the request has been completed, move it to the
655 owner->requests.Remove(request);
656 owner->completed_requests.Add(request);
746 // get a request
747 IORequest* request = fFinishedRequests.RemoveHead();
749 if (request == NULL) {
765 this, request);
767 // notify the request
768 request->NotifyFinished();