Annotation of embedaddon/ntp/kernel/sys/bsd_audioirig.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  *     $Header: bsd_audioirig.h,v 1.0 93/08/02 12:42:00
        !             3:  */
        !             4: 
        !             5: #ifndef _BSD_AUDIOIRIG_H_
        !             6: #define _BSD_AUDIOIRIG_H_
        !             7: 
        !             8: #include <sys/time.h>
        !             9: 
        !            10: /********************************************************************/
        !            11: /* user interface */
        !            12: 
        !            13: /*
        !            14:  * irig ioctls
        !            15:  */
        !            16: #if defined(__STDC__) || (!defined(sun) && !defined(ibm032) && !defined(__GNUC))
        !            17: #define AUDIO_IRIG_OPEN         _IO('A', 50)
        !            18: #define AUDIO_IRIG_CLOSE        _IO('A', 51)
        !            19: #define AUDIO_IRIG_SETFORMAT    _IOWR('A', 52, int)
        !            20: #else
        !            21: #define AUDIO_IRIG_OPEN         _IO(A, 50)
        !            22: #define AUDIO_IRIG_CLOSE        _IO(A, 51)
        !            23: #define AUDIO_IRIG_SETFORMAT    _IOWR(A, 52, int)
        !            24: #endif
        !            25: 
        !            26: /*
        !            27:  * irig error codes
        !            28:  */
        !            29: #define AUDIO_IRIG_BADSIGNAL   0x01
        !            30: #define AUDIO_IRIG_BADDATA     0x02
        !            31: #define AUDIO_IRIG_BADSYNC     0x04
        !            32: #define AUDIO_IRIG_BADCLOCK    0x08
        !            33: #define AUDIO_IRIG_OLDDATA     0x10
        !            34: 
        !            35: /********************************************************************/
        !            36: 
        !            37: /*
        !            38:  * auib definitions
        !            39:  */
        !            40: #define AUIB_SIZE      (0x0040)
        !            41: #define AUIB_INC       (0x0008)
        !            42: #define AUIB_MOD(k)    ((k) & 0x0038)
        !            43: #define AUIB_INIT(ib)  ((ib)->ib_head = (ib)->ib_tail = (ib)->ib_lock = \
        !            44:                         (ib)->phase = (ib)->shi = (ib)->slo = (ib)->high = \
        !            45:                         (ib)->level0 = (ib)->level1 = \
        !            46:                         (ib)->shift[0] = (ib)->shift[1] = (ib)->shift[2] = \
        !            47:                         (ib)->shift[3] = (ib)->sdata[0] = (ib)->sdata[1] = \
        !            48:                         (ib)->sdata[2] = (ib)->sdata[3] = (ib)->err = 0)
        !            49: #define AUIB_EMPTY(ib) ((ib)->ib_head == (ib)->ib_tail)
        !            50: #define AUIB_LEN(ib)   (AUIB_MOD((ib)->ib_tail - (ib)->ib_head))
        !            51: #define AUIB_LEFT(ib)  (AUIB_MOD((ib)->ib_head - (ib)->ib_tail - 1))
        !            52: #define IRIGDELAY 3
        !            53: #define IRIGLEVEL 1355
        !            54: 
        !            55: #ifndef LOCORE
        !            56: /*
        !            57:  * irig_time holds IRIG data for one second
        !            58:  */
        !            59: struct irig_time {
        !            60:         struct timeval  stamp;          /* timestamp */
        !            61:         u_char  bits[13];               /* 100 irig data bits */
        !            62:        u_char  status;                 /* status byte */
        !            63:         char    time[14];               /* time string */
        !            64: };
        !            65: 
        !            66: /*
        !            67:  * auib's are used for IRIG data communication between the trap
        !            68:  * handler and the software interrupt.
        !            69:  */
        !            70: struct auib {
        !            71:        /* driver variables */
        !            72:        u_short active;                 /* 0=inactive, else=active */
        !            73:        u_short format;                 /* time output format */
        !            74:        struct  irig_time timestr;      /* time structure */
        !            75:        char    buffer[14];             /* output formation buffer */
        !            76: 
        !            77:        /* hardware interrupt variables */
        !            78:        struct  timeval tv1,tv2,tv3;    /* time stamps (median filter) */
        !            79:        int     level0,level1;          /* lo/hi input levels */
        !            80:        int     level;                  /* decision level */
        !            81:        int     high;                   /* recent largest sample */
        !            82:        int     sl0,sl1;                /* recent sample levels */
        !            83:        int     lasts;                  /* last sample value */
        !            84:        u_short scount;                 /* sample count */
        !            85:        u_long  eacc;                   /* 10-bit element accumulator */
        !            86:        u_long  ebit;                   /* current bit in element */
        !            87:        u_char  r_level,mmr1;           /* recording level 0-255 */
        !            88:        int     shi,slo,phase;          /* AGC variables */
        !            89:        u_long  err;                    /* error status bits */
        !            90:        int     ecount;                 /* count of elements this second */
        !            91:        long    shift[4];               /* shift register of pos ident */
        !            92:        long    sdata[4];               /* shift register of symbols */
        !            93: 
        !            94:        int     ib_head;                /* queue head */
        !            95:        int     ib_tail;                /* queue tail */
        !            96:        u_short ib_lock;                /* queue head lock */
        !            97:        u_long  ib_data[AUIB_SIZE];     /* data buffer */
        !            98: };
        !            99: #endif
        !           100: 
        !           101: #endif /* _BSD_AUDIOIRIG_H_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>