/*
#ifndef RockM_field_access
#define RockM_field_access
*/

#include "RockM_reg_def_type.h"
#include "RockM_reg_access.h"


/************************************************************************/
/*									*/
/*			 INTERNAL PAGE					*/
/*	ogni funzione che usera' queste macro dovra' aver effettuato	*/
/*     la dichiarazione RockM_reg_declaration ed aver incluso .. 	*/
/*									*/
/*  Le macro read restituiscono il valore letto				*/
/*Le macro write restituiscono un valore diverso da zero in caso di errore*/ 
/************************************************************************/


			/* REGISTRO RESET */

#define RockM_read_filter(this_board) 					\
		( RESET=RockM_read_reset(this_board), 			\
		  FILTER				)

#define RockM_write_filter(this_board,one_bit_value)  (			\
			RESET=RockM_read_reset(this_board), 		\
			FILTER=one_bit_value,				\
			RockM_write_reset(this_board,RESET), 		\
			one_bit_value-RockM_read_filter(this_board) )



#define RockM_read_intrst(this_board)					\
			( RESET=RockM_read_reset(this_board),		\
		  	  INTRST				)

#define RockM_write_intrst(this_board,one_bit_value)	(               \
			RESET=RockM_read_reset(this_board), 		\
			INTRST=one_bit_value,				\
			RockM_write_reset(this_board,RESET), 		\
			one_bit_value-RockM_read_intrst(this_board) )


#define RockM_read_reprog(this_board)					\
			( RESET=RockM_read_reset(this_board),		\
			  REPROG				)

#define RockM_write_reprog(this_board,one_bit_value)	(		\
			RESET=RockM_read_reset(this_board), 		\
			REPROG=one_bit_value,				\
			RockM_write_reset(this_board,RESET), 		\
			one_bit_value-RockM_read_reprog(this_board) )

#define RockM_read_cbus(this_board)					\
			( RESET=RockM_read_reset(this_board),		\
			  CBUS				)

#define RockM_write_cbus(this_board,one_bit_value)	(		\
			RESET=RockM_read_reset(this_board), 		\
			CBUS=one_bit_value,				\
			RockM_write_reset(this_board,RESET), 		\
			one_bit_value-RockM_read_cbus(this_board) )
			
#define	RockM_read_fifo_rst(this_board)					\
			(RESET=RockM_read_reset(this_board),		\
			 FIFO_RST	)


#define RockM_write_fifo_rst(this_board,one_bit_value)	(		\
			RESET=RockM_read_reset(this_board), 		\
			FIFO_RST=one_bit_value,				\
			RockM_write_reset(this_board,RESET), 		\
			one_bit_value-RockM_read_fifo_rst(this_board) )

#define	RockM_read_micro(this_board)					\
			(RESET=RockM_read_reset(this_board),		\
			 MICRO	)


#define RockM_write_micro(this_board,one_bit_value)	(		\
			RESET=RockM_read_reset(this_board), 		\
			MICRO=one_bit_value,				\
			RockM_write_reset(this_board,RESET), 		\
			one_bit_value-RockM_read_micro(this_board) )

#define	RockM_read_hub_rst(this_board)					\
			(RESET=RockM_read_reset(this_board),		\
			 HUB_RST	)


#define RockM_write_hub_rst(this_board,one_bit_value)	(		\
			RESET=RockM_read_reset(this_board), 		\
			HUB_RST=one_bit_value,				\
			RockM_write_reset(this_board,RESET), 		\
			one_bit_value-RockM_read_hub_rst(this_board) )

#define	RockM_read_cman(this_board)					\
			(RESET=RockM_read_reset(this_board),		\
			 CMAN	)


#define RockM_write_cman(this_board,one_bit_value)	(		\
			RESET=RockM_read_reset(this_board), 		\
			CMAN=one_bit_value,				\
			RockM_write_reset(this_board,RESET), 		\
			one_bit_value-RockM_read_cman(this_board) )

	

		/* REGISTRO FIFOREG */

#define RockM_read_d_f(this_board) 					\
		( FIFOREG=RockM_read_fiforeg(this_board), 		\
		  D_F				)

#define RockM_read_d_af(this_board) 					\
		( FIFOREG=RockM_read_fiforeg(this_board), 		\
		  D_AF				)

#define RockM_read_d_ghf(this_board) 					\
		( FIFOREG=RockM_read_fiforeg(this_board), 		\
		  D_GHF				)

