Annotation of 42BSD/sys/vax/Locore.c, revision 1.1

1.1     ! root        1: /*     Locore.c        6.1     83/08/11        */
        !             2: 
        !             3: #include "dz.h"
        !             4: #include "mba.h"
        !             5: #include "uba.h"
        !             6: 
        !             7: #include "../machine/pte.h"
        !             8: 
        !             9: #include "../h/param.h"
        !            10: #include "../h/systm.h"
        !            11: #include "../h/dir.h"
        !            12: #include "../h/user.h"
        !            13: #include "../h/vm.h"
        !            14: #include "../h/tty.h"
        !            15: #include "../h/proc.h"
        !            16: #include "../h/buf.h"
        !            17: #include "../h/msgbuf.h"
        !            18: #include "../h/mbuf.h"
        !            19: #include "../h/protosw.h"
        !            20: #include "../h/domain.h"
        !            21: 
        !            22: #include "../vax/nexus.h"
        !            23: #include "../vaxuba/ubavar.h"
        !            24: #include "../vaxuba/ubareg.h"
        !            25: 
        !            26: /*
        !            27:  * Pseudo file for lint to show what is used/defined in locore.s.
        !            28:  */
        !            29: 
        !            30: struct scb scb;
        !            31: int    (*UNIvec[128])();
        !            32: #if NUBA > 1
        !            33: int    (*UNI1vec[128])();
        !            34: #endif
        !            35: struct rpb rpb;
        !            36: int    intstack[3*128];
        !            37: 
        !            38: int    masterpaddr;            /* p_addr of current process on master cpu */
        !            39: 
        !            40: struct user u;
        !            41: 
        !            42: doadump() { dumpsys(); }
        !            43: 
        !            44: Xmba3int() { }
        !            45: Xmba2int() { }
        !            46: Xmba1int() { }
        !            47: Xmba0int() { }
        !            48: 
        !            49: lowinit()
        !            50: {
        !            51:        extern int dumpmag;
        !            52:        extern struct domain unixdomain;
        !            53: #ifdef PUP
        !            54:        extern struct domain pupdomain;
        !            55: #endif
        !            56: #ifdef INET
        !            57:        extern struct domain inetdomain;
        !            58: #endif
        !            59: #include "imp.h"
        !            60: #if NIMP > 0
        !            61:        extern struct domain impdomain;
        !            62: #endif
        !            63: 
        !            64:        /* cpp messes these up for lint so put them here */
        !            65:        unixdomain.dom_next = domains;
        !            66:        domains = &unixdomain;
        !            67: #ifdef PUP
        !            68:        pupdomain.dom_next = domains;
        !            69:        domains = &pupdomain;
        !            70: #endif
        !            71: #ifdef INET
        !            72:        inetdomain.dom_next = domains;
        !            73:        domains = &inetdomain;
        !            74: #endif
        !            75: #if NIMP > 0
        !            76:        impdomain.dom_next = domains;
        !            77:        domains = &impdomain;
        !            78: #endif
        !            79:        dumpmag = 0;                    /* used only by savecore */
        !            80: 
        !            81:        /*
        !            82:         * Pseudo-uses of globals.
        !            83:         */
        !            84:        lowinit();
        !            85:        intstack[0] = intstack[1];
        !            86:        rpb = rpb;
        !            87:        scb = scb;
        !            88:        maxmem = physmem = freemem = 0;
        !            89:        u = u;
        !            90:        fixctlrmask();
        !            91:        main(0);
        !            92:        Xustray();
        !            93: 
        !            94:        /*
        !            95:         * Routines called from interrupt vectors.
        !            96:         */
        !            97:        panic("Machine check");
        !            98:        printf("Write timeout");
        !            99:        (*UNIvec[0])();
        !           100: #if NUBA > 1
        !           101:        (*UNI1vec[0])();
        !           102: #endif
        !           103:        ubaerror(0, (struct uba_hd *)0, 0, 0, (struct uba_regs *)0);
        !           104:        cnrint(0);
        !           105:        cnxint(0);
        !           106:        consdin();
        !           107:        consdout();
        !           108: #if NDZ > 0
        !           109:        dzdma();
        !           110: #endif
        !           111: #if NMBA > 0
        !           112:        mbintr(0);
        !           113: #endif
        !           114:        hardclock((caddr_t)0, 0);
        !           115:        softclock((caddr_t)0, 0);
        !           116:        trap(0, 0, (unsigned)0, 0, 0);
        !           117:        syscall(0, 0, (unsigned)0, 0, 0);
        !           118:        ipintr();
        !           119:        rawintr();
        !           120: 
        !           121:        if (vmemall((struct pte *)0, 0, (struct proc *)0, 0))
        !           122:                return;         /* use value */
        !           123:        machinecheck((caddr_t)0);
        !           124:        memerr();
        !           125:        boothowto = 0;
        !           126: }
        !           127: 
        !           128: consdin() { }
        !           129: consdout() { }
        !           130: #if NDZ > 0
        !           131: dzdma() { dzxint((struct tty *)0); }
        !           132: #endif
        !           133: 
        !           134: int    catcher[256];
        !           135: int    cold = 1;
        !           136: 
        !           137: Xustray() { }
        !           138: 
        !           139: struct pte Sysmap[6*NPTEPG];
        !           140: char   Sysbase[6*NPTEPG*NBPG];
        !           141: int    umbabeg;
        !           142: struct pte Nexmap[16][16];
        !           143: struct nexus nexus[MAXNNEXUS];
        !           144: struct pte UMEMmap[MAXNUBA][512];
        !           145: char   umem[MAXNUBA][512*NBPG];
        !           146: int    umbaend;
        !           147: struct pte Usrptmap[USRPTSIZE];
        !           148: struct pte usrpt[USRPTSIZE*NPTEPG];
        !           149: struct pte Forkmap[UPAGES];
        !           150: struct user forkutl;
        !           151: struct pte Xswapmap[UPAGES];
        !           152: struct user xswaputl;
        !           153: struct pte Xswap2map[UPAGES];
        !           154: struct user xswap2utl;
        !           155: struct pte Swapmap[UPAGES];
        !           156: struct user swaputl;
        !           157: struct pte Pushmap[UPAGES];
        !           158: struct user pushutl;
        !           159: struct pte Vfmap[UPAGES];
        !           160: struct user vfutl;
        !           161: struct pte CMAP1;
        !           162: char   CADDR1[NBPG];
        !           163: struct pte CMAP2;
        !           164: char   CADDR2[NBPG];
        !           165: struct pte mmap[1];
        !           166: char   vmmap[NBPG];
        !           167: struct pte Mbmap[NMBCLUSTERS/CLSIZE];
        !           168: struct mbuf mbutl[NMBCLUSTERS*CLBYTES/sizeof (struct mbuf)];
        !           169: struct pte msgbufmap[CLSIZE];
        !           170: struct msgbuf msgbuf;
        !           171: struct pte camap[32];
        !           172: int    cabase;
        !           173: #ifdef unneeded
        !           174: char   caspace[32*NBPG];
        !           175: #endif
        !           176: int    calimit;
        !           177: 
        !           178: /*ARGSUSED*/
        !           179: badaddr(addr, len) caddr_t addr; int len; { return (0); }
        !           180: 
        !           181: /*ARGSUSED*/
        !           182: copyin(udaddr, kaddr, n) caddr_t udaddr, kaddr; unsigned n; { return (0); }
        !           183: 
        !           184: /*ARGSUSED*/
        !           185: copyout(kaddr, udaddr, n) caddr_t kaddr, udaddr; unsigned n; { return (0); }
        !           186: 
        !           187: /*ARGSUSED*/
        !           188: setjmp(lp) label_t *lp; { return (0); }
        !           189: 
        !           190: /*ARGSUSED*/
        !           191: longjmp(lp) label_t *lp; { /*NOTREACHED*/ }
        !           192: 
        !           193: /*ARGSUSED*/
        !           194: setrq(p) struct proc *p; { }
        !           195: 
        !           196: /*ARGSUSED*/
        !           197: remrq(p) struct proc *p; { }
        !           198: 
        !           199: swtch() { if (whichqs) whichqs = 0; if (masterpaddr) masterpaddr = 0; }
        !           200: 
        !           201: /*ARGSUSED*/
        !           202: resume(pcbpf) unsigned pcbpf; { }
        !           203: 
        !           204: /*ARGSUSED*/
        !           205: fubyte(base) caddr_t base; { return (0); }
        !           206: 
        !           207: /*ARGSUSED*/
        !           208: subyte(base, i) caddr_t base; { return (0); }
        !           209: 
        !           210: /*ARGSUSED*/
        !           211: suibyte(base, i) caddr_t base; { return (0); }
        !           212: 
        !           213: /*ARGSUSED*/
        !           214: fuword(base) caddr_t base; { return (0); }
        !           215: 
        !           216: /*ARGSUSED*/
        !           217: fuiword(base) caddr_t base; { return (0); }
        !           218: 
        !           219: /*ARGSUSED*/
        !           220: suword(base, i) caddr_t base; { return (0); }
        !           221: 
        !           222: /*ARGSUSED*/
        !           223: suiword(base, i) caddr_t base; { return (0); }
        !           224: 
        !           225: /*ARGSUSED*/
        !           226: copyseg(udaddr, pf) caddr_t udaddr; unsigned pf; {
        !           227:     CMAP1 = CMAP1; CADDR1[0] = CADDR1[0];
        !           228: }
        !           229: 
        !           230: /*ARGSUSED*/
        !           231: clearseg(pf) unsigned pf; { CMAP2 = CMAP2; CADDR2[0] = CADDR2[0]; }
        !           232: 
        !           233: /*ARGSUSED*/
        !           234: useracc(udaddr, bcnt, rw) caddr_t udaddr; unsigned bcnt; { return (0); }
        !           235: 
        !           236: /*ARGSUSED*/
        !           237: kernacc(addr, bcnt, rw) caddr_t addr; unsigned bcnt; { return (0); }
        !           238: 
        !           239: /*
        !           240:  * Routines handled by asm.sed script.
        !           241:  */
        !           242: 
        !           243: /*VARARGS1*/
        !           244: /*ARGSUSED*/
        !           245: mtpr(reg, value) int reg, value; { }
        !           246: 
        !           247: /*ARGSUSED*/
        !           248: mfpr(reg) int reg; { return (0); }
        !           249: 
        !           250: 
        !           251: spl0() { }
        !           252: spl4() { return (0); }
        !           253: spl5() { return (0); }
        !           254: spl6() { return (0); }
        !           255: spl7() { return (0); }
        !           256: 
        !           257: /*ARGSUSED*/
        !           258: splx(s) int s; { }
        !           259: 
        !           260: /*ARGSUSED*/
        !           261: bcopy(from, to, count) caddr_t from, to; unsigned count; { ; }
        !           262: 
        !           263: /*ARGSUSED*/
        !           264: bzero(base, count) caddr_t base; unsigned count; { ; }
        !           265: 
        !           266: /*ARGSUSED*/
        !           267: bcmp(s1, s2, count) caddr_t s1, s2; unsigned count; { return (0); }
        !           268: 
        !           269: /*ARGSUSED*/
        !           270: scanc(size, cp, table, mask)
        !           271: unsigned size; caddr_t cp, table; int mask; { return (0); }
        !           272: 
        !           273: /*ARGSUSED*/
        !           274: ffs(i) { return (0); }
        !           275: 
        !           276: ntohs(s) u_short s; { return ((int)s); }
        !           277: 
        !           278: htons(s) u_short s; { return ((int)s); }
        !           279: 
        !           280: /*
        !           281:  * Variables declared for savecore, or
        !           282:  * implicitly, such as by config or the loader.
        !           283:  */
        !           284: char   version[] = "4.2 BSD UNIX ....";
        !           285: char   etext;

unix.superglobalmegacorp.com

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