/************************************************/
/*                                              */
/* File        : ts.h                           */
/* Description : Trigger Supervisor library     */
/*                                              */
/* Author: Enrico Graziani                      */
/*                                              */
/* Created      : 29.05.1997                    */
/*                                              */
/************************************************/

#ifndef TS_H
#define TS_H

#include "tshard.h"
#include "tsbits.h"

/************************************************/
/*                                              */
/*   The result should be TS_ERROR_OK,          */
/*   else there have been an error              */
/*   (see TS_ERROR_.. constants)                */
/*   if not stated otherwise                    */
/*                                              */
/************************************************/

#define TS_ERROR_OK            0     /* MUST be 0 */
#define TS_ERROR_TEST          TSH_ERROR_TEST
#define TS_ERROR_UNKNOWN       TSH_ERROR_UNKNOWN

#define TS_START_RUN           TSH_START_RUN

/*********************************************************************/
/*                       bit values                                  */
/*********************************************************************/

#define TS_BIT_ON       TSB_BIT_ON
#define TS_BIT_OFF      TSB_BIT_OFF


/*********************************************************************/
/**************                types               *******************/
/*********************************************************************/

typedef TSB_INTLEVEL_bits        TS_INTLEVEL_bits;
typedef TSB_SREG_bits            TS_SREG_bits;
typedef TSB_INTMASK_bits         TS_INTMASK_bits;
typedef TSB_LATMASK_bits         TS_LATMASK_bits;
typedef TSB_ERRMASK_bits         TS_ERRMASK_bits;
#ifndef BS
typedef TSB_SYNCMASK_bits        TS_SYNCMASK_bits;
#endif
typedef TSB_TMODE_bits           TS_TMODE_bits;

/*********************************************************************/
/*                      TS id type                                   */
/*********************************************************************/

typedef TSH_id        TS_id;


/*********************************************************************/
/*                                                                   */
/*                          Query routines                           */
/*                                                                   */
/*********************************************************************/

/* returns 0 if TS not present, 1 else */
#define ts_ispresent(/*int*/ type)                   /* IN, TS type A or B */ \
        tsh_ispresent(type)

/*********************************************************************/
/*                                                                   */
/*                   Initialisation routines                         */
/*                                                                   */
/*********************************************************************/


#define ts_open(/*int          */ type,          /* IN, TS type, A or B */  \
	          /*TS_id *    */ ts_id)        /* OUT */  \
	tsh_open(type,ts_id)

#define ts_close(/*int      */ type,           /* IN, TS type, A or B */ \
                 /*TSH_id*/ ts_id)          /* IN  */  \
        tsh_close(type,ts_id)


/*********************************************************************/
/*                                                                   */
/*                   Register oriented routines                      */
/*                                                                   */
/*********************************************************************/

/*********************************************************************/
/*                       read routines                               */
/*               INTERNAL                                            */
/*********************************************************************/

int ts_read_i_intlevel(TS_id ts_id,                     /* IN  */
                             TS_INTLEVEL_bits *intlevel);  /* OUT */

int ts_read_i_status(TS_id ts_id,                     /* IN  */
                             TS_SREG_bits *status);  /* OUT */

int ts_read_i_intmask(TS_id ts_id,                     /* IN  */
                             TS_INTMASK_bits *intmask);  /* OUT */

int ts_read_i_latchmask(TS_id ts_id,                     /* IN  */
                             TS_LATMASK_bits *latmask);  /* OUT */

int ts_read_i_errormask(TS_id ts_id,                     /* IN  */
                             TS_ERRMASK_bits *errmask);  /* OUT */

#ifndef BS

int ts_read_i_syncmask(TS_id ts_id,                     /* IN  */
                             TS_SYNCMASK_bits *syncmask);  /* OUT */


#endif

int ts_read_i_tmode(TS_id ts_id,                     /* IN  */
                             TS_TMODE_bits *tmode);  /* OUT */

int ts_read_i_deadtime(TS_id ts_id);                 /* IN */

int ts_read_i_activetime(TS_id ts_id);                 /* IN */

int ts_read_i_tmbusy(TS_id ts_id);                 /* IN */


/*********************************************************************/
/*                       read routines                               */
/*               does not return a valid code                        */
/*********************************************************************/

#define ts_read_intid(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_intid(tsid)

