Annotation of coherent/a/usr/include.b4ps2/sys/asy.h, revision 1.1.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.