AlcapDAQ  1
Macros | Functions
bt617.c File Reference

Go to the source code of this file.

Macros

#define DEV_FILE   "/dev/vmedrv"
 

Functions

int mvme_open (MVME_INTERFACE **vme, int idx)
 
int mvme_close (MVME_INTERFACE *vme)
 
void show_mvme (MVME_INTERFACE *vme)
 
vmedrv_access_mode_t bt617_GetAccessMode (MVME_INTERFACE *vme)
 
void bt617_SetAccessMode (MVME_INTERFACE *vme)
 
int mvme_set_am (MVME_INTERFACE *vme, int am)
 
int mvme_get_am (MVME_INTERFACE *vme, int *am)
 
int mvme_set_dmode (MVME_INTERFACE *vme, int dm)
 
int mvme_set_blt (MVME_INTERFACE *vme, int mode)
 
int mvme_get_blt (MVME_INTERFACE *vme, int *mode)
 
int mvme_get_dmode (MVME_INTERFACE *vme, int *dm)
 
int mvme_read (MVME_INTERFACE *vme, void *dst, mvme_addr_t vme_addr, mvme_size_t n_bytes)
 
int mvme_write (MVME_INTERFACE *vme, mvme_addr_t vme_addr, void *src, mvme_size_t n_bytes)
 
unsigned int mvme_read_value (MVME_INTERFACE *vme, mvme_addr_t vme_addr)
 
int mvme_write_value (MVME_INTERFACE *vme, mvme_addr_t vme_addr, unsigned int value)
 
void showbits (uint32_t data)
 
void bt617_SetBLT (MVME_INTERFACE *vme, bool blt)
 

Macro Definition Documentation

#define DEV_FILE   "/dev/vmedrv"

Definition at line 17 of file bt617.c.

Referenced by mvme_open().

Function Documentation

vmedrv_access_mode_t bt617_GetAccessMode ( MVME_INTERFACE vme)

Definition at line 61 of file bt617.c.

References MVME_INTERFACE::am, MVME_INTERFACE::dmode, MVME_AM_A16_ND, MVME_AM_A24_ND, MVME_AM_A32_ND, MVME_DMODE_D16, MVME_DMODE_D32, VMEDRV_A16D16, VMEDRV_A16D32, VMEDRV_A24D16, VMEDRV_A24D32, VMEDRV_A32D16, and VMEDRV_A32D32.

Referenced by bt617_SetAccessMode().

62 {
63  int dmode = vme->dmode;
64  int am = vme->am;
65  int enum_am, enum_dm;
66  switch (am)
67  {
68  case MVME_AM_A32_ND:
69  enum_am = 0;
70  break;
71  case MVME_AM_A24_ND:
72  enum_am = 1;
73  break;
74  case MVME_AM_A16_ND:
75  enum_am = 2;
76  break;
77  default:
78  enum_am = 0;
79  break;
80  }
81 
82  switch (dmode)
83  {
84  case MVME_DMODE_D32:
85  enum_dm = 0;
86  break;
87  case MVME_DMODE_D16:
88  enum_dm = 1;
89  break;
90  default:
91  enum_dm = 0;
92  break;
93  }
94 
95  static vmedrv_access_mode_t access_mode_tab[3][2] = {
99  };
100  return access_mode_tab[enum_am][enum_dm];
101 }
void bt617_SetAccessMode ( MVME_INTERFACE vme)

Definition at line 103 of file bt617.c.

References bt617_GetAccessMode(), MVME_INTERFACE::handle, and VMEDRV_IOC_SET_ACCESS_MODE.

Referenced by mvme_open(), mvme_set_am(), and mvme_set_dmode().

104 {
106  ioctl(vme->handle,VMEDRV_IOC_SET_ACCESS_MODE,&amode);
107 }
void bt617_SetBLT ( MVME_INTERFACE vme,
bool  blt 
)

Definition at line 274 of file bt617.c.

References MVME_INTERFACE::handle, VMEDRV_DMA, VMEDRV_IOC_SET_TRANSFER_METHOD, and VMEDRV_PIO.

Referenced by mvme_set_blt().

275 {
276  if (blt)
277  {
278  int transfer_method = VMEDRV_DMA;
279  ioctl(vme->handle, VMEDRV_IOC_SET_TRANSFER_METHOD, &transfer_method);
280  }
281  else
282  {
283  int transfer_method = VMEDRV_PIO;
284  ioctl(vme->handle, VMEDRV_IOC_SET_TRANSFER_METHOD, &transfer_method);
285 
286  }
287 }
void show_mvme ( MVME_INTERFACE vme)

Definition at line 51 of file bt617.c.

References MVME_INTERFACE::am, MVME_INTERFACE::dmode, MVME_INTERFACE::handle, MVME_INTERFACE::index, MVME_INTERFACE::initialized, and printf().

52 {
53  printf("mvme properties:\n");
54  printf("init: %d\n",vme->initialized);
55  printf("handl: %d\n",vme->handle);
56  printf("index: %d\n",vme->index);
57  printf("am: %X\n",vme->am);
58  printf("dw: %d\n",vme->dmode);
59 }
void showbits ( uint32_t  data)

Definition at line 238 of file bt617.c.

Referenced by v1290_FWRev(), and v1290_ReadEventFIFO().

239 {
240  int ii;
241  for (ii=31;ii>=28;ii--)
242  (data&(1<<ii))?putchar('1'):putchar('0');
243  putchar(' ');
244 
245  for (ii=27;ii>=24;ii--)
246  (data&(1<<ii))?putchar('1'):putchar('0');
247  putchar(' ');
248 
249  for (ii=23;ii>=20;ii--)
250  (data&(1<<ii))?putchar('1'):putchar('0');
251  putchar(' ');
252 
253  for (ii=19;ii>=16;ii--)
254  (data&(1<<ii))?putchar('1'):putchar('0');
255  putchar(' ');
256 
257  for (ii=15;ii>=12;ii--)
258  (data&(1<<ii))?putchar('1'):putchar('0');
259  putchar(' ');
260 
261  for (ii=11;ii>=8;ii--)
262  (data&(1<<ii))?putchar('1'):putchar('0');
263  putchar(' ');
264 
265  for (ii=7;ii>=4;ii--)
266  (data&(1<<ii))?putchar('1'):putchar('0');
267  putchar(' ');
268 
269  for (ii=3;ii>=0;ii--)
270  (data&(1<<ii))?putchar('1'):putchar('0');
271  putchar('\n');
272 }