#define ts_read_intlevel(/*TS_id        */ tsid,   /* IN  */ \
			/*TS_INTLEVEL_bits*/ intlevel)    /* OUT */ \
        ts_read_i_intlevel(tsid,&(intlevel))


#define ts_read_status(/*TS_id        */ tsid,   /* IN  */ \
			/*TS_SREG_bits*/ status)    /* OUT */ \
        ts_read_i_status(tsid,&(status))

#define ts_read_intmask(/*TS_id        */ tsid,   /* IN  */ \
			/*TS_INTMASK_bits*/ intmask)    /* OUT */ \
        ts_read_i_intmask(tsid,&(intmask))

#define ts_read_latchmask(/*TS_id        */ tsid,   /* IN  */ \
			/*TS_LATMASK_bits*/ latmask)    /* OUT */ \
        ts_read_i_latchmask(tsid,&(latmask))

#define ts_read_errormask(/*TS_id        */ tsid,   /* IN  */ \
			/*TS_ERRMASK_bits*/ errmask)    /* OUT */ \
        ts_read_i_errormask(tsid,&(errmask))

#ifndef BS 

#define ts_read_wenable(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_wenable(tsid)

#define ts_read_delayt2(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_delayt2(tsid)

#endif

#define ts_read_delayt1(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_delayt1(tsid)

#define ts_read_goldnumb(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_goldnumb(tsid)

#ifdef BS

#define ts_read_syncmask(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_syncmask(tsid)

#else

#define ts_read_syncmask(/*TS_id        */ tsid,   /* IN  */ \
			/*TS_SYNCMASK_bits*/ syncmask)    /* OUT */ \
        ts_read_i_syncmask(tsid,&(syncmask))

#endif

#define ts_read_tmode(/*TS_id        */ tsid,   /* IN  */ \
			/*TS_TMODE_bits*/ tmode)    /* OUT */ \
        ts_read_i_tmode(tsid,&(tmode))

#define ts_read_run(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_run(tsid)

#define ts_read_tmoutbusy(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_tmoutbusy(tsid)

#define ts_read_tmoutsyncfstart(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_tmoutsyncfstart(tsid)

#define ts_read_tmoutsyncfend(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_tmoutsyncfend(tsid)

#define ts_read_t2busy(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_t2busy(tsid)

#define ts_read_tmbusy(/*TS_id        */ tsid)   /* IN  */ \
           ts_read_i_tmbusy(tsid)

#define ts_read_deadtime(/*TS_id        */ tsid)   /* IN  */ \
           ts_read_i_deadtime(tsid)

#define ts_read_activetime(/*TS_id        */ tsid)   /* IN  */ \
           ts_read_i_activetime(tsid)


#define ts_read_t1rate(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_t1rate(tsid)

#define ts_read_t2rate(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_t2rate(tsid)

#define ts_read_trgcounter(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_trgcounter(tsid)

#define ts_read_t1count(/*TS_id        */ tsid)   /* IN  */ \
        tsh_read_t1count(tsid)





/*********************************************************************/
/*                       write routines                              */
/*********************************************************************/

#define ts_write_intid(/*TS_id        */ tsid,   /* IN */ \
			 /*intid */ intid)    /* IN */ \
        tsh_write_intid(tsid,intid,0x0)

#define ts_write_intlevel(/*TS_id        */ tsid,   /* IN */ \
			 /*TS_INTLEVEL_bits*/ intlevel)    /* IN */ \
        tsh_write_intlevel(tsid,tsb_intleveltonr(intlevel),0x0)


#define ts_write_status(/*TS_id        */ tsid,   /* IN */ \
			 /*TS_SREG_bits*/ status)    /* IN */ \
        tsh_write_status(tsid,tsb_sregtonr(status),0x0)

#define ts_reset_status(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_status(tsid,0xff,0x0)

#define ts_write_intmask(/*TS_id        */ tsid,   /* IN */ \
			 /*TS_INTMASK_bits*/ intmask)    /* IN */ \
        tsh_write_intmask(tsid,tsb_intmasktonr(intmask),0x0)

#define ts_reset_intmask(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_intmask(tsid,0x0,0x0)

#define ts_write_latchmask(/*TS_id        */ tsid,   /* IN */ \
			 /*TS_LATMASK_bits*/ latmask)    /* IN */ \
        tsh_write_latchmask(tsid,tsb_latmasktonr(latmask),0x0)

