Annotation of xinu/sys/sluint.c, revision 1.1.1.1

1.1       root        1: /* sluint.c - sluint */
                      2: 
                      3: #include <conf.h>
                      4: #include <kernel.h>
                      5: #include <tty.h>
                      6: #include <io.h>
                      7: 
                      8: /* set up macros for appropriate SLU as spec. by SLUCHIP:
                      9:    if SLUCHIP==6850, #include slu6850.h, #define SLUINT sluint6850, etc.
                     10:    if SLUCHIP==7201, #include slu7201.h, #define SLUINT sluint7201, etc.
                     11:    if SLUCHIP undef.,#include slu.h, #define SLUINT sluint  (orig. case)
                     12:    similarly sluaccess.h, other TTY fns */
                     13: #include <sluinclude.h>
                     14: 
                     15: /*------------------------------------------------------------------------
                     16:  *  sluint  --  interrupt dispatcher 
                     17:  *  Xinu assumes separate int vecs for receiver and transmitter,
                     18:  *  but MC6850/NEC7201 has only one common one, so need this.
                     19:  *------------------------------------------------------------------------
                     20:  */
                     21: INTPROC SLUINT(descrp)
                     22:        int descrp;
                     23: {
                     24:        register struct tty     *ttyp;
                     25:        register struct csr     *cptr;
                     26: 
                     27: #ifdef DEBUG
                     28:        dotrace ("sluint",NULL,0);
                     29: #endif
                     30:        ttyp = (struct tty *) devtab[descrp].dvioblk ;
                     31:        cptr = (struct csr *) ttyp->ioaddr ;
                     32:        if (slurecvready(cptr)) {
                     33:          TTYIIN(ttyp, cptr, FALSE);
                     34:          return(OK);
                     35:        }
                     36:        if (slutransready(cptr)) {
                     37:          TTYOIN(ttyp, cptr);
                     38:          return(OK);
                     39:        }
                     40:        /* should not get here */
                     41:        panic("SLU interrupt but device not ready");
                     42: }

unix.superglobalmegacorp.com

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