bool MolEnet::createMediumTables() { IONetworkMedium *medium; UInt32 i; mediumDict = OSDictionary::withCapacity( sizeof(mediumTable)/sizeof(mediumTable[0]) ); if( !mediumDict ) return false; for( i=0; i<sizeof(mediumTable)/sizeof(mediumTable[0]); i++ ) { medium = IONetworkMedium::medium( mediumTable[i].type, mediumTable[i].speed ); if( medium ) { IONetworkMedium::addMedium( mediumDict, medium ); medium->release(); } } if( !publishMediumDictionary( mediumDict ) ) return false; medium = IONetworkMedium::getMediumWithType( mediumDict, kIOMediumEthernetAuto ); setCurrentMedium( medium ); return true; }
bool darwin_iwi3945::addMediumType(UInt32 type, UInt32 speed, UInt32 code, char* name) { IONetworkMedium * medium; bool ret = false; medium = IONetworkMedium::medium(type, speed, 0, code, name); if (medium) { ret = IONetworkMedium::addMedium(mediumDict, medium); if (ret) mediumTable[code] = medium; medium->release(); } return ret; }
bool NullEthernet::setupMediumDict() { IONetworkMedium *medium; UInt32 i; bool result = false; m_mediumDict = OSDictionary::withCapacity(MEDIUM_INDEX_COUNT + 1); if (m_mediumDict) { for (i = MEDIUM_INDEX_AUTO; i < MEDIUM_INDEX_COUNT; i++) { medium = IONetworkMedium::medium(mediumTypeArray[i], mediumSpeedArray[i], 0, i); if (!medium) goto error1; result = IONetworkMedium::addMedium(m_mediumDict, medium); medium->release(); if (!result) goto error1; m_mediumTable[i] = medium; } } result = publishMediumDictionary(m_mediumDict); if (!result) goto error1; done: return result; error1: AlwaysLog("NullEthernet: Error creating medium dictionary.\n"); m_mediumDict->release(); for (i = MEDIUM_INDEX_AUTO; i < MEDIUM_INDEX_COUNT; i++) m_mediumTable[i] = NULL; goto done; }