Lines Matching defs:provider
377 IOService * IOService::probe( IOService * provider,
383 bool IOService::start( IOService * provider )
388 void IOService::stop( IOService * provider )
404 bool IOService::attach( IOService * provider )
408 if( provider) {
412 provider->getName());
414 provider->lockForArbitration();
415 if( provider->__state[0] & kIOServiceInactiveState)
418 ok = attachToParent( provider, gIOServicePlane);
419 provider->unlockForArbitration();
434 void IOService::detach( IOService * provider )
441 LOG("%s::detach(%s)\n", getName(), provider->getName());
446 && (provider == getProvider()));
448 detachFromParent( provider, gIOServicePlane );
465 if( provider->lockForArbitration( true )) {
467 provider->_adjustBusy( -1 );
468 if( (provider->__state[1] & kIOServiceTermPhase3State)
469 && (0 == provider->getClient())) {
470 provider->scheduleFinalize();
472 provider->unlockForArbitration();
535 IOService * provider;
546 || ((provider = getProvider())
547 && (provider->__state[1] & kIOServiceSynchronousState));
712 * Client/provider accessors
740 IOService *provider = getProvider();
742 if (provider)
743 return provider->getWorkLoop();
765 const IOService * provider )
781 inst->provider = provider;
806 || (provider && (provider->isOpen( next ))) )
847 IOService *provider;
863 if ((kIOReturnUnsupported == result) && (provider = getProvider())) {
864 result = provider->callPlatformFunction(functionName, waitForFunction,
1633 bool IOService::requestTerminate( IOService * provider, IOOptionBits options )
1637 // if its our only provider
1638 ok = isParent( provider, gIOServicePlane, true);
1642 provider->terminateClient( this, options | kIOServiceRecursing );
1804 void IOService::scheduleStop( IOService * provider )
1806 TLOG("%s::scheduleStop(%s)\n", getName(), provider->getName());
1810 gIOStopProviderList->tailQ( provider );
1839 bool IOService::willTerminate( IOService * provider, IOOptionBits options )
1844 bool IOService::didTerminate( IOService * provider, IOOptionBits options, bool * defer )
1849 if( false == provider->handleIsOpen( this ))
1850 scheduleStop( provider );
1853 message( kIOMessageServiceIsRequestingClose, provider, (void *) options );
1854 if( false == provider->handleIsOpen( this ))
1855 scheduleStop( provider );
1911 void IOService::actionStop( IOService * provider, IOService * client )
1913 TLOG("%s::stop(%s)\n", client->getName(), provider->getName());
1914 client->stop( provider );
1915 if( provider->isOpen( client ))
1916 provider->close( client );
1917 TLOG("%s::detach(%s)\n", client->getName(), provider->getName());
1918 client->detach( provider );
1929 IOService * provider;
2017 provider = (IOService *) gIOStopProviderList->getObject(idx);
2018 assert( provider );
2020 if( !provider->isChild( client, gIOServicePlane )) {
2022 TLOG("%s::nop stop(%s)\n", client->getName(), provider->getName());
2026 TLOG("%s::defer stop(%s)\n", client->getName(), provider->getName());
2033 provider, (void *) client );
2040 freeList->setObject( provider );
2071 IOService * provider;
2077 while( (provider = (IOService *) iter->getNextObject())) {
2082 stop( provider );
2083 if( provider->isOpen( this ))
2084 provider->close( this );
2085 detach( provider );
2088 if( provider->lockForArbitration( true )) {
2089 if( 0 == (provider->__state[1] & kIOServiceTermPhase3State))
2090 scheduleStop( provider );
2091 provider->unlockForArbitration();
2118 // we are the clients only provider
2389 * called on the provider instance
3940 * Go looking for a provider to match a location dict.
4382 IOReturn IOService::message( UInt32 type, IOService * provider,
4386 * Generic entry point for calls from the provider. A return value of