#define ts_reset_latchmask(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_latchmask(tsid,0x0,0x0)

#define ts_write_errormask(/*TS_id        */ tsid,   /* IN */ \
			 /*TS_ERRMASK_bits*/ errmask)    /* IN */ \
        tsh_write_errormask(tsid,tsb_errmasktonr(errmask),0x0)

#define ts_reset_errormask(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_errormask(tsid,0x0,0x0)

#ifndef BS

#define ts_write_wenable(/*TS_id        */ tsid,   /* IN */ \
			 /*write enable */ wenable)    /* IN */ \
        tsh_write_wenable(tsid,wenable,0x0)

#define ts_write_enable(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_wenable(tsid,0x1,0x0)

#define ts_write_disable(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_wenable(tsid,0x0,0x0)

#define ts_write_delayt2(/*TS_id        */ tsid,   /* IN */ \
			 /*delay T2 */ delayt2)    /* IN */ \
        tsh_write_delayt2(tsid,delayt2,0x0)

#endif

#define ts_write_delayt1(/*TS_id        */ tsid,   /* IN */ \
			 /*delay T1 */ delayt1)    /* IN */ \
        tsh_write_delayt1(tsid,delayt1,0x0)

#define ts_write_goldnumb(/*TS_id        */ tsid,   /* IN */ \
			 /*gold number */ goldnumb)    /* IN */ \
        tsh_write_goldnumb(tsid,goldnumb,0x0)

#ifdef BS

#define ts_write_syncmask(/*TS_id        */ tsid,   /* IN */ \
			 /*syncmask */ syncmask)    /* IN */ \
        tsh_write_syncmask(tsid,syncmask,0x0)

#else

#define ts_write_syncmask(/*TS_id        */ tsid,   /* IN */ \
			 /*TS_SYNCMASK_bits*/ syncmask)    /* IN */ \
        tsh_write_syncmask(tsid,tsb_syncmasktonr(syncmask),0x0)

#endif

#define ts_write_tmode(/*TS_id        */ tsid,   /* IN */ \
			 /*TS_TMODE_bits*/ tmode)    /* IN */ \
        tsh_write_tmode(tsid,tsb_tmodetonr(tmode),0x0)

#define ts_write_run(/*TS_id        */ tsid,   /* IN */ \
			 /*run */ run)    /* IN */ \
        tsh_write_run(tsid,run,0x0)

#define ts_start_run(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_run(tsid,TS_START_RUN,0x0)

#define ts_stop_run(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_run(tsid,TSH_STOP_RUN,0x0)


#define ts_write_tmoutbusy(/*TS_id        */ tsid,   /* IN */ \
			 /*tmoutbusy */ tmoutbusy)    /* IN */ \
        tsh_write_tmoutbusy(tsid,tmoutbusy,0x0)


#define ts_write_tmoutsyncfstart(/*TS_id        */ tsid,   /* IN */ \
			 /*tmoutsyncfstart */ tmoutsyncfstart)    /* IN */ \
        tsh_write_tmoutsyncfstart(tsid,tmoutsyncfstart,0x0)

#define ts_write_tmoutsyncfend(/*TS_id        */ tsid,   /* IN */ \
			 /*tmoutsyncfend */ tmoutsyncfend)    /* IN */ \
        tsh_write_tmoutsyncfend(tsid,tmoutsyncfend,0x0)

#define ts_write_t2busy(/*TS_id        */ tsid,   /* IN */ \
			 /*t2busy */ t2busy)    /* IN */ \
        tsh_write_t2busy(tsid,t2busy,0x0)

#define ts_reset_t2busy(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_t2busy(tsid,0x0,0x0)


#define ts_write_tmbusy(/*TS_id        */ tsid,   /* IN */ \
			 /*tmbusy */ tmbusy)    /* IN */ \
        tsh_write_tmbusy(tsid,tmbusy,0x0)

#define ts_reset_tmbusy(/*TS_id        */ tsid)   /* IN */ \
            tsh_write_activetime(tsid,0x0,0x0)

#define ts_write_deadtime(/*TS_id        */ tsid,   /* IN */ \
			 /*deadtime */ deadtime)    /* IN */ \
        tsh_write_deadtime(tsid,deadtime,0x0)

