/************************************************/ /* */ /* File : VmeLib.c */ /* Description : Read and write register function */ /* */ /* Author : Maurizio De Nino */ /* Modified by : Sfiligoi Igor */ /* */ /* Created : 01/10/97 */ /* Last modified: 21/10/97 */ /* */ /************************************************/ #include <stdio.h> #include <stdlib.h> #include <Vme.h> #include <Vme_am.h> #include "VmeLib.h" #ifndef u_char #define u_char unsigned char #endif #ifndef u_short #define u_short unsigned short #endif #ifndef u_int #define u_int unsigned int #endif /************************************************************************/ /* Funzioni di libreria che dovrebbero interfacciarsi con quelle comprese nel <Vme.h> */ /*************************************************************************/ unsigned char myVme_D08READ(ROCKM_id this_board,unsigned int offset) { unsigned char reg08; unsigned char *aptr; aptr=(u_char *)((u_char *)this_board->map_ptr+this_board->offs+offset); #ifdef DEBUG printf("read addr:%p",aptr); #endif Vme_D08READ(this_board->map_ptr,aptr,reg08); #ifdef DEBUG printf(" : %x\n",reg08); #endif return reg08; } void myVme_D08WRITE(ROCKM_id this_board,unsigned int offset,unsigned char data) { unsigned char *aptr; aptr=(u_char *)this_board->map_ptr+this_board->offs+offset; #ifdef DEBUG printf("write addr: %p : %x\n",aptr,data); #endif Vme_D08WRITE(this_board->map_ptr,aptr,data); } unsigned short myVme_D16READ(ROCKM_id this_board,unsigned int offset) { unsigned short reg16; unsigned short *aptr; aptr=(u_short *)((u_char *)this_board->map_ptr+this_board->offs+offset); #ifdef DEBUG printf("read addr:%p",aptr); #endif Vme_D16READ(this_board->map_ptr,aptr,reg16); #ifdef DEBUG printf(" : %x\n",reg16); #endif return reg16; } void myVme_D16WRITE(ROCKM_id this_board,unsigned int offset,unsigned short data) { unsigned short *aptr; aptr=(u_short *)((u_char *)this_board->map_ptr+this_board->offs+offset); #ifdef DEBUG printf("write addr: %p : %x\n",aptr,data); #endif Vme_D16WRITE(this_board->map_ptr,aptr,data); } u_int myVme_D32READ(ROCKM_id this_board,u_int offset) { u_int reg32; u_int *aptr; aptr=(u_int *)((u_char *)this_board->map_ptr+this_board->offs+offset); #ifdef DEBUG printf("read addr:%p",aptr); #endif Vme_D32READ(this_board->map_ptr,aptr,reg32); #ifdef DEBUG printf(" : %x\n",reg32); #endif return reg32; } void myVme_D32WRITE(ROCKM_id this_board,u_int offset,u_int data) { u_int *aptr; aptr=(u_int *)((u_char *)this_board->map_ptr+this_board->offs+offset); #ifdef DEBUG printf("write addr: %p : %x\n",aptr,data); #endif Vme_D32WRITE(this_board->map_ptr,aptr,data); }