#define RockM_read_d_lhf(this_board) 					\
		( FIFOREG=RockM_read_fiforeg(this_board), 		\
		  D_LHF				)

#define RockM_read_d_ae(this_board) 					\
		( FIFOREG=RockM_read_fiforeg(this_board), 		\
		  D_AE				)

#define RockM_read_d_e(this_board) 					\
		( FIFOREG=RockM_read_fiforeg(this_board), 		\
		  D_E				)

#define RockM_read_t_ef(this_board) 					\
		( FIFOREG=RockM_read_fiforeg(this_board), 		\
		  T_EF				)

#define RockM_read_t_ff(this_board) 					\
		( FIFOREG=RockM_read_fiforeg(this_board), 		\
		  T_FF				)

	
	/* REGISTRO CSR0 */

#define	RockM_read_foe(this_board)					\
			(CSR0=RockM_read_csr0(this_board),		\
			 FOE	)


#define RockM_write_foe(this_board,one_bit_value)	(		\
			CSR0=RockM_read_csr0(this_board),		\
			FOE=one_bit_value,				\
			RockM_write_csr0(this_board,CSR0),		\
			one_bit_value-RockM_read_foe(this_board) )


#define	RockM_read_boe(this_board)					\
			(CSR0=RockM_read_csr0(this_board),		\
			 BOE	)


#define RockM_write_boe(this_board,one_bit_value)	(		\
			CSR0=RockM_read_csr0(this_board),		\
			BOE=one_bit_value,				\
			RockM_write_csr0(this_board,CSR0),		\
			one_bit_value-RockM_read_boe(this_board) )


#define	RockM_read_bof(this_board)					\
			(CSR0=RockM_read_csr0(this_board),		\
			 BOF	)


#define RockM_write_bof(this_board,one_bit_value)	(		\
			CSR0=RockM_read_csr0(this_board),		\
			BOF=one_bit_value,				\
			RockM_write_csr0(this_board,CSR0),		\
			one_bit_value-RockM_read_bof(this_board) )


#define	RockM_read_cbusy_ff(this_board)					\
			(CSR0=RockM_read_csr0(this_board),		\
			 CBUSY_FF	)


#define RockM_write_cbusy_ff(this_board,one_bit_value)	(		\
			CSR0=RockM_read_csr0(this_board),		\
			CBUSY_FF=one_bit_value,				\
			RockM_write_csr0(this_board,CSR0),		\
			one_bit_value-RockM_read_cbusy_ff(this_board) )


#define	RockM_read_cpause(this_board)					\
			(CSR0=RockM_read_csr0(this_board),		\
			 CPAUSE	)


#define RockM_write_cpause(this_board,one_bit_value)	(		\
			CSR0=RockM_read_csr0(this_board),		\
			CPAUSE=one_bit_value,				\
			RockM_write_csr0(this_board,CSR0),		\
			one_bit_value-RockM_read_cpause(this_board) )

#define	RockM_read_hub_mode(this_board)					\
			(CSR0=RockM_read_csr0(this_board),		\
			 HUB_MODE	)


#define RockM_write_hub_mode(this_board,one_bit_value)	(		\
			CSR0=RockM_read_csr0(this_board),		\
			HUB_MODE=one_bit_value,				\
			RockM_write_csr0(this_board,CSR0),		\
			one_bit_value-RockM_read_hub_mode(this_board) )

#define	RockM_read_inttrg(this_board)					\
			(CSR0=RockM_read_csr0(this_board),		\
			 INTTRG	)


#define RockM_write_inttrg(this_board,one_bit_value)	(		\
			CSR0=RockM_read_csr0(this_board),		\
			INTTRG=one_bit_value,				\
			RockM_write_csr0(this_board,CSR0),		\
			one_bit_value-RockM_read_inttrg(this_board) )

#define	RockM_read_diag(this_board)					\
			(CSR0=RockM_read_csr0(this_board),		\
			 DIAG	)


#define RockM_write_diag(this_board,one_bit_value)	(		\
			CSR0=RockM_read_csr0(this_board),		\
			DIAG=one_bit_value,				\
			RockM_write_csr0(this_board,CSR0),		\
			one_bit_value-RockM_read_diag(this_board) )


	/* REGISTRO CSR1 */

#define	RockM_read_ctknout(this_board)					\
			(CSR1=RockM_read_csr1(this_board),		\
			 CTKNOUT	)