#define ts_reset_deadtime(/*TS_id        */ tsid)   /* IN */ \
            tsh_write_activetime(tsid,0x0,0x0)


#define ts_write_activetime(/*TS_id        */ tsid,   /* IN */ \
			 /*activetime */ activetime)    /* IN */ \
        tsh_write_activetime(tsid,activetime,0x0)

#define ts_reset_activetime(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_activetime(tsid,0x0,0x0)

#ifndef BS
#define ts_reset_time(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_resettime(tsid,0x0,0x0)
#endif

#define ts_reset_timecounters(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_activetime(tsid,0x0,0x0)

#define ts_write_trgcounter(/*TS_id        */ tsid,   /* IN */ \
			 /*trgcounter */ trgcounter)    /* IN */ \
        tsh_write_trgcounter(tsid,trgcounter,0x0)

#define ts_reset_trgcounter(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_trgcounter(tsid,0x0,0x0)

#define ts_write_t1count(/*TS_id        */ tsid,   /* IN */ \
			 /*t1 count */ t1count)    /* IN */ \
        tsh_write_t1count(tsid,t1count,0x0)

#define ts_reset_t1count(/*TS_id        */ tsid)   /* IN */ \
        tsh_write_t1count(tsid,0x0,0x0)



/*********************************************************************/
/*                                                                   */
/*                     Bit oriented routines                         */
/*                                                                   */
/*********************************************************************/

/*********************************************************************/
/**************         get bit routines           *******************/
/**************   return the value of the field    *******************/
/*********************************************************************/

/* intlevel */

#define ts_get_intlevel_intlevel(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intlevel_intlevel(tsh_read_intlevel(tsid))

#define ts_get_intlevel_roak(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intlevel_roak(tsh_read_intlevel(tsid))


/* status */

#define ts_get_sreg_tmoutbusy(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_tmoutbusy(tsh_read_status(tsid))

#define ts_get_sreg_syncfailstart(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_syncfailstart(tsh_read_status(tsid))

#define ts_get_sreg_syncfailend(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_syncfailend(tsh_read_status(tsid))

#define ts_get_sreg_tberr(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_tberr(tsh_read_status(tsid))

#define ts_get_sreg_auxtberr(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_auxtberr(tsh_read_status(tsid))

#define ts_get_sreg_ovfwacttime(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_ovfwacttime(tsh_read_status(tsid))

#define ts_get_sreg_ovfwdeadtime(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_ovfwdeadtime(tsh_read_status(tsid))

#define ts_get_sreg_erra(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_erra(tsh_read_status(tsid))

#define ts_get_sreg_errb(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_errb(tsh_read_status(tsid))

#define ts_get_sreg_errt1(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_errt1(tsh_read_status(tsid))

#define ts_get_sreg_errt2(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_errt2(tsh_read_status(tsid))

#define ts_get_sreg_errsyncfand(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_errsyncfand(tsh_read_status(tsid))

#define ts_get_sreg_errsyncfor(/*TS_id */ tsid)  /* IN */  \
        tsb_get_sreg_errsyncfor(tsh_read_status(tsid))



/* interrupt mask */

#define ts_get_intmask_tmoutbusy(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_tmoutbusy(tsh_read_intmask(tsid))

#define ts_get_intmask_syncfailstart(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_syncfailstart(tsh_read_intmask(tsid))

#define ts_get_intmask_syncfailend(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_syncfailend(tsh_read_intmask(tsid))

#define ts_get_intmask_tberr(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_tberr(tsh_read_intmask(tsid))

#define ts_get_intmask_auxtberr(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_auxtberr(tsh_read_intmask(tsid))

#define ts_get_intmask_ovfwacttime(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_ovfwacttime(tsh_read_intmask(tsid))

#define ts_get_intmask_ovfwdeadtime(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_ovfwdeadtime(tsh_read_intmask(tsid))

#define ts_get_intmask_erra(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_erra(tsh_read_intmask(tsid))

#define ts_get_intmask_errb(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_errb(tsh_read_intmask(tsid))

#define ts_get_intmask_errt1(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_errt1(tsh_read_intmask(tsid))

#define ts_get_intmask_errt2(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_errt2(tsh_read_intmask(tsid))

