Annotation of cci/d/ioex/vioc.h, revision 1.1.1.1

1.1       root        1: 
                      2: #define        V_CMDI  0               /* send command */
                      3: #define V_CMDRI 1              /* let vioc process next cmd */
                      4: #define V_URESP 2              /* response to unsolicited command */
                      5: #define V_RESET 1              /* cause a vioc reset */
                      6: #define V_TRP  2               /* cause a vioc trap */
                      7: #define V_INTR 4               /* cause a vioc interrupt */
                      8: #define V_ERR  0x80            /* generic error flag */
                      9: #define V_BSY  0x80            /* generic busy flag */
                     10: #define V_UNBSY        0x80            /* not busy for unsolicited interrupt */
                     11: 
                     12: #define V_RDY  0xa             /* Vioc ready after reset */
                     13: #define V_ALLOK 0x0a55         /* VIOC passed internal diagnostic */
                     14: #define V_BAD   0x02           /* VIOC failed internal diagnostic */
                     15: #define V_P1BAD 0x03           /* Connector panel #1 is bad */
                     16: #define V_P2BAD 0x03           /* Connector panel #2 is bad */
                     17: 
                     18: #define VSPEED  7              /* standard speed is 300 baud */
                     19: #define        VCVECT  64 ;            /* base vioc vector */
                     20: 
                     21: 
                     22: #define NVXPORTS 8             /* Total nbr of viocx terminal ports */
                     23: #define VXLEN 05               /* essentially the nbr of pending "reads" */
                     24: #define        VIDENT 0x3FE            /* vioc ident displacement into vblok */
                     25: #define        VREADY 0x55             /* denotes no err in vioc self-initializaton */
                     26: #define        FAULT 0x400
                     27: #define FECPNBR 1
                     28: #define V_REVNBR 040
                     29: 
                     30: #define VRESPLEN 0100
                     31: #define VCMDLEN 16
                     32: #define VC_IQLEN 16                    /* Interrupt circular queue length */
                     33: 
                     34: #define VIOCX  0xa             /* identifies viocx in v_ident */
                     35: #define SSPEED 13              /* standard speed 9600 bps */
                     36: #define MDMCTL 0x1004          /* auto modem control */
                     37: 
                     38: #define        V_MAN   0203    /* man + DTR + RTS */
                     39: #define        V_AUTO  0002    /* auto + DTR */
                     40: #define V_RTS  0001    /* assert RTS */
                     41: #define V_DISAB        0200    /* manual + isable DTR and RTS */
                     42: 
                     43: #define BRK_CHR        040
                     44: #define DCD_ON 020
                     45: #define DCD_OFF        010
                     46: #define        CTS_ON  004
                     47: 
                     48: #define SILOBAS 0x800+VIOCBAS
                     49: #define NVIOCXLIN 16           /* nbr lines per vioc-x */
                     50: #define        VSILTIM 10              /* silo timount value,10=100msec */
                     51: #define NVCXBUFS 12            /* number of command buffers */
                     52: #define LIDENT 0x0008          /* load ident, set int vectors */
                     53: #define LSILOA 0x0104          /* set silos */
                     54: #define XMITDTA        0x0200          /* transmit */
                     55: #define FDTATOX        0x8304          /* flush data */
                     56: #define EXMODEX        0x0404          /* xon xoff mode */
                     57: #define        DXMODEX 0x0504          /* disable xon,xoff */
                     58: #define        LPARAX  0x060a          /* load params */
                     59: #define RPARALX        0x0704          /* request params from viocx */
                     60: #define RPARADX        0x0804          /* request params dma */
                     61: #define AUTOLP 0x0900          /* auto loop back /local echo  */
                     62: #define PERROR 0x40
                     63: #define FERROR 0x80
                     64: #define RCVOVRN        0xc0
                     65: 
                     66: /*
                     67:  * Data Structures
                     68:  */
                     69: 
                     70: struct vblok   {               /* Common buffer seen by HOST */
                     71:        char    v_vioc;         /*  type of interrupt + voic bsy flg */
                     72:        char    v_hdwre;        /*  trap, reset, or hard interrupt */
                     73: 
                     74:        char    v_vcbsy;        /*  command busy (set by host) */
                     75:        char    v_vcid;         /*  command id. */
                     76: 
                     77:        short   v_vcp0;         /*  command address, high byte (sent by HOST) */
                     78:        short   v_vcp1;         /*  command address, low byte (sent by HOST) */
                     79: 
                     80:        short   not_used;
                     81:        short   v_rsp;          /* Offset to VIOC_BASE (ffx000) */
                     82:                                /* Respond buff. addr = (VIOC_BASE + v_rsp) */
                     83: 
                     84:        char    v_ustat;        /* Unsolicited status */
                     85:        char    v_uqual;        /* qualifies of unsolicited interrupt */
                     86: 
                     87:        char    v_usdata[0x42] ;  /* unsolicited interrupt data */
                     88: 
                     89:        short   v_ident ;       /* VIOC identifier */
                     90:                                /* denotes fault or ready after reset */
                     91: 
                     92:        short   v_dcd ;         /* f2 bit mask for carr detect by port */
                     93:        short   v_cts ;         /* f4 bit mask for cts by port */
                     94: };
                     95: 
                     96: #define CMDMAXLEN      10
                     97: struct cmd_inp         /* Command input block */
                     98: {
                     99:        short opcode;   
                    100:        char byte[CMDMAXLEN];
                    101: };
                    102: 
                    103: #define RESMAXLEN      100
                    104: struct cmd_res         /* Command respond block */
                    105: {
                    106:        char stat;      /* Respond status */
                    107:        char id;        /* Identification code */
                    108:        struct cmd_inp; /* Command input block */
                    109:        char byte[RESMAXLEN];
                    110: };
                    111: 
                    112: #define BUFLEN  100
                    113: #define NVIOC  1
                    114: 
                    115: 
                    116: struct vbuf  {
                    117:        long cnt;
                    118:        long nxt_c;
                    119:        long nxt_fill;
                    120:        char buf[BUFLEN];
                    121: };
                    122: 
                    123: struct vbuf vi_buf[NVIOC*16];

unix.superglobalmegacorp.com

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