#define	RockM_read_crdy(this_board)					\
			(CSR1=RockM_read_csr1(this_board),		\
			 CRDY	)

#define	RockM_read_cerr(this_board)					\
			(CSR1=RockM_read_csr1(this_board),		\
			 CERR	)

#define	RockM_read_crst(this_board)					\
			(CSR1=RockM_read_csr1(this_board),		\
			 CRST	)

#define	RockM_read_crngt(this_board)					\
			(CSR1=RockM_read_csr1(this_board),		\
			 CRNGT	)

#define	RockM_read_cbusy(this_board)					\
			(CSR1=RockM_read_csr1(this_board),		\
			 CBUSY	)

#define	RockM_read_ctrgv(this_board)					\
			(CSR1=RockM_read_csr1(this_board),		\
			 CTRGV	)

	
	/* REGISTRO CSR2 */

#define	RockM_read_hubon(this_board)					\
			(CSR2=RockM_read_csr2(this_board),		\
			 HUBON	)

#define	RockM_read_cbuson(this_board)					\
			(CSR2=RockM_read_csr2(this_board),		\
			 CBUSON	)

#define	RockM_read_timeout(this_board)					\
			(CSR2=RockM_read_csr2(this_board),		\
			 TIMEOUT	)

#define	RockM_read_elapsed(this_board)					\
			(CSR2=RockM_read_csr2(this_board),		\
			 ELAPSED	)

#define RockM_write_elapsed(this_board,one_bit_value)	(		\
			CSR2=RockM_read_csr2(this_board),		\
			ELAPSED=one_bit_value,			\
			RockM_write_csr2(this_board,CSR2),		\
			one_bit_value-RockM_read_elapsed(this_board) )

#define	RockM_read_wscale(this_board)					\
			(CSR2=RockM_read_csr2(this_board),		\
			 WSCALE 	)

#define RockM_write_wscale(this_board,three_bits_value)	(		\
			CSR2=RockM_read_csr2(this_board),		\
			WSCALE=three_bits_value,			\
			RockM_write_csr2(this_board,CSR2),		\
			three_bits_value-RockM_read_wscale(this_board) )


/* RESISTRO TRIG_ERR */

#define	RockM_read_halt(this_board)					\
			(TRIG_ERR=RockM_read_trig_err(this_board),	\
			 HALT 	)

#define	RockM_read_busy(this_board)					\
			(TRIG_ERR=RockM_read_trig_err(this_board),	\
			 BUSY 	)

#define	RockM_read_syncfail(this_board)					\
			(TRIG_ERR=RockM_read_trig_err(this_board),	\
			 SYNCFAIL 	)

#define	RockM_read_parity_error(this_board)					\
			(TRIG_ERR=RockM_read_trig_err(this_board),	\
			 PARITY_ERROR	)

#define	RockM_read_test(this_board)					\
			(TRIG_ERR=RockM_read_trig_err(this_board),	\
			 TEST 	)

#define RockM_write_test(this_board,two_bits_value)	(		\
			TRIG_ERR=RockM_read_trig_err(this_board),	\
			TEST=two_bits_value,				\
			RockM_write_trig_err(this_board,TRIG_ERR),	\
			two_bits_value-RockM_read_test(this_board) )




/************************************************************************/
/*									*/
/*			 INFO PAGE					*/
/*	ogni funzione che usera' queste macro dovra' aver effettuato	*/
/*     la dichiarazione RockM_reg_declaration ed aver incluso .. 	*/
/*									*/
/*  Le macro read restituiscono il valore letto				*/
/*Le macro write restituiscono un valore diverso da zero in caso di errore*/ 
/************************************************************************/



/* RESISTRO TQUE */


#define	RockM_read_tfff(this_board)					\
			(TQUE=RockM_read_tque(this_board),		\
			 TFFF	)

#define	RockM_read_link(this_board)					\
			(TQUE=RockM_read_tque(this_board),		\
			 LINK	)

#define	RockM_read_qtrg(this_board)					\
			(TQUE=RockM_read_tque(this_board),		\
			 QTRG	)

/*  REGISTRO TNOW */

#define	RockM_read_ptrg(this_board)					\
			(TNOW=RockM_read_tnow(this_board),		\
			 PTRG	)

/* REGISTRO CHAINADD */

