Summary Description

Version v1_04_05 was released on 6/15/2015. This release fixes a critical bug in libDTCInterface that was causing ARTDAQ applications to crash. It also incorporates a few small bugfixes elsewhere in the code. The driver has been updated to support v3.<RON INSERT KERNEL VERSION HERE> kernels, which included updating several structures within the driver to avoid depreciated code.

DTCInterface Changes

  • DTC_Timestamp::toPacketFormat(): Properly cast the timestamp array members to 'int' before printing to avoid the compiler interpreting them as 'char' types and printing entirely the wrong thing
  • DTC_DataPacket::DTC_DataPacket(): Change default size of direct-allocated memory buffer from 16 bytes to 64 (the minimum DMA transfer length)
  • DTC_DataPacket::DTC_DataPacket(const DTC_DataPacket& in): Implemented copy constructor as default copy constructor behaved incorrectly. New copy constructor performs a "shallow" copy when DTC_DataPacket points to a buffer obtained from the DTC, and a "deep" copy when it is pointing to locally-allocated memory. (This is the critical bugfix referenced above.)
  • DTC_DataPacket::Resize(): Added a delete[] of the old buffer after copying data into the new one; potential memory leak fix
  • bool DTC_DataPacket::IsMemoryPacket() accessor added (True if DTC_DataPacket points to DTC buffer, false otherwise)

CFOInterface Changes

  • No changes to the CFOInterface for this version

DTC Web Interface Changes

  • No changes to the DTC Web Interface for this version

CFO Web Interface Changes

  • No changes to the CFO Web Interface for this version

Driver Changes

  • Updated Makefiles to use CC=/usr/bin/gcc to resolve potential kernel symbol lookup errors
  • Kernel version checking, use compat_ioctl for kernel v2.6.40 and higher
  • Removed depreciated __devexit_p and __devexit macros