PlatformEntry::PlatformEntry (size_t id, const cl::Platform& platform) : id_ (id), platform_ (platform) { name_ = platform_.getInfo<CL_PLATFORM_NAME> (); std::vector<cl::Device> devs; platform_.getDevices (CL_DEVICE_TYPE_ALL, &devs); /* static std::vector<cl::Device> devs2; devs2.insert (devs2.begin (), devs.begin (), devs.end ()); devs = devs2; */ for (size_t i = 0; i < devs.size (); i++) devices_.push_back (DeviceEntry (*this, i, devs[i])); }
void NIC_DRIVER_OBJECT::EDriverInitialize( OUT PNDIS_STATUS OpenErrorStatus, OUT PUINT SelectedMediaIndex, IN PNDIS_MEDIUM MediaArray, IN UINT MediaArraySize) { m_uRecentInterruptStatus = 0; if(!m_pLower) m_pLower = DeviceEntry(this,NULL); if(!m_pLower) THROW((ERR_STRING("Error in creating device"))); UINT i; NDIS_STATUS status; NDIS_HANDLE hconfig; // Determinate media type for(i=0; i<MediaArraySize; i++) if(MediaArray[i] == NdisMedium802_3) break; if (i == MediaArraySize) THROW((ERR_STRING("Unsupported media"),NDIS_STATUS_UNSUPPORTED_MEDIA)); *SelectedMediaIndex = i; // Read registry configurations NdisOpenConfiguration( &status, &hconfig, m_NdisWrapper); if(status != NDIS_STATUS_SUCCESS) THROW((ERR_STRING("Error in opening configuration"),status)); C_Exception *pexp; TRY { m_pLower->DeviceSetDefaultSettings(); m_pLower->DeviceSetEepromFormat(); m_pLower->DeviceRetriveConfigurations(hconfig); m_pLower->EDeviceValidateConfigurations(); FI; } CATCH(pexp) { pexp->PrintErrorMessage(); CLEAN(pexp); NdisCloseConfiguration(hconfig); THROW((ERR_STRING("*** Error in retriving configurations.\n"))); } NdisCloseConfiguration(hconfig); m_pLower->DeviceRegisterAdapter(); /* init tx buffers */ U32 m,uaddr; if(!(uaddr = (U32)malloc(sizeof(DATA_BLOCK)* (m=m_pLower->m_szConfigures[CID_TXBUFFER_NUMBER]*2)))) THROW((ERR_STRING("Insufficient memory"))); for(;m--;uaddr+=sizeof(DATA_BLOCK)) m_TQueue.Enqueue((PCQUEUE_GEN_HEADER)uaddr); TRY { m_pLower->EDeviceRegisterIoSpace(); m_pLower->EDeviceLoadEeprom(); m_pLower->EDeviceInitialize(m_pLower->m_nResetCounts=0); m_pLower->EDeviceRegisterInterrupt(); FI; } CATCH(pexp) { pexp->PrintErrorMessage(); CLEAN(pexp); THROW((ERR_STRING("Device error"))); } m_pLower->DeviceOnSetupFilter(0); }
void DeviceRegistery::RegisterDevice(StreamDevice* inDevice) { gAssert(inDevice != nullptr); gAssert(mDeviceMap.find(inDevice->GetName()) == mDeviceMap.end()); mDeviceMap.insert(DeviceEntry(inDevice->GetName(), inDevice)); }