#define	RockM_read_overrun(this_board)				\
			(CHAINADD=RockM_read_chainadd(this_board),	\
			 OVERRUN	)

#define	RockM_read_cnthigh(this_board)				\
			(CHAINADD=RockM_read_chainadd(this_board),	\
			 CNTHIGH	)

#define	RockM_read_chain_add(this_board)				\
			(CHAINADD=RockM_read_chainadd(this_board),	\
			 CHAIN_ADD	)


         /* if you want write in this field then you 
            must provide that DIAG is ON              */

#define RockM_write_chain_add(this_board,char_value)		(	\
			RockM_write_chainadd(this_board,char_value),	\
			char_value-RockM_read_chain_add(this_board) )


/*   REGISTRO   GOLDEN  */

#define	RockM_read_goldenref(this_board)				\
			(GOLDEN=RockM_read_golden(this_board),	\
			 GOLDENREF	)


         /* if you want write in this field then you 
            must provide that DIAG is ON              */

#define RockM_write_goldenref(this_board,twelve_bits_value)	( \
 			RockM_write_golden(this_board,twelve_bits_value),\
			twelve_bits_value-RockM_read_goldenref(this_board) )


/*  REGISTRO WORDCNT */

#define	RockM_read_cntlow(this_board)				\
			(WORDCNT=RockM_read_wordcnt(this_board),\
			 CNTLOW	)


/*  REGISTRO INFO HUB  */

#define	RockM_read_slot(this_board)				\
			(INFOHUB=RockM_read_infohub(this_board),\
			 SLOT	)

#define	RockM_read_auxas(this_board)				\
			(INFOHUB=RockM_read_infohub(this_board),\
			 AUXAS	)

#define	RockM_read_auxtrgv(this_board)				\
			(INFOHUB=RockM_read_infohub(this_board),\
			 AUXTRGV	)

#define	RockM_read_auxdk(this_board)				\
			(INFOHUB=RockM_read_infohub(this_board),\
			 AUXDK	)

#define	RockM_read_auxds(this_board)				\
			(INFOHUB=RockM_read_infohub(this_board),\
			 AUXDS	)


/*  REGISTRO INFO MICRO  */

#define	RockM_read_cbustemp(this_board)				\
			(INFOMICRO=RockM_read_infomicro(this_board),\
			 CBUSTEMP	)

#define	RockM_read_vmetemp(this_board)				\
			(INFOMICRO=RockM_read_infomicro(this_board),\
			 VMETEMP	)

#define	RockM_read_wrcyc(this_board)				\
			(INFOMICRO=RockM_read_infomicro(this_board),\
			 WRCYC	)

#define	RockM_read_rdcyc(this_board)				\
			(INFOMICRO=RockM_read_infomicro(this_board),\
			 RDCYC	)

#define	RockM_read_urw(this_board)				\
			(INFOMICRO=RockM_read_infomicro(this_board),\
			 URW	)

#define	RockM_read_udav(this_board)				\
			(INFOMICRO=RockM_read_infomicro(this_board),\
			 UDAV	)

#define	RockM_read_udk(this_board)				\
			(INFOMICRO=RockM_read_infomicro(this_board),\
			 UDK	)

#define	RockM_read_uds(this_board)				\
			(INFOMICRO=RockM_read_infomicro(this_board),\
			 UDS	)

/*  REGISTRO MICROSTAT  */

#define	RockM_read_status(this_board)				\
			(MICROSTAT=RockM_read_microstat(this_board),\
			 STATUS	)

#define	RockM_read_cycle(this_board)				\
			(MICROSTAT=RockM_read_microstat(this_board),\
			 CYCLE	)

#define	RockM_read_invacc(this_board)				\
			(MICROSTAT=RockM_read_microstat(this_board),\
			 INVACC	)

#define	RockM_read_uwrdy(this_board)				\
			(MICROSTAT=RockM_read_microstat(this_board),\
			 UWRDY	)

#define	RockM_read_done(this_board)				\
			(MICROSTAT=RockM_read_microstat(this_board),\
			 DONE	)

/* REGISTRO MICROWORD */

#define	RockM_read_microw(this_board)				\
			(MICROWORD=RockM_read_microword(this_board),\
			 MICROW	)

#define	RockM_write_microw(this_board,char_data)				\
			(MICROW=char_data,		                \
			 RockM_write_microword(this_board,MICROWORD),   \
			 char_data-RockM_read_microw(this_board)    )


/*
#endif*/