#define ts_get_intmask_errsyncfand(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_errsyncfand(tsh_read_intmask(tsid))

#define ts_get_intmask_errsyncfor(/*TS_id */ tsid)  /* IN */  \
        tsb_get_intmask_errsyncfor(tsh_read_intmask(tsid))



/* error mask */

#define ts_get_errmask_tmoutbusy(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_tmoutbusy(tsh_read_errormask(tsid))

#define ts_get_errmask_syncfailstart(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_syncfailstart(tsh_read_errormask(tsid))

#define ts_get_errmask_syncfailend(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_syncfailend(tsh_read_errormask(tsid))

#define ts_get_errmask_tberr(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_tberr(tsh_read_errormask(tsid))

#define ts_get_errmask_auxtberr(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_auxtberr(tsh_read_errormask(tsid))

#define ts_get_errmask_ovfwacttime(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_ovfwacttime(tsh_read_errormask(tsid))

#define ts_get_errmask_ovfwdeadtime(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_ovfwdeadtime(tsh_read_errormask(tsid))

#define ts_get_errmask_erra(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_erra(tsh_read_errormask(tsid))

#define ts_get_errmask_errb(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_errb(tsh_read_errormask(tsid))

#define ts_get_errmask_errt1(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_errt1(tsh_read_errormask(tsid))

#define ts_get_errmask_errt2(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_errt2(tsh_read_errormask(tsid))

#define ts_get_errmask_errsyncfand(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_errsyncfand(tsh_read_errormask(tsid))

#define ts_get_errmask_errsyncfor(/*TS_id */ tsid)  /* IN */  \
        tsb_get_errmask_errsyncfor(tsh_read_errormask(tsid))



/* latch mask */

#define ts_get_latmask_tmoutbusy(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_tmoutbusy(tsh_read_latchmask(tsid))

#define ts_get_latmask_syncfailstart(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_syncfailstart(tsh_read_latchmask(tsid))

#define ts_get_latmask_syncfailend(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_syncfailend(tsh_read_latchmask(tsid))

#define ts_get_latmask_tberr(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_tberr(tsh_read_latchmask(tsid))

#define ts_get_latmask_auxtberr(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_auxtberr(tsh_read_latchmask(tsid))

#define ts_get_latmask_ovfwacttime(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_ovfwacttime(tsh_read_latchmask(tsid))

#define ts_get_latmask_ovfwdeadtime(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_ovfwdeadtime(tsh_read_latchmask(tsid))

#define ts_get_latmask_erra(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_erra(tsh_read_latchmask(tsid))

#define ts_get_latmask_errb(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_errb(tsh_read_latchmask(tsid))

#define ts_get_latmask_errt1(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_errt1(tsh_read_latchmask(tsid))

#define ts_get_latmask_errt2(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_errt2(tsh_read_latchmask(tsid))

#define ts_get_latmask_errsyncfand(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_errsyncfand(tsh_read_latchmask(tsid))

#define ts_get_latmask_errsyncfor(/*TS_id */ tsid)  /* IN */  \
        tsb_get_latmask_errsyncfor(tsh_read_latchmask(tsid))

#ifndef BS

/*  syncmask */

#define ts_get_syncmask_mask(/*TS_id */ tsid)  /* IN */  \
        tsb_get_syncmask_mask(tsh_read_syncmask(tsid))

#define ts_get_syncmask_ena(/*TS_id */ tsid)  /* IN */  \
        tsb_get_syncmask_ena(tsh_read_syncmask(tsid))

#endif 



/* tmode */

#define ts_get_tmode_mode(/*TS_id */ tsid)  /* IN */  \
        tsb_get_tmode_mode(tsh_read_tmode(tsid))

#define ts_get_tmode_presc(/*TS_id */ tsid)  /* IN */  \
        tsb_get_tmode_presc(tsh_read_tmode(tsid))





/*********************************************************************/
/**************         set bit routines           *******************/
/*********************************************************************/


/* intlevel */

#define ts_set_intlevel_intlevel(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intlevel(ts_id,tsb_set_intlevel_intlevel(tsh_read_intlevel(ts_id),value),0)

#define ts_set_intlevel_roak(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intlevel(ts_id,tsb_set_intlevel_roak(tsh_read_intlevel(ts_id),value),0)



/* status */

