Annotation of researchv8dc/sys/dev/dr.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *  DR-11C interface
                      3:  *  The routines in this driver are not called through the normal
                      4:  *  device interface.  Instead, they are available for other device
                      5:  *  drivers to use to send arbitrary information out on a DR-11C.
                      6:  */
                      7: 
                      8: #include "dr.h"
                      9: #if NDR > 0
                     10: #include "../h/param.h"
                     11: #include "../h/dir.h"
                     12: #include "../h/user.h"
                     13: #include "../h/conf.h"
                     14: #include "../h/inode.h"
                     15: #include "../h/file.h"
                     16: #include "../h/systm.h"
                     17: #include "../h/pte.h"
                     18: #include "../h/buf.h"
                     19: #include "../h/ubareg.h"
                     20: #include "../h/ubavar.h"
                     21: 
                     22: /* number of output bits available in a DR -- must be a power of 2 */
                     23: #define DRWIDTH 16
                     24: 
                     25: /* DRWIDTH is 2**DRSHIFT */
                     26: #define DRSHIFT 4
                     27: 
                     28: struct drreg {
                     29:        u_short drcsr, drout, drin;
                     30: };
                     31: 
                     32: int    drattach(), drprobe();
                     33: struct uba_device *drinfo[NDR];
                     34: u_short        drstd[] = { 0 };
                     35: struct uba_driver drdriver =
                     36:        { drprobe, 0, drattach, 0, drstd, "dr", drinfo };
                     37: 
                     38: drprobe(reg)
                     39: caddr_t reg;
                     40: {
                     41:        register int br, cvec;
                     42:        register struct drreg *draddr = (struct drreg *) reg;
                     43: 
                     44:        draddr->drcsr = 0;
                     45:        br = 0x15;
                     46:        cvec = 0700;            /* hope this will not be used */
                     47:        return 1;
                     48: }
                     49: 
                     50: drattach()
                     51: {
                     52: }
                     53: 
                     54: /* set bit n of the dr-11 complex to v */
                     55: drsetbit (n, v)
                     56:        register int n;
                     57:        register int v;
                     58: {
                     59:        if (drinfo[n>>DRSHIFT]->ui_alive == 0)
                     60:                return;
                     61:        if (n >= 0 && n < (NDR << DRSHIFT)) {
                     62:                register u_short bit;
                     63:                register struct drreg *drptr;
                     64:                drptr = (struct drreg *) drinfo[n>>DRSHIFT] -> ui_addr;
                     65:                bit = 1 << (n & (DRWIDTH - 1));
                     66:                if (v)
                     67:                        drptr->drout |= bit;
                     68:                else
                     69:                        drptr->drout &= ~bit;
                     70:        }
                     71: }
                     72: 
                     73: drrint()
                     74: {
                     75: }
                     76: 
                     77: drxint()
                     78: {
                     79: }
                     80: #endif

unix.superglobalmegacorp.com

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