-
- // panther, 3160200
- // IOMachPort::releasePortForObject( obj, IKOT_IOKIT_CONNECT );
-
- OSDictionary * dict;
-
- IOTakeLock( gIOObjectPortLock);
- obj->retain();
-
- if( (dict = IOMachPort::dictForType( IKOT_IOKIT_CONNECT )))
- {
- IOMachPort * port;
- port = (IOMachPort *) dict->getObject( (const OSSymbol *) obj );
- if (port)
- {
- IOUserClient * uc;
- if ((uc = OSDynamicCast(IOUserClient, obj)) && uc->mappings)
- {
- dict->setObject((const OSSymbol *) uc->mappings, port);
- iokit_switch_object_port(port->port, uc->mappings, IKOT_IOKIT_CONNECT);
-
- uc->mappings->release();
- uc->mappings = 0;
- }
- dict->removeObject( (const OSSymbol *) obj );
- }
- }
- obj->release();
- IOUnlock( gIOObjectPortLock);
-