Annotation of coherent/a/usr/include.b4ps2/sys/asy.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * asy.h - support for 8250-family serial devices
        !             3:  */
        !             4: #ifndef ASY_H
        !             5: #define ASY_H
        !             6: 
        !             7: #include <sys/silo.h>
        !             8: 
        !             9: extern int ASY_NUM;            /* patched to number of ports           */
        !            10: extern int ASYGP_NUM;          /* patched to number of port groups     */
        !            11: 
        !            12: #ifdef _I386
        !            13: #define MAX_ASY                32      /* maximum number of ports per driver   */
        !            14: #define MAX_ASYGP      4       /* maximum number of port groups        */
        !            15: #define MAX_SLOTS      16      /* maximum number of ports per group    */
        !            16: #else
        !            17: #define MAX_ASY                8       /* maximum number of ports per driver   */
        !            18: #define MAX_ASYGP      2       /* maximum number of port groups        */
        !            19: #define MAX_SLOTS      8       /* maximum number of ports per group    */
        !            20: #endif
        !            21: #define ASY_VERSION    4       /* driver and asypatch check this       */
        !            22: 
        !            23: #define NO_ASYGP       99
        !            24: #define NO_CHANNEL     99
        !            25: 
        !            26: #define PT_SIMPLE      0
        !            27: #define PT_COMTROL     1
        !            28: #define PT_ARNET       2
        !            29: #define PT_GTEK                3
        !            30: #define PT_DIGI                4
        !            31: #define PT_MAX         5       /* one more than highest PT value used  */
        !            32: 
        !            33: /*
        !            34:  * Fields that need to be patched during installation.
        !            35:  * These structs must be static.
        !            36:  */
        !            37: typedef struct asy0 {
        !            38:        short   a_port;         /* i/o address of uart                  */
        !            39:        char    a_irqno;        /* irq number, if any                   */
        !            40:        char    a_speed;        /* default baud, from sgtty.h/termio.h  */
        !            41:        char    a_outs;         /* settings for MC_OUT1/2 when open     */
        !            42:        char    a_asy_gp;       /* group number, or NO_ASYGP if none    */
        !            43:        char    a_ixc;          /* if 1, needs excl use of irq (COM1-4) */
        !            44:        char    a_nms;          /* if 1, no modem status interrupts     */
        !            45: } asy0_t;
        !            46: 
        !            47: typedef struct asy_gp {
        !            48:        short   stat_port;
        !            49:        char    gp_type;
        !            50:        char    irq;
        !            51:        char    chan_list[MAX_SLOTS];
        !            52: } asy_gp_t;
        !            53: 
        !            54: /*
        !            55:  * Fields that do not require patched initial values.
        !            56:  * This struct can be dynamically allocated.
        !            57:  */
        !            58: typedef struct asy1 {
        !            59:        silo_t  a_in;           /* raw input fifo                       */
        !            60:        silo_t  a_out;          /* raw output fifo                      */
        !            61:        TTY     a_tty;          /* stuff for line discipline            */
        !            62:        TIM     a_tim;          /* for irq timeout kluge                */
        !            63:        short   a_in_use;       /* increment with each open attempt     */
        !            64:        char    a_ut;           /* uart type                            */
        !            65:        char    a_lcr;          /* lcr readback                         */
        !            66:        int     a_irq:1;        /* true when open or hanging with irq's */
        !            67:        int     a_has_irq:1;    /* irq vector is usable                 */
        !            68:        int     a_hopn:1;       /* doing first open                     */
        !            69:        int     a_hcls:1;       /* doing last close                     */
        !            70:        int     a_ohlt:1;       /* CTS flow control has halted output   */
        !            71:        int     a_modc:1;       /* open with modem control              */
        !            72:        int     a_poll:1;       /* open in polled mode                  */
        !            73:        int     a_flc:1;        /* open with RTS/CTS flow control       */
        !            74: } asy1_t;
        !            75: 
        !            76: /*
        !            77:  * Each irq number has a linked list.
        !            78:  * There is one node for each i/o port triggering the given irq number.
        !            79:  */
        !            80: struct irqnode {
        !            81:        struct irqnode  *next;
        !            82:        struct irqnode  *next_actv;
        !            83:        int             (*func)();
        !            84:        int             arg;
        !            85: };
        !            86: 
        !            87: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.