Annotation of 43BSD/sys/stand/upmaptype.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1982, 1986 Regents of the University of California.
                      3:  * All rights reserved.  The Berkeley software License Agreement
                      4:  * specifies the terms and conditions for redistribution.
                      5:  *
                      6:  *     @(#)upmaptype.c 7.1 (Berkeley) 6/5/86
                      7:  */
                      8: 
                      9: /*
                     10:  * UNIBUS peripheral standalone
                     11:  * driver: drive type mapping routine.
                     12:  */
                     13: 
                     14: #include "../h/param.h" 
                     15: #include "../h/inode.h"
                     16: #include "../h/fs.h"
                     17: #include "../h/dkbad.h"
                     18: #include "../h/vmmac.h"
                     19: 
                     20: #include "../vax/pte.h"
                     21: #include "../vaxuba/upreg.h"
                     22: #include "../vaxuba/ubareg.h"
                     23: 
                     24: #include "saio.h"
                     25: #include "savax.h"
                     26: 
                     27: static short   up9300_off[] = { 0, 27, 0, -1, -1, -1, 562, 82 };
                     28: static short   fj_off[] = { 0, 50, 0, -1, -1, -1, 155, -1 };
                     29: static short   upam_off[] = { 0, 32, 0, 668, 723, 778, 668, 98 };
                     30: static short   up980_off[] = { 0, 100, 0, -1, -1 , -1, 309, -1};
                     31: static short   eagle_off[8] =  { 0, 17, 0, 391, 408, 728, 391, 87 };
                     32: 
                     33: struct st upst[] = {
                     34:        32,     19,     32*19,  815,    up9300_off,     /* 9300 */
                     35:        32,     19,     32*19,  823,    up9300_off,     /* 9766 */
                     36:        32,     10,     32*10,  823,    fj_off,         /* Fuji 160 */
                     37:        32,     16,     32*16,  1024,   upam_off,       /* Capricorn */
                     38:        32,     5,      32*5,   823,    up980_off,      /* DM980 */
                     39:        48,     20,     48*20,  842,    eagle_off,      /* Fuji Eagle */
                     40:        0,      0,      0,      0,      0,
                     41: };
                     42: 
                     43: upmaptype(unit, upaddr)
                     44:        int unit;
                     45:        register struct updevice *upaddr;
                     46: {
                     47:        register struct st *st;
                     48:        int type = -1;
                     49: 
                     50:        upaddr->upcs1 = 0;
                     51:        upaddr->upcs2 = unit % 8;
                     52:        upaddr->uphr = UPHR_MAXTRAK;
                     53:        for (st = upst; st->ntrak != 0; st++)
                     54:                if (upaddr->uphr == st->ntrak - 1) {
                     55:                        type = st - upst;
                     56:                        break;
                     57:                }
                     58:        if (st->ntrak == 0)
                     59:                printf("up%d: uphr=%x\n", unit, upaddr->uphr);
                     60:        if (type == 0) {
                     61:                upaddr->uphr = UPHR_MAXCYL;
                     62:                if (upaddr->uphr == 822)        /* CDC 9766 */
                     63:                        type++;
                     64:        }
                     65:        upaddr->upcs2 = UPCS2_CLR;
                     66:        return (type);
                     67: }

unix.superglobalmegacorp.com

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