• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.5.8/xnu-1228.15.4/iokit/Kernel/

Lines Matching refs:request

567 // Immediately stop driver callouts. Schedule an async stop request to detach
573 IOPMRequest * request;
578 // Schedule an async PMstop request, but immediately stop any further
581 // changes until the PMstop async request is processed.
589 request = acquirePMRequest( this, kIOPMRequestTypePMStop );
590 if (request)
593 submitPMRequest( request );
603 void IOService::handlePMstop ( IOPMRequest * request )
805 void IOService::addPowerChild1 ( IOPMRequest * request )
832 void IOService::addPowerChild2 ( IOPMRequest * request )
834 IOPowerConnection * connection = (IOPowerConnection *) request->fArg0;
886 void IOService::addPowerChild3 ( IOPMRequest * request )
888 IOPowerConnection * connection = (IOPowerConnection *) request->fArg0;
979 // Schedule a request to re-scan child desires and clamp bits.
982 IOPMRequest * request;
984 request = acquirePMRequest( this, kIOPMRequestTypeAdjustPowerState );
985 if (request)
987 submitPMRequest( request );
1006 IOPMRequest * request;
1040 request = acquirePMRequest( this, kIOPMRequestTypeRegisterPowerDriver );
1041 if (!request)
1045 request->fArg0 = (void *) powerDriver;
1046 request->fArg1 = (void *) powerStatesCopy;
1047 request->fArg2 = (void *) numberOfStates;
1049 submitPMRequest( request );
1063 void IOService::handleRegisterPowerDriver ( IOPMRequest * request )
1065 IOService * powerDriver = (IOService *) request->fArg0;
1066 IOPMPowerState * powerStates = (IOPMPowerState *) request->fArg1;
1067 unsigned long numberOfStates = (unsigned long) request->fArg2;
1153 IOPMRequest * request;
1169 request = acquirePMRequest( this, kIOPMRequestTypeInterestChanged );
1170 if (request)
1171 submitPMRequest( request );
1189 IOPMRequest * request;
1216 request = acquirePMRequest( this, kIOPMRequestTypeInterestChanged );
1217 if (request)
1218 submitPMRequest( request );
1230 void IOService::handleInterestChanged( IOPMRequest * request )
1293 IOPMRequest * request;
1300 request = acquirePMRequest( this, kIOPMRequestTypeAckPowerChange );
1301 if (!request)
1308 request->fArg0 = whichObject;
1310 submitPMRequest( request );
1318 bool IOService::handleAcknowledgePowerChange ( IOPMRequest * request )
1327 whichObject = (IOService *) request->fArg0;
1429 IOPMRequest * request;
1434 request = acquirePMRequest( this, kIOPMRequestTypeAckSetPowerState );
1435 if (!request)
1441 submitPMRequest( request );
1492 void IOService::handlePowerDomainWillChangeTo ( IOPMRequest * request )
1494 IOPMPowerFlags newPowerFlags = (IOPMPowerFlags) request->fArg0;
1495 IOPowerConnection * whichParent = (IOPowerConnection *) request->fArg1;
1496 bool powerWillDrop = (bool) request->fArg2;
1611 void IOService::handlePowerDomainDidChangeTo ( IOPMRequest * request )
1613 IOPMPowerFlags newPowerFlags = (IOPMPowerFlags) request->fArg0;
1614 IOPowerConnection * whichParent = (IOPowerConnection *) request->fArg1;
1778 // The child of a power domain calls it parent here to request power of a certain
1890 // Clamp removed on the initial power request from a new child.
1949 IOPMRequest * request;
1954 request = acquirePMRequest( this, kIOPMRequestTypeTemporaryPowerClamp );
1955 if (!request)
1958 submitPMRequest( request );
1968 // a subclassed device object will pre-empt this request.
1970 // We treat this as a subclass object request to switch to the
1976 IOPMRequest * request;
1983 request = acquirePMRequest( this, kIOPMRequestTypeMakeUsable );
1984 if (!request)
1987 submitPMRequest( request );
1994 // Handle a request to become usable.
1997 void IOService::handleMakeUsable ( IOPMRequest * request )
2037 IOPMRequest * request;
2044 request = acquirePMRequest( this, kIOPMRequestTypeChangePowerStateTo );
2045 if (!request)
2048 request->fArg0 = (void *) ordinal;
2049 request->fArg1 = (void *) false;
2052 // computeDesiredState() until the delayed request is processed.
2058 request->fArg1 = (void *) true;
2061 submitPMRequest( request );
2069 void IOService::handleChangePowerStateTo ( IOPMRequest * request )
2071 unsigned long ordinal = (unsigned long) request->fArg0;
2074 if (request->fArg1)
2104 IOPMRequest * request;
2109 request = acquirePMRequest( this, kIOPMRequestTypeChangePowerStateToPriv );
2110 if (!request)
2113 request->fArg0 = (void *) ordinal;
2114 request->fArg1 = (void *) false;
2117 // computeDesiredState() until the delayed request is processed.
2123 request->fArg1 = (void *) true;
2126 submitPMRequest( request );
2134 void IOService::handleChangePowerStateToPriv ( IOPMRequest * request )
2136 unsigned long ordinal = (unsigned long) request->fArg0;
2140 if (request->fArg1)
2235 // due to a tickle request. This invalidation must occur before the
2314 IOPMRequest * request;
2335 request = acquirePMRequest( this, kIOPMRequestTypeActivityTickle );
2336 if (request)
2338 request->fArg0 = (void *) stateNumber; // power state
2339 request->fArg1 = (void *) true; // power rise
2340 submitPMRequest(request);
2491 IOPMRequest * request;
2511 // but the power drop request must be issued regardless.
2518 request = acquirePMRequest( this, kIOPMRequestTypeActivityTickle );
2519 if (request)
2521 request->fArg0 = (void *) 0; // power state (irrelevant)
2522 request->fArg1 = (void *) false; // power drop
2523 submitPMRequest( request );
2525 // Do not restart timer until after the tickle request has been
2719 IOPMRequest * request;
2730 request = acquirePMRequest( this, kIOPMRequestTypePowerOverrideOnPriv );
2731 if (!request)
2734 submitPMRequest( request );
2744 IOPMRequest * request;
2755 request = acquirePMRequest( this, kIOPMRequestTypePowerOverrideOffPriv );
2756 if (!request)
2759 submitPMRequest( request );
2767 void IOService::handlePowerOverrideChanged ( IOPMRequest * request )
2770 if (request->getType() == kIOPMRequestTypePowerOverrideOnPriv)
4814 IOPMRequest * request;
4822 request = acquirePMRequest( this, kIOPMRequestTypeAllowPowerChange );
4823 if (!request)
4829 request->fArg0 = (void *) refcon;
4830 request->fArg1 = (void *) proc_selfpid();
4831 submitPMRequest( request );
4861 IOPMRequest * request;
4874 request = acquirePMRequest( this, kIOPMRequestTypeCancelPowerChange );
4875 if (!request)
4881 request->fArg0 = (void *) refcon;
4882 request->fArg1 = (void *) proc_selfpid();
4883 submitPMRequest( request );
5130 IOPMRequest * request;
5134 request = IOPMRequest::create();
5135 if (request)
5137 request->init( target, requestType );
5139 return request;
5146 void IOService::releasePMRequest( IOPMRequest * request )
5148 if (request)
5150 request->reset();
5151 request->release();
5159 void IOService::submitPMRequest( IOPMRequest * request )
5161 assert( request );
5166 request->getType(), request,
5167 request->getTarget(), request->getTarget()->getName(),
5168 request->fArg0, request->fArg1, request->fArg2);
5170 if (request->isReply())
5171 gIOPMReplyQueue->queuePMRequest( request );
5173 gIOPMRequestQueue->queuePMRequest( request );
5199 IOPMRequest * request,
5210 // Create an IOPMWorkQueue on demand, when the initial PM request is
5239 getName(), __FUNCTION__, request->getType());
5244 fPMWorkQueue->queuePMRequest(request);
5248 gIOPMFreeQueue->queuePMRequest( request );
5255 // Called by IOPMFreeQueue to recycle a completed request.
5259 IOPMRequest * request,
5262 bool more = request->hasParentRequest();
5263 releasePMRequest( request );
5270 // Called by IOPMWorkQueue to retire a completed request.
5273 bool IOService::retirePMRequest( IOPMRequest * request, IOPMWorkQueue * queue )
5275 assert(request && queue);
5278 request->getType(), request, this, getName(),
5283 if ((request->getType() == kIOPMRequestTypeActivityTickle) &&
5284 (request->fArg1 == (void *) false))
5286 // Idle timer power drop request completed.
5296 gIOPMFreeQueue->queuePMRequest( request );
5306 bool IOService::isPMBlocked ( IOPMRequest * request, int count )
5355 request->getType(), request, this, getName(),
5368 // Service a request from our work queue.
5371 bool IOService::servicePMRequest( IOPMRequest * request, IOPMWorkQueue * queue )
5376 assert(request && queue);
5378 while (isPMBlocked(request, loop++) == false)
5381 request->getType(), request, this, getName(), fMachineState);
5383 fPMRequest = request;
5390 executePMRequest( request );
5515 // getName(), request, request->getType());
5528 void IOService::executePMRequest( IOPMRequest * request )
5532 switch (request->getType())
5535 handlePMstop( request );
5539 addPowerChild1( request );
5543 addPowerChild2( request );
5547 addPowerChild3( request );
5551 handleRegisterPowerDriver( request );
5559 handleMakeUsable( request );
5564 handleMakeUsable( request );
5568 handlePowerDomainWillChangeTo( request );
5572 handlePowerDomainDidChangeTo( request );
5576 handleChangePowerStateTo( request );
5580 handleChangePowerStateToPriv( request );
5585 handlePowerOverrideChanged( request );
5589 if (request)
5593 if (request->fArg1)
5596 unsigned long ticklePowerState = (unsigned long) request->fArg0;
5607 request->fArg0 = (void *) (fDeviceDesire - 1);
5614 // request type, as long as the args are appropriate
5617 request->fArg1 = (void *) false;
5618 handleChangePowerStateToPriv( request );
5624 IOPanic("executePMRequest: unknown request type");
5632 bool IOService::servicePMReplyQueue( IOPMRequest * request, IOPMRequestQueue * queue )
5636 assert( request && queue );
5637 assert( request->isReply() );
5640 request->getType(), request, this, getName(), fMachineState);
5642 switch ( request->getType() )
5647 if (responseValid((unsigned long) request->fArg0, (int) request->fArg1))
5649 if (kIOPMRequestTypeCancelPowerChange == request->getType())
5666 more = handleAcknowledgePowerChange( request );
5701 handleInterestChanged( request );
5723 releasePMRequest( request );
5822 void IOPMRequestQueue::queuePMRequest( IOPMRequest * request )
5824 assert(request);
5826 queue_enter(&fQueue, request, IOPMRequest *, fCommandChain);
5851 IOPMRequest * request;
5859 queue_remove_first( &fQueue, request, IOPMRequest *, fCommandChain );
5861 target = request->getTarget();
5863 more |= (*dqAction)( target, request, this );
5879 // Every object in the power plane that has handled a PM request, will have an
5911 void IOPMWorkQueue::queuePMRequest( IOPMRequest * request )
5913 assert( request );
5917 queue_enter(&fWorkQueue, request, IOPMRequest *, fCommandChain);
5923 IOPMRequest * request;
5929 request = (IOPMRequest *) queue_first(&fWorkQueue);
5930 assert(request->getTarget() == target);
5931 if (request->hasChildRequest()) break;
5932 done = (*fWorkAction)( target, request, this );
5937 queue_remove_first(&fWorkQueue, request, IOPMRequest *, fCommandChain);
5938 (*fRetireAction)( target, request, this );