/************************************************/ /* */ /* File : rock.h */ /* Description : ROCK library */ /* */ /* Author: Sfiligoi Igor */ /* */ /* Created : 27.01.1997 */ /* Last modified: 02.04.1997 */ /* */ /************************************************/ #ifndef ROCK_H #define ROCK_H #include "rockhard.h" #include "rockbits.h" /************************************************/ /* */ /* The result should be ROCK_ERROR_OK, */ /* else there have been an error */ /* (see ROCK_ERROR_.. constants) */ /* if not stated otherwise */ /* */ /************************************************/ #define ROCK_ERROR_OK 0 /* MUST be 0 */ #define ROCK_ERROR_TEST ROCKH_ERROR_TEST #define ROCK_ERROR_UNKNOWN ROCKH_ERROR_UNKNOWN /*********************************************************************/ /* bit values */ /*********************************************************************/ #define ROCK_BIT_ON ROCKB_BIT_ON #define ROCK_BIT_OFF ROCKB_BIT_OFF /*********************************************************************/ /************** types *******************/ /*********************************************************************/ typedef ROCKB_RESET_bits ROCK_RESET_bits; typedef ROCKB_FIFO_bits ROCK_FIFO_bits; typedef ROCKB_WATCHDOG_bits ROCK_WATCHDOG_bits; typedef ROCKB_CSR0_bits ROCK_CSR0_bits; typedef ROCKB_CSR1_bits ROCK_CSR1_bits; typedef ROCKB_CSR2_bits ROCK_CSR2_bits; typedef ROCKB_ELAPSED_bits ROCK_ELAPSED_bits; typedef ROCKB_TRIGGER_bits ROCK_TRIGGER_bits; typedef ROCKB_TQUE_bits ROCK_TQUE_bits; typedef ROCKB_TNOW_bits ROCK_TNOW_bits; typedef ROCKB_ROCKINFO_bits ROCK_ROCKINFO_bits; typedef ROCKB_GOLDEN_bits ROCK_GOLDEN_bits; typedef ROCKB_EDFIFO_bits ROCK_EFIFO_bits; typedef ROCKB_EDFIFO_bits ROCK_DFIFO_bits; typedef ROCKB_EDFIFO_bits ROCK_EDFIFO_bits; typedef ROCKB_PAGE_INTERNAL_bits ROCK_PAGE_INTERNAL_bits; typedef ROCKB_PAGE_INFO_bits ROCK_PAGE_INFO_bits; /*********************************************************************/ /* ROCK id type */ /*********************************************************************/ typedef ROCKH_id ROCK_id; #include "rock_private.h" /*********************************************************************/ /* */ /* Query routines */ /* */ /*********************************************************************/ /* returns 0 if ROCK not present, 1 else */ #define rock_ispresent(/*int*/ chain, /* IN, VIC chain */ \ /*int*/ crate) /* IN, position in the VIC chain */ \ rockh_ispresent(chain,crate) /*********************************************************************/ /* */ /* Initialisation routines */ /* */ /*********************************************************************/ #define rock_open(/*int */ chain, /* IN, VIC chain */ \ /*int */ crate, /* IN, position in the VIC chain */ \ /*ROCK_id * */ rock_id) /* OUT */ \ rockh_open(chain,crate,rock_id) #define rock_close(/*ROCKH_id*/ rock_id) /* IN */ \ rockh_close(rock_id) /*********************************************************************/ /* */ /* Register oriented routines */ /* */ /*********************************************************************/ /*********************************************************************/ /* read routines */ /* does not return a valid code */ /*********************************************************************/ #define rock_read_reset(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_RESET_bits*/ reset) /* OUT */ \ rock_read_i_reset(rockid,&(reset)) #define rock_read_fifo(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_FIFO_bits*/ fifo) /* OUT */ \ rock_read_i_fifo(rockid,&(fifo)) #define rock_read_watchdog(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_WATCHDOG_bits*/ watchdog) /* OUT */ \ watchdog=rockh_read_watchdog(rockid) #define rock_read_csr0(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_CSR0_bits*/ csr0) /* OUT */ \ rock_read_i_csr0(rockid,&(csr0)) #define rock_read_csr1(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_CSR1_bits*/ csr1) /* OUT */ \ rock_read_i_csr1(rockid,&(csr1)) #define rock_read_csr2(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_CSR2_bits*/ csr2) /* OUT */ \ rock_read_i_csr2(rockid,&(csr2)) #define rock_read_elapsed(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_ELAPSED_bits*/ elapsed) /* OUT */ \ elapsed=rockh_read_elapsed(rockid) #define rock_read_trigger(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_TRIGGER_bits*/ trigger) /* OUT */ \ rock_read_i_trigger(rockid,&(trigger)) #define rock_read_tque(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_TQUE_bits*/ tque) /* OUT */ \ rock_read_i_tque(rockid,&(tque)) #define rock_read_tnow(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_TNOW_bits*/ tnow) /* OUT */ \ rock_read_i_tnow(rockid,&(tnow)) #define rock_read_rockinfo(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_ROCKINFO_bits*/ rockinfo) /* OUT */ \ rock_read_i_rockinfo(rockid,&(rockinfo)) #define rock_read_golden(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_GOLDEN_bits*/ golden) /* OUT */ \ rock_read_i_golden(rockid,&(golden)) #define rock_read_efifo(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_EFIFO_bits*/ efifo) /* OUT */ \ rock_read_i_efifo(rockid,&(efifo)) #define rock_read_dfifo(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_DFIFO_bits*/ dfifo) /* OUT */ \ rock_read_i_dfifo(rockid,&(dfifo)) /*********************************************************************/ /* write routines */ /*********************************************************************/ #define rock_write_reset(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_RESET_bits*/ reset) /* IN */ \ rockh_write_reset(rockid,rockb_reset2nr(reset),1) #define rock_write_watchdog(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_WATCHDOG_bits*/ watchdog) /* IN */ \ rockh_write_watchdog(rockid,watchdog,1) #define rock_write_csr0(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_CSR0_bits*/ csr0) /* IN */ \ rockh_write_csr0(rockid,rockb_csr02nr(csr0),1) #define rock_write_csr2(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_CSR2_bits*/ csr2) /* IN */ \ rockh_write_csr2(rockid,rockb_csr22nr(csr2),1) #define rock_write_trigger(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_TRIGGER_bits*/ trigger) /* IN */ \ rockh_write_trigger(rockid,rockb_trigger2nr(trigger),1) #define rock_write_golden(/*ROCK_id */ rockid, /* IN */ \ /*ROCK_GOLDEN_bits*/ golden) /* IN */ \ rockh_write_golden(rockid,rockb_golden2nr(golden),1) /*********************************************************************/ /* */ /* Bit oriented routines */ /* */ /*********************************************************************/ /*********************************************************************/ /************** get bit routines *******************/ /************** return the value of the field *******************/ /*********************************************************************/ /* reset */ #define rock_get_cintf(/*ROCK_id */ rockid) /* IN */ \ rockb_get_cintf(rockh_read_reset(rockid)) #define rock_get_xintf(/*ROCK_id */ rockid) /* IN */ \ rockb_get_xintf(rockh_read_reset(rockid)) #define rock_get_tfifo(/*ROCK_id */ rockid) /* IN */ \ rockb_get_tfifo(rockh_read_reset(rockid)) #define rock_get_efifo(/*ROCK_id */ rockid) /* IN */ \ rockb_get_efifo(rockh_read_reset(rockid)) #define rock_get_dfifo(/*ROCK_id */ rockid) /* IN */ \ rockb_get_cintf(rockh_read_reset(rockid)) #define rock_get_auxrst(/*ROCK_id */ rockid) /* IN */ \ rockb_get_auxrst(rockh_read_reset(rockid)) #define rock_get_intrst(/*ROCK_id */ rockid) /* IN */ \ rockb_get_intrst(rockh_read_reset(rockid)) #define rock_get_fltrst(/*ROCK_id */ rockid) /* IN */ \ rockb_get_fltrst(rockh_read_reset(rockid)) /* FIFO */ #define rock_get_dff(/*ROCK_id */ rockid) /* IN */ \ rockb_get_dff(rockh_read_fifo(rockid)) #define rock_get_dhf(/*ROCK_id */ rockid) /* IN */ \ rockb_get_dhf(rockh_read_fifo(rockid)) #define rock_get_def(/*ROCK_id */ rockid) /* IN */ \ rockb_get_def(rockh_read_fifo(rockid)) #define rock_get_eff(/*ROCK_id */ rockid) /* IN */ \ rockb_get_eff(rockh_read_fifo(rockid)) #define rock_get_ehf(/*ROCK_id */ rockid) /* IN */ \ rockb_get_ehf(rockh_read_fifo(rockid)) #define rock_get_eef(/*ROCK_id */ rockid) /* IN */ \ rockb_get_eef(rockh_read_fifo(rockid)) #define rock_get_tef(/*ROCK_id */ rockid) /* IN */ \ rockb_get_tef(rockh_read_fifo(rockid)) #define rock_get_tff(/*ROCK_id */ rockid) /* IN */ \ rockb_get_tff(rockh_read_fifo(rockid)) /* Watchdog */ #define rock_get_watchdog(/*ROCK_id */ rockid) /* IN */ \ rockh_read_watchdog(rockid) /* CSR0 */ #define rock_get_efmode(/*ROCK_id */ rockid) /* IN */ \ rockb_get_efmode(rockh_read_csr0(rockid)) #define rock_get_boe(/*ROCK_id */ rockid) /* IN */ \ rockb_get_boe(rockh_read_csr0(rockid)) #define rock_get_tkndis(/*ROCK_id */ rockid) /* IN */ \ rockb_get_tkndis(rockh_read_csr0(rockid)) #define rock_get_inttrg(/*ROCK_id */ rockid) /* IN */ \ rockb_get_inttrg(rockh_read_csr0(rockid)) #define rock_get_diag(/*ROCK_id */ rockid) /* IN */ \ rockb_get_diag(rockh_read_csr0(rockid)) /* CSR1 */ #define rock_get_tknin(/*ROCK_id */ rockid) /* IN */ \ rockb_get_tknin(rockh_read_csr1(rockid)) #define rock_get_tknout(/*ROCK_id */ rockid) /* IN */ \ rockb_get_tknout(rockh_read_csr1(rockid)) #define rock_get_ceob(/*ROCK_id */ rockid) /* IN */ \ rockb_get_ceob(rockh_read_csr1(rockid)) #define rock_get_cerr(/*ROCK_id */ rockid) /* IN */ \ rockb_get_cerr(rockh_read_csr1(rockid)) #define rock_get_crst(/*ROCK_id */ rockid) /* IN */ \ rockb_get_crst(rockh_read_csr1(rockid)) #define rock_get_crngt(/*ROCK_id */ rockid) /* IN */ \ rockb_get_crngt(rockh_read_csr1(rockid)) #define rock_get_cbusy(/*ROCK_id */ rockid) /* IN */ \ rockb_get_cbusy(rockh_read_csr1(rockid)) #define rock_get_ctrgv(/*ROCK_id */ rockid) /* IN */ \ rockb_get_ctrgv(rockh_read_csr1(rockid)) /* CSR2 */ #define rock_get_efwren(/*ROCK_id */ rockid) /* IN */ \ rockb_get_efwren(rockh_read_csr2(rockid)) #define rock_get_auxon(/*ROCK_id */ rockid) /* IN */ \ rockb_get_auxon(rockh_read_csr2(rockid)) #define rock_get_timeout(/*ROCK_id */ rockid) /* IN */ \ rockb_get_timeout(rockh_read_csr2(rockid)) #define rock_get_elapsed(/*ROCK_id */ rockid) /* IN */ \ rockb_get_elapsed(rockh_read_csr2(rockid)) #define rock_get_wscale(/*ROCK_id */ rockid) /* IN */ \ rockb_get_wscale(rockh_read_csr2(rockid)) /* Elapsed */ #define rock_get_elapsedtime(/*ROCK_id */ rockid) /* IN */ \ rockh_read_elapsed(rockid) /* Trigger */ #define rock_get_halt(/*ROCK_id */ rockid) /* IN */ \ rockb_get_halt(rockh_read_trigger(rockid)) #define rock_get_busy(/*ROCK_id */ rockid) /* IN */ \ rockb_get_busy(rockh_read_trigger(rockid)) #define rock_get_synchf(/*ROCK_id */ rockid) /* IN */ \ rockb_get_synchf(rockh_read_trigger(rockid)) #define rock_get_xbusy(/*ROCK_id */ rockid) /* IN */ \ rockb_get_xbusy(rockh_read_trigger(rockid)) #define rock_get_xberr(/*ROCK_id */ rockid) /* IN */ \ rockb_get_xberr(rockh_read_trigger(rockid)) /* TQUE */ #define rock_get_qtrg(/*ROCK_id */ rockid) /* IN */ \ rockb_get_qtrg(rockh_read_tque(rockid)) /* TNOW */ #define rock_get_cstate(/*ROCK_id */ rockid) /* IN */ \ rockb_get_cstate(rockh_read_tnow(rockid)) #define rock_get_ptrg(/*ROCK_id */ rockid) /* IN */ \ rockb_get_ptrg(rockh_read_tnow(rockid)) /* Rockinfo */ #define rock_get_sof(/*ROCK_id */ rockid) /* IN */ \ rockb_get_sof(rockh_read_rockinfo(rockid)) #define rock_get_eof(/*ROCK_id */ rockid) /* IN */ \ rockb_get_eof(rockh_read_rockinfo(rockid)) #define rock_get_syncrespf(/*ROCK_id */ rockid) /* IN */ \ rockb_get_syncrespf(rockh_read_rockinfo(rockid)) #define rock_get_rocksfail(/*ROCK_id */ rockid) /* IN */ \ rockb_get_rocksfail(rockh_read_rockinfo(rockid)) #define rock_get_slvsfail(/*ROCK_id */ rockid) /* IN */ \ rockb_get_slvsfail(rockh_read_rockinfo(rockid)) #define rock_get_lwadd(/*ROCK_id */ rockid) /* IN */ \ rockb_get_lwadd(rockh_read_rockinfo(rockid)) #define rock_get_xadd(/*ROCK_id */ rockid) /* IN */ \ rockb_get_xadd(rockh_read_rockinfo(rockid)) /* Golden */ #define rock_get_last(/*ROCK_id */ rockid) /* IN */ \ rockb_get_last(rockh_read_golden(rockid)) #define rock_get_cradd(/*ROCK_id */ rockid) /* IN */ \ rockb_get_cradd(rockh_read_golden(rockid)) #define rock_get_goldenref(/*ROCK_id */ rockid) /* IN */ \ rockb_get_goldenref(rockh_read_golden(rockid)) /*********************************************************************/ /************** set bit routines *******************/ /*********************************************************************/ /* Reset */ #define rock_set_cintf(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_reset(rock_id,rockb_set_cintf(rockh_read_reset(rock_id),value),1) #define rock_set_xintf(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_reset(rock_id,rockb_set_xintf(rockh_read_reset(rock_id),value),1) #define rock_set_tfifo(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_reset(rock_id,rockb_set_tfifo(rockh_read_reset(rock_id),value),1) #define rock_set_efifo(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_reset(rock_id,rockb_set_efifo(rockh_read_reset(rock_id),value),1) #define rock_set_dfifo(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_reset(rock_id,rockb_set_dfifo(rockh_read_reset(rock_id),value),1) #define rock_set_auxrst(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_reset(rock_id,rockb_set_auxrst(rockh_read_reset(rock_id),value),1) #define rock_set_intrst(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_reset(rock_id,rockb_set_intrst(rockh_read_reset(rock_id),value),1) #define rock_set_fltrst(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_reset(rock_id,rockb_set_fltrst(rockh_read_reset(rock_id),value),1) /* Watchdog */ #define rock_set_watchdog(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_watchdog(rock_id,value,1) /* CSR0 */ #define rock_set_efmode(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_csr0(rock_id,rockb_set_efmode(rockh_read_csr0(rock_id),value),1) #define rock_set_boe(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_csr0(rock_id,rockb_set_boe(rockh_read_csr0(rock_id),value),1) #define rock_set_tkndis(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_csr0(rock_id,rockb_set_tkndis(rockh_read_csr0(rock_id),value),1) #define rock_set_inttrg(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_csr0(rock_id,rockb_set_inttrg(rockh_read_csr0(rock_id),value),1) #define rock_set_diag(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_csr0(rock_id,rockb_set_diag(rockh_read_csr0(rock_id),value),1) /* CSR2 */ #define rock_set_elapsed(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_csr2(rock_id,rockb_set_elapsed(rockh_read_csr2(rock_id),value),1) #define rock_set_wscale(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_csr2(rock_id,rockb_set_wscale(rockh_read_csr2(rock_id),value),1) /* Trigger */ #define rock_set_test(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_trigger(rock_id,rockb_set_test(rockh_read_trigger(rock_id),value),1) /* Golden */ #define rock_set_last(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_golden(rock_id,rockb_set_last(rockh_read_golden(rock_id),value),1) #define rock_set_cradd(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_golden(rock_id,rockb_set_cradd(rockh_read_golden(rock_id),value),1) #define rock_set_goldenref(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned char */ value) /* IN */ \ rockh_write_golden(rock_id,rockb_set_goldenref(rockh_read_golden(rock_id),value),1) /*********************************************************************/ /* */ /* Page oriented routines */ /* */ /*********************************************************************/ #define rock_readpage_internal(/*ROCK_id */ rock_id, /* IN */ \ /*ROCK_PAGE_INTERNAL_bits */ internal) /* OUT */ \ rock_readpage_i_internal(rock_id,&(internal)) #define rock_readpage_info(/*ROCK_id */ rock_id, /* IN */ \ /*ROCK_PAGE_INFO_bits */ info) /* OUT */ \ rock_readpage_i_info(rock_id,&(info)) /*********************************************************************/ /* readfifo routines */ /*********************************************************************/ #define rock_readfifo_efifo(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned int */ count, /* IN nr els to read, OUT nr els really read */ \ /*unsigned int * */ buffer) /* IN/OUT */ \ rockh_readfifo_fifo(rock_id,ROCKH_EFRD_ofs,count,0,buffer,&(count)) #define rock_readfifo_dfifo(/*ROCK_id */ rock_id, /* IN */ \ /*unsigned int */ count, /* IN nr els to read, OUT nr els really read */ \ /*unsigned int * */ buffer) /* IN/OUT */ \ rockh_readfifo_fifo(rock_id,ROCKH_DFRD_ofs,count,0,buffer,&(count)) #endif /* ROCK_H */