BError fpgaGetInfo(BList<NameValue>& infoList);
BError fpgaReadData32(uint32_t fpgaOffset, void* toAddress, int nbytes);
BError fpgaReadData64(uint32_t fpgaOffset, void* toAddress, int nbytes);
BError fpgaWriteData64(void* fromAddress, uint32_t fpgaOffset, int nbytes);
BError fpgaCopyData(int pupeChan, uint32_t address, uint32_t nsamples, Data& data);
BError fpgaGetAverageData(int pupeChan, uint32_t timeMs, uint32_t timingAddress, uint32_t bunch, uint32_t numValues, Data& data);
BError fpgaGetAverageDataAll(int pupeChan, uint32_t timeMs, uint32_t timingAddress, uint32_t numBunches, uint32_t numValues, Data& data);
void dataAverage(uint32_t timeMs, Data& data);
Control& ocontrol;
BMutex olock; ///< Locks access to the FPGA
BMutex odiagLock; ///< Diagnostics capture lock
int oboard;
int oslot; ///< The bus slot the board is in
int omaster;
int osimulate;
PupeConfig opupeConfig;
int oinitialised; ///< The board has been initialised
BError ostatus; ///< The boards current status