* Copyright (c) 1982 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
* @(#)Locore.c 6.6 (Berkeley) %G%
#include "../vaxuba/ubavar.h"
#include "../vaxuba/ubareg.h"
* Pseudo file for lint to show what is used/defined in locore.s.
int masterpaddr
; /* p_addr of current process on master cpu */
int szicode
= sizeof (icode
);
* Variables declared for savecore, or
* implicitly, such as by config or the loader.
char version
[] = "4.2 BSD UNIX ....";
extern struct domain unixdomain
;
extern struct domain pupdomain
;
#if defined(INET) || defined(BBNNET)
extern struct domain inetdomain
;
extern struct domain impdomain
;
extern struct domain nsdomain
;
/* cpp messes these up for lint so put them here */
unixdomain
.dom_next
= domains
;
pupdomain
.dom_next
= domains
;
#if defined(INET) || defined(BBNNET)
inetdomain
.dom_next
= domains
;
impdomain
.dom_next
= domains
;
nsdomain
.dom_next
= domains
;
dumpmag
= 0; /* used only by savecore */
rthashsize
= rthashsize
; /* used by netstat, etc. */
arptab_size
= arptab_size
; /* used by arp command */
dk_ndrive
= dk_ndrive
; /* used by vmstat, iostat, etc. */
* Pseudo-uses of globals.
intstack
[0] = intstack
[1];
maxmem
= physmem
= freemem
= 0;
* Routines called from interrupt vectors.
ubaerror(0, (struct uba_hd
*)0, 0, 0, (struct uba_regs
*)0);
hardclock((caddr_t
)0, 0);
softclock((caddr_t
)0, 0);
trap(0, 0, (unsigned)0, 0, 0);
syscall(0, 0, (unsigned)0, 0, 0);
#if defined(INET) || defined(BBNNET)
if (vmemall((struct pte
*)0, 0, (struct proc
*)0, 0))
machinecheck((caddr_t
)0);
dumpflag
= 0; dumpflag
= dumpflag
;
dzdma() { dzxint((struct tty
*)0); }
struct pte Sysmap
[6*NPTEPG
];
char Sysbase
[6*NPTEPG
*NBPG
];
struct pte Nexmap
[16][16];
struct nexus nexus
[MAXNNEXUS
];
struct pte UMEMmap
[NUBA
][512];
char umem
[NUBA
][512*NBPG
];
struct pte Usrptmap
[USRPTSIZE
];
struct pte usrpt
[USRPTSIZE
*NPTEPG
];
struct pte Forkmap
[UPAGES
];
struct pte Xswapmap
[UPAGES
];
struct pte Xswap2map
[UPAGES
];
struct pte Swapmap
[UPAGES
];
struct pte Pushmap
[UPAGES
];
struct pte Vfmap
[UPAGES
];
struct pte Mbmap
[NMBCLUSTERS
/CLSIZE
];
struct mbuf mbutl
[NMBCLUSTERS
*CLBYTES
/sizeof (struct mbuf
)];
struct pte msgbufmap
[CLSIZE
];
badaddr(addr
, len
) caddr_t addr
; int len
; { return (0); }
ovbcopy(from
, to
, len
) caddr_t from
, to
; unsigned len
; { }
copyinstr(udaddr
, kaddr
, maxlength
, lencopied
)
caddr_t udaddr
, kaddr
; u_int maxlength
, *lencopied
;
{ *kaddr
= *udaddr
; *lencopied
= maxlength
; return (0); }
copyoutstr(kaddr
, udaddr
, maxlength
, lencopied
)
caddr_t kaddr
, udaddr
; u_int maxlength
, *lencopied
;
{ *udaddr
= *kaddr
; *lencopied
= maxlength
; return (0); }
copystr(kfaddr
, kdaddr
, maxlength
, lencopied
)
caddr_t kfaddr
, kdaddr
; u_int maxlength
, *lencopied
;
{ *kdaddr
= *kfaddr
; *lencopied
= maxlength
; return (0); }
copyin(udaddr
, kaddr
, n
) caddr_t udaddr
, kaddr
; u_int n
; { return (0); }
copyout(kaddr
, udaddr
, n
) caddr_t kaddr
, udaddr
; u_int n
; { return (0); }
longjmp(lp
) label_t
*lp
; { /*NOTREACHED*/ }
savectx(lp
) label_t
*lp
; { return (0); }
setrq(p
) struct proc
*p
; { }
remrq(p
) struct proc
*p
; { }
swtch() { if (whichqs
) whichqs
= 0; if (masterpaddr
) masterpaddr
= 0; }
resume(pcbpf
) unsigned pcbpf
; { }
fubyte(base
) caddr_t base
; { return (0); }
fuibyte(base
) caddr_t base
; { return (0); }
subyte(base
, i
) caddr_t base
; { return (0); }
suibyte(base
, i
) caddr_t base
; { return (0); }
fuword(base
) caddr_t base
; { return (0); }
fuiword(base
) caddr_t base
; { return (0); }
suword(base
, i
) caddr_t base
; { return (0); }
suiword(base
, i
) caddr_t base
; { return (0); }
caddr_t udaddr
; unsigned pf
;
{ CMAP1
= CMAP1
; CADDR1
[0] = CADDR1
[0]; }
clearseg(pf
) unsigned pf
; { CMAP2
= CMAP2
; CADDR2
[0] = CADDR2
[0]; }
useracc(udaddr
, bcnt
, rw
) caddr_t udaddr
; unsigned bcnt
; { return (0); }
kernacc(addr
, bcnt
, rw
) caddr_t addr
; unsigned bcnt
; { return (0); }
addupc(pc
, prof
, counts
) int pc
; struct uprof
*prof
; int counts
; { }
* Routines expanded by inline.
bcopy(from
, to
, len
) caddr_t from
, to
; unsigned len
; { }
bzero(base
, count
) caddr_t base
; unsigned count
; { }
blkclr(base
, count
) caddr_t base
; unsigned count
; { }
mtpr(reg
, v
) int reg
; { }
mfpr(reg
) int reg
; { return (0); }
setjmp(lp
) label_t
*lp
; { return (0); }
scanc(size
, cp
, table
, mask
)
unsigned size
; char *cp
, table
[]; int mask
;
skpc(mask
, size
, cp
) int mask
; char *cp
; unsigned size
; { return (0); }
locc(mask
, size
, cp
) int mask
; char *cp
; unsigned size
; { return (0); }
_insque(p
, q
) caddr_t p
, q
; { }
_remque(p
) caddr_t p
; { }
ffs(v
) long v
; { return (0); }
imin(a
, b
) int a
, b
; { return (a
< b
? a
: b
); }
imax(a
, b
) int a
, b
; { return (a
> b
? a
: b
); }
unsigned min(a
, b
) u_int a
, b
; { return (a
< b
? a
: b
); }
unsigned max(a
, b
) u_int a
, b
; { return (a
> b
? a
: b
); }
ntohs(s
) u_short s
; { return ((int)s
); }
htons(s
) u_short s
; { return ((int)s
); }
ntohl(l
) u_long l
; { return ((int)l
); }
htonl(l
) u_long l
; { return ((int)l
); }