#define ts_set_sreg_tmoutbusy(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_tmoutbusy(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_syncfailstart(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_syncfailstart(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_syncfailend(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_syncfailend(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_tberr(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_tberr(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_auxtberr(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_auxtberr(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_ovfwacttime(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_ovfwacttime(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_ovfwdeadtime(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_ovfwdeadtime(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_erra(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_erra(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_errb(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_errb(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_errt1(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_errt1(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_errt2(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_errt2(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_errsyncfand(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_errsyncfand(tsh_read_status(ts_id),value),0)

#define ts_set_sreg_errsyncfor(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_status(ts_id,tsb_set_sreg_errsyncfor(tsh_read_status(ts_id),value),0)



/* interrupt mask */

#define ts_set_intmask_tmoutbusy(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_tmoutbusy(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_syncfailstart(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_syncfailstart(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_syncfailend(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_syncfailend(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_tberr(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_tberr(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_auxtberr(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_auxtberr(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_ovfwacttime(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_ovfwacttime(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_ovfwdeadtime(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_ovfwdeadtime(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_erra(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_erra(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_errb(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_errb(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_errt1(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_errt1(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_errt2(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_errt2(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_errsyncfand(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_errsyncfand(tsh_read_intmask(ts_id),value),0)

#define ts_set_intmask_errsyncfor(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_intmask(ts_id,tsb_set_intmask_errsyncfor(tsh_read_intmask(ts_id),value),0)



/* latchmask */

#define ts_set_latmask_tmoutbusy(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_tmoutbusy(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_syncfailstart(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_syncfailstart(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_syncfailend(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_syncfailend(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_tberr(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_tberr(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_auxtberr(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_auxtberr(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_ovfwacttime(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_ovfwacttime(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_ovfwdeadtime(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_ovfwdeadtime(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_erra(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_erra(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_errb(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_errb(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_errt1(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_errt1(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_errt2(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_errt2(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_errsyncfand(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_errsyncfand(tsh_read_latchmask(ts_id),value),0)

#define ts_set_latmask_errsyncfor(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_latchmask(ts_id,tsb_set_latmask_errsyncfor(tsh_read_latchmask(ts_id),value),0)



/* error mask */

#define ts_set_errmask_tmoutbusy(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_tmoutbusy(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_syncfailstart(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_syncfailstart(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_syncfailend(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_syncfailend(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_tberr(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_tberr(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_auxtberr(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_auxtberr(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_ovfwacttime(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_ovfwacttime(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_ovfwdeadtime(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_ovfwdeadtime(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_erra(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_erra(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_errb(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_errb(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_errt1(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_errt1(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_errt2(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_errt2(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_errsyncfand(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_errsyncfand(tsh_read_errormask(ts_id),value),0)

#define ts_set_errmask_errsyncfor(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_errormask(ts_id,tsb_set_errmask_errsyncfor(tsh_read_errormask(ts_id),value),0)



/* tmode */

#define ts_set_tmode_mode(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_tmode(ts_id,tsb_set_tmode_mode(tsh_read_tmode(ts_id),value),0)

#define ts_set_tmode_presc(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_tmode(ts_id,tsb_set_tmode_presc(tsh_read_tmode(ts_id),value),0)


#ifndef BS

#define ts_set_syncmask_mask(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned int */ value )    /* IN */  \
 tsh_write_syncmask(ts_id,tsb_set_syncmask_mask(tsh_read_syncmask(ts_id),value),0)

#define ts_set_syncmask_ena(/*TS_id */ ts_id,             /* IN */  \
                   	      /*unsigned char */ value )    /* IN */  \
 tsh_write_syncmask(ts_id,tsb_set_syncmask_ena(tsh_read_syncmask(ts_id),value),0)

#define ts_syncmask_enable(/*TS_id */ ts_id)             /* IN */  \
 tsh_write_syncmask(ts_id,tsb_set_syncmask_ena(tsh_read_syncmask(ts_id),0x1),0)

#define ts_syncmask_disable(/*TS_id */ ts_id)             /* IN */  \
 tsh_write_syncmask(ts_id,tsb_set_syncmask_ena(tsh_read_syncmask(ts_id),0x0),0)

#endif


/*********************************************************************/
/*                                                                   */
/*                      Page oriented routines                       */
/*                                                                   */
/*********************************************************************/



#endif /* TS_H */