Annotation of 43BSDReno/sys/hp300/Locore.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution is only permitted until one year after the first shipment
                      6:  * of 4.4BSD by the Regents.  Otherwise, redistribution and use in source and
                      7:  * binary forms are permitted provided that: (1) source distributions retain
                      8:  * this entire copyright notice and comment, and (2) distributions including
                      9:  * binaries display the following acknowledgement:  This product includes
                     10:  * software developed by the University of California, Berkeley and its
                     11:  * contributors'' in the documentation or other materials provided with the
                     12:  * distribution and in all advertising materials mentioning features or use
                     13:  * of this software.  Neither the name of the University nor the names of
                     14:  * its contributors may be used to endorse or promote products derived from
                     15:  * this software without specific prior written permission.
                     16:  * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     17:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     18:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     19:  *
                     20:  *     @(#)Locore.c    7.1 (Berkeley) 5/8/90
                     21:  */
                     22: 
                     23: #include "pte.h"
                     24: #include "cpu.h"
                     25: 
                     26: #include "param.h"
                     27: #include "systm.h"
                     28: #include "user.h"
                     29: #include "vm.h"
                     30: #include "ioctl.h"
                     31: #include "tty.h"
                     32: #include "proc.h"
                     33: #include "buf.h"
                     34: #include "msgbuf.h"
                     35: #include "mbuf.h"
                     36: #include "protosw.h"
                     37: #include "domain.h"
                     38: #include "map.h"
                     39: #include "dkbad.h"
                     40: 
                     41: /*
                     42:  * Pseudo file for lint to show what is used/defined in locore.s.
                     43:  */
                     44: 
                     45: int    machineid;
                     46: int    mmutype;
                     47: int    ectype;
                     48: struct user u;
                     49: int    icode[8];
                     50: int    szicode = sizeof (icode);
                     51: u_int  lowram;
                     52: u_char ssir;
                     53: int    Usrptsize;
                     54: 
                     55: /*
                     56:  * Variables declared for savecore, or
                     57:  * implicitly, such as by config or the loader.
                     58:  */
                     59: char   version[] = "4.3 BSD UNIX ....";
                     60: int    etext;
                     61: 
                     62: doadump() { dumpsys(); doboot(); }
                     63: 
                     64: lowinit()
                     65: {
                     66: #if !defined(GPROF)
                     67:        caddr_t cp;
                     68: #endif
                     69:        struct frame frame;
                     70:        extern int dumpmag;
                     71:        extern int rthashsize;
                     72:        extern int arptab_size;
                     73:        extern int dk_ndrive;
                     74:        extern struct domain unixdomain;
                     75: #ifdef INET
                     76:        extern struct domain inetdomain;
                     77: #endif
                     78: #include "imp.h"
                     79: #if NIMP > 0
                     80:        extern struct domain impdomain;
                     81: #endif
                     82: #ifdef NS
                     83:        extern struct domain nsdomain;
                     84: #endif
                     85: 
                     86:        /* cpp messes these up for lint so put them here */
                     87:        unixdomain.dom_next = domains;
                     88:        domains = &unixdomain;
                     89: #ifdef INET
                     90:        inetdomain.dom_next = domains;
                     91:        domains = &inetdomain;
                     92: #endif
                     93: #if NIMP > 0
                     94:        impdomain.dom_next = domains;
                     95:        domains = &impdomain;
                     96: #endif
                     97: #ifdef NS
                     98:        nsdomain.dom_next = domains;
                     99:        domains = &nsdomain;
                    100: #endif
                    101:        dumpmag = 0;                    /* used only by savecore */
                    102:        rthashsize = rthashsize;        /* used by netstat, etc. */
                    103:        arptab_size = arptab_size;      /* used by arp command */
                    104:        dk_ndrive = dk_ndrive;          /* used by vmstat, iostat, etc. */
                    105: 
                    106:        /*
                    107:         * Pseudo-uses of globals.
                    108:         */
                    109:        lowinit();
                    110:        machineid = machineid;
                    111:        mmutype = mmutype;
                    112:        ectype = ectype;
                    113:        lowram = lowram;
                    114:        ssir = ssir;
                    115:        maxmem = physmem = freemem = 0;
                    116:        u = u;
                    117:        Usrptsize = Usrptsize;
                    118:        main(0);
                    119: 
                    120:        /*
                    121:         * Routines called from interrupt vectors.
                    122:         */
                    123:        panic("Machine check");
                    124:        printf("Write timeout");
                    125:        hilint();
                    126:        if (dmaintr())
                    127:                return;
                    128:        intrhand(0);
                    129:        regdump((int *)0, 0);
                    130:        hardclock((caddr_t)0, 0);
                    131:        nmihand(frame);
                    132:        softclock((caddr_t)0, 0);
                    133:        trap(0, (unsigned)0, (unsigned)0, frame);
                    134:        syscall(0, frame);
                    135:        straytrap(0);
                    136: 
                    137:        /*
                    138:         * Miscellaneous routines called from configurable
                    139:         * drivers.
                    140:         */
                    141:        disksort((struct buf *)0, (struct buf *)0);
                    142:        if (vmemall((struct pte *)0, 0, (struct proc *)0, 0))
                    143:                return;         /* use value */
                    144:        boothowto = 0;
                    145: /*     dumpflag = 0; dumpflag = dumpflag; */
                    146: #if !defined(GPROF)
                    147:        cp = (caddr_t)&etext;
                    148:        cp = cp;
                    149: #endif
                    150: }
                    151: 
                    152: int    cold = 1;
                    153: 
                    154: struct pte Sysmap[SYSPTSIZE];
                    155: struct pte Usrptmap[USRPTSIZE];
                    156: int    Usrptsize;
                    157: struct pte usrpt[USRPTSIZE*NPTEPG];
                    158: struct pte Forkmap[UPAGES];
                    159: struct user forkutl;
                    160: struct pte Xswapmap[UPAGES];
                    161: struct user xswaputl;
                    162: struct pte Xswap2map[UPAGES];
                    163: struct user xswap2utl;
                    164: struct pte Swapmap[UPAGES];
                    165: struct user swaputl;
                    166: struct pte Pushmap[UPAGES];
                    167: struct user pushutl;
                    168: struct pte Vfmap[UPAGES];
                    169: struct user vfutl;
                    170: struct pte CMAP1;
                    171: char   CADDR1[NBPG];
                    172: struct pte CMAP2;
                    173: char   CADDR2[NBPG];
                    174: struct pte mmap[1];
                    175: char   vmmap[NBPG];
                    176: struct pte Mbmap[NMBCLUSTERS/CLSIZE];
                    177: char   mbutl[NMBCLUSTERS][MCLBYTES];
                    178: struct pte msgbufmap[CLSIZE];
                    179: struct msgbuf msgbuf;
                    180: struct pte kmempt[200], ekmempt[1];
                    181: int    IObase;
                    182: struct pte Usriomap[USRIOSIZE];
                    183: char   usrio[USRIOSIZE*NBPG];
                    184: struct ste Sysseg[NPTEPG];
                    185: struct pte Grfmap[1024];
                    186: char   grfregs[1024*NBPG];
                    187: 
                    188: /*ARGSUSED*/
                    189: ovbcopy(from, to, len) caddr_t from, to; unsigned len; { }
                    190: copyinstr(udaddr, kaddr, maxlength, lencopied)
                    191:     caddr_t udaddr, kaddr; u_int maxlength, *lencopied;
                    192: { *kaddr = *udaddr; *lencopied = maxlength; return (0); }
                    193: copyoutstr(kaddr, udaddr, maxlength, lencopied)
                    194:     caddr_t kaddr, udaddr; u_int maxlength, *lencopied;
                    195: { *udaddr = *kaddr; *lencopied = maxlength; return (0); }
                    196: copystr(kfaddr, kdaddr, maxlength, lencopied)
                    197:     caddr_t kfaddr, kdaddr; u_int maxlength, *lencopied;
                    198: { *kdaddr = *kfaddr; *lencopied = maxlength; return (0); }
                    199: 
                    200: /*ARGSUSED*/
                    201: copyin(udaddr, kaddr, n) caddr_t udaddr, kaddr; u_int n; { return (0); }
                    202: /*ARGSUSED*/
                    203: copyout(kaddr, udaddr, n) caddr_t kaddr, udaddr; u_int n; { return (0); }
                    204: 
                    205: /*ARGSUSED*/
                    206: longjmp(lp) label_t *lp; { /*NOTREACHED*/ }
                    207: 
                    208: /*ARGSUSED*/
                    209: savectx(lp) label_t *lp; { return (0); }
                    210: 
                    211: /*ARGSUSED*/
                    212: setrq(p) struct proc *p; { }
                    213: 
                    214: /*ARGSUSED*/
                    215: remrq(p) struct proc *p; { }
                    216: 
                    217: swtch() { if (whichqs) whichqs = 0; }
                    218: 
                    219: /*ARGSUSED*/
                    220: resume(pcbpf) unsigned pcbpf; { }
                    221: 
                    222: /*ARGSUSED*/
                    223: fubyte(base) caddr_t base; { return (0); }
                    224: #ifdef notdef
                    225: /*ARGSUSED*/
                    226: fuibyte(base) caddr_t base; { return (0); }
                    227: #endif
                    228: /*ARGSUSED*/
                    229: subyte(base, i) caddr_t base; { return (0); }
                    230: /*ARGSUSED*/
                    231: suibyte(base, i) caddr_t base; { return (0); }
                    232: /*ARGSUSED*/
                    233: fuword(base) caddr_t base; { return (0); }
                    234: /*ARGSUSED*/
                    235: fuiword(base) caddr_t base; { return (0); }
                    236: /*ARGSUSED*/
                    237: suword(base, i) caddr_t base; { return (0); }
                    238: /*ARGSUSED*/
                    239: suiword(base, i) caddr_t base; { return (0); }
                    240: 
                    241: /*ARGSUSED*/
                    242: copyseg(udaddr, pf)
                    243:     caddr_t udaddr; unsigned pf;
                    244: { CMAP1 = CMAP1; CADDR1[0] = CADDR1[0]; }
                    245: 
                    246: /*ARGSUSED*/
                    247: clearseg(pf) unsigned pf; { CMAP2 = CMAP2; CADDR2[0] = CADDR2[0]; }
                    248: 
                    249: TBIA() { }
                    250: /*ARGSUSED*/
                    251: TBIS(addr) caddr_t addr; { }
                    252: TBIAS() { }
                    253: TBIAU() { }
                    254: ICIA() { }
                    255: DCIA() { }
                    256: DCIS() { }
                    257: DCIU() { }
                    258: PCIA() { }
                    259: ecacheon() { }
                    260: ecacheoff() { }
                    261: 
                    262: getsfc() { return (0); }
                    263: getdfc() { return (0); }
                    264: 
                    265: /*ARGSUSED*/
                    266: loadustp(ustp) int ustp; { }
                    267: /*ARGSUSED*/
                    268: flushustp(ustp) int ustp; { }
                    269: 
                    270: /*ARGSUSED*/
                    271: ploadw(addr) caddr_t addr; { }
                    272: 
                    273: /*ARGSUSED*/
                    274: addupc(pc, prof, counts) int pc; struct uprof *prof; int counts; { }
                    275: 
                    276: spl0() { }
                    277: splsoftclock() { return (0); }
                    278: splnet() { return (0); }
                    279: spl1() { return (0); }
                    280: spl2() { return (0); }
                    281: spl3() { return (0); }
                    282: spl4() { return (0); }
                    283: splimp() { return (0); }
                    284: splbio() { return (0); }
                    285: spltty() { return (0); }
                    286: spl5() { return (0); }
                    287: splclock() { return (0); }
                    288: spl6() { return (0); }
                    289: splhigh() { return (0); }
                    290: spl7() { return (0); }
                    291: 
                    292: /*ARGSUSED*/
                    293: splx(s) int s; { }
                    294: 
                    295: /*ARGSUSED*/
                    296: _insque(p, q) caddr_t p, q; { }
                    297: /*ARGSUSED*/
                    298: _remque(p) caddr_t p; { }
                    299: 
                    300: /*ARGSUSED*/
                    301: bcopy(from, to, len) caddr_t from, to; unsigned len; { }
                    302: /*ARGSUSED*/
                    303: bzero(base, count) caddr_t base; unsigned count; { }
                    304: /*ARGSUSED*/
                    305: blkclr(base, count) caddr_t base; unsigned count; { }
                    306: /*ARGSUSED*/
                    307: bcmp(str1, str2, count) caddr_t str1, str2; unsigned count; { return (0); }
                    308: 
                    309: /*ARGSUSED*/
                    310: strlen(str) caddr_t str; { return (0); }
                    311: 
                    312: /*ARGSUSED*/
                    313: setjmp(lp) label_t *lp; { return (0); }
                    314: 
                    315: /*ARGSUSED*/
                    316: qsetjmp(lp) label_t *lp; { return (0); }
                    317: 
                    318: /*ARGSUSED*/
                    319: scanc(size, cp, table, mask)
                    320:     unsigned size; u_char *cp, table[]; int mask;
                    321: { return (0); }
                    322: 
                    323: /*ARGSUSED*/
                    324: skpc(mask, size, cp) int mask; int size; char *cp; { return (0); }
                    325: 
                    326: /*ARGSUSED*/
                    327: locc(mask, size, cp) int mask; char *cp; unsigned size; { return (0); }
                    328: 
                    329: /*ARGSUSED*/
                    330: ffs(v) long v; { return (0); }
                    331: 
                    332: #ifdef FPCOPROC
                    333: /*ARGSUSED*/
                    334: m68881_save(fpframep) struct fpframe *fpframep; { }
                    335: /*ARGSUSED*/
                    336: m68881_restore(fpframep) struct fpframe *fpframep; { }
                    337: #endif
                    338: 
                    339: doboot() { /*NOTREACHED*/ }

unix.superglobalmegacorp.com

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