Subversion Repositories f9daq

Rev

Rev 5 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/********************\
  VMEModule.hh

  update: 04/01/28

\********************/

#ifndef VMEMODULE_HH
#define VMEMODULE_HH



#include <stdio.h>
#include <sys/types.h>
#include "pcivme_ni.h"

#define VMEA24 (unsigned short)0x39
#define VMEA32 (unsigned short)0x09 
#define VMEA16 (unsigned short)0x29 
class VMEModule {
protected:
  int m_fd;
  int m_vmeptr;
  caddr_t m_vmeaddr;
  size_t m_size;
  unsigned long m_baseaddress;
public:
  VMEModule(int device, caddr_t vmeaddr, size_t size);
  ~VMEModule();
  unsigned long getBaseAddress() { return (unsigned long) m_baseaddress; }
  caddr_t   getVmeAddress() { return  m_vmeaddr; }
  void  write32(unsigned long address, unsigned long value);
  unsigned long read32(unsigned long address);
  
  void  write16(unsigned long address, unsigned short value);
  unsigned short read16(unsigned long address);
};

#endif