u32 showDeviceInfo() { u32 configAddress = calculateAddress(bus, device, function, 0x00); u32 RegData = getRegData(configAddress); if (RegData == -1) { return 1; } u32 DeviceID = RegData >> 16; u32 VendorID = RegData - (DeviceID << 16); configAddress = calculateAddress(bus, device, function, 0x08); RegData = getRegData(configAddress); u32 ClassID = RegData >> 8; u32 RevisionID = RegData - (ClassID << 8); u32 BaseClassCode = ClassID >> 16; u32 Progu32erface = ClassID - (BaseClassCode << 16); u32 SubClassCode = Progu32erface >> 8; Progu32erface = Progu32erface - (SubClassCode << 8); configAddress = calculateAddress(bus, device, function, 0x2C); RegData = getRegData(configAddress); u32 SubsysID = RegData >> 16; u32 SubsysVendID = RegData - (SubsysID << 16); printf("Bus: %x, device: %x, function: %x\n", bus, device, function); printf("Device ID: %x, Vendor ID: %x, Class ID: %x-%x-%x\n", DeviceID, VendorID, BaseClassCode, SubClassCode, Progu32erface); printf("Revision ID: %x, Subsystem ID: %x, Subsystem Vendor ID: %x\n", RevisionID, SubsysID, SubsysVendID); decodeNames(DeviceID, VendorID, BaseClassCode, SubClassCode, Progu32erface); printf("-------------------------------------------------------------------------------\n"); return 0; }
//============================================================================= // Initialisation. Check parameters //============================================================================= StatusCode GaudiSequencer::initialize() { GaudiAlgorithm::initialize(); if (msgLevel(MSG::DEBUG)) debug() << "==> Initialise" << endmsg; StatusCode status = decodeNames(); if ( !status.isSuccess() ) return status; m_timerTool = tool<ISequencerTimerTool>( "SequencerTimerTool" ); if ( m_timerTool->globalTiming() ) m_measureTime = true; if ( m_measureTime ) { m_timer = m_timerTool->addTimer( name() ); m_timerTool->increaseIndent(); } else { release( m_timerTool ); m_timerTool = 0; } //== Initialize the algorithms std::vector<AlgorithmEntry>::iterator itE; for ( itE = m_entries.begin(); m_entries.end() != itE; itE++ ) { if ( m_measureTime ) { itE->setTimer( m_timerTool->addTimer( itE->algorithm()->name() ) ); } status = itE->algorithm()->sysInitialize(); if ( !status.isSuccess() ) { return Error( "Can not initialize " + itE->algorithm()->name(), status ); } } if ( m_measureTime ) m_timerTool->decreaseIndent(); return StatusCode::SUCCESS; }