コード例 #1
0
ファイル: Context.cpp プロジェクト: steffen-kiess/dda
  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]));
  }
コード例 #2
0
ファイル: driver.cpp プロジェクト: blueskycoco/dm3730-spi
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);

}
コード例 #3
0
ファイル: Streams.cpp プロジェクト: jaapnull/Crockett
void DeviceRegistery::RegisterDevice(StreamDevice* inDevice)
{
	gAssert(inDevice != nullptr);
	gAssert(mDeviceMap.find(inDevice->GetName()) == mDeviceMap.end());
	mDeviceMap.insert(DeviceEntry(inDevice->GetName(), inDevice));
}