Allow for dynamic allocation of interrupt vectors.
COMPAT_RENO removed. Handle memory errors. uap->sigcntxp -> SCARG(uap, sigcntxp)
This commit is contained in:
parent
33bd27fa3c
commit
ae0f1d45d8
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: intvec.s,v 1.11 1995/06/16 15:36:40 ragge Exp $ */
|
||||
/* $NetBSD: intvec.s,v 1.12 1995/11/10 19:05:46 ragge Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994 Ludd, University of Lule}, Sweden.
|
||||
@ -34,10 +34,9 @@
|
||||
|
||||
|
||||
|
||||
#include "vax/include/mtpr.h"
|
||||
#include "vax/include/pte.h"
|
||||
#include "vax/include/trap.h"
|
||||
#include "uba.h"
|
||||
#include "machine/mtpr.h"
|
||||
#include "machine/pte.h"
|
||||
#include "machine/trap.h"
|
||||
|
||||
#define TRAPCALL(namn, typ) \
|
||||
.align 2; namn ## :;.globl namn ;pushl $0; pushl $typ; jbr trap;
|
||||
@ -61,11 +60,11 @@
|
||||
_kernbase:
|
||||
_rpb:
|
||||
/*
|
||||
* First page in memory we have rpb; so that we know where :-)
|
||||
* Second page contain scb, and thereafter uba vectors.
|
||||
* Virtual adress is 0x80000000.
|
||||
* First page in memory we have rpb; so that we know where
|
||||
* (must be on a 64k page boundary, easiest here). We use it
|
||||
* to store SCB vectors generated when compiling the kernel,
|
||||
* and move the SCB later to somewhere else.
|
||||
*/
|
||||
.space 512 /* rpb takes one page */
|
||||
|
||||
INTVEC(stray00, ISTACK) # Unused., 0
|
||||
INTVEC(mcheck, ISTACK) # Machine Check., 4
|
||||
@ -88,7 +87,7 @@ _rpb:
|
||||
INTVEC(resopflt, KSTACK) # chms, 48
|
||||
INTVEC(resopflt, KSTACK) # chmu, 4C
|
||||
INTVEC(stray50, ISTACK) # System Backplane Exception, 50
|
||||
INTVEC(stray54, ISTACK) # Corrected Memory Read, 54
|
||||
INTVEC(cmrerr, ISTACK) # Corrected Memory Read, 54
|
||||
INTVEC(stray58, ISTACK) # System Backplane Alert, 58
|
||||
INTVEC(stray5C, ISTACK) # System Backplane Fault, 5C
|
||||
INTVEC(stray60, ISTACK) # Memory Write Timeout, 60
|
||||
@ -127,22 +126,18 @@ _rpb:
|
||||
INTVEC(strayE4, ISTACK) # Unused, E4
|
||||
INTVEC(strayE8, ISTACK) # Unused, E8
|
||||
INTVEC(strayEC, ISTACK) # Unused, EC
|
||||
INTVEC(strayF0, ISTACK) # Console Storage Recieve Interrupt
|
||||
INTVEC(strayF4, ISTACK) # Console Storage Transmit Interrupt
|
||||
#ifdef VAX750
|
||||
INTVEC(cstrint, ISTACK) # Console Storage Recieve Interrupt
|
||||
INTVEC(csttint, ISTACK) # Console Storage Transmit Interrupt
|
||||
#else
|
||||
INTVEC(strayF0, ISTACK)
|
||||
INTVEC(strayF4, ISTACK)
|
||||
#endif
|
||||
INTVEC(consrint, ISTACK) # Console Terminal Recieve Interrupt
|
||||
INTVEC(constint, ISTACK) # Console Terminal Transmit Interrupt
|
||||
|
||||
|
||||
.globl _V_DEVICE_VEC
|
||||
_V_DEVICE_VEC: .space 0x100
|
||||
|
||||
#if NUBA
|
||||
#include "vax/uba/ubavec.s"
|
||||
#endif
|
||||
|
||||
#if NUBA>4 /* Safety belt */
|
||||
#error "Number of bus adapters must be increased in ubavec.s"
|
||||
#endif
|
||||
/* space for adapter vectors */
|
||||
.space 0x100
|
||||
|
||||
STRAY(0, 00)
|
||||
|
||||
@ -232,7 +227,7 @@ syscall:
|
||||
STRAY(0, 48)
|
||||
STRAY(0, 4C)
|
||||
STRAY(0, 50)
|
||||
STRAY(0, 54)
|
||||
FASTINTR(cmrerr, cmrerr)
|
||||
STRAY(0, 58)
|
||||
STRAY(0, 5C)
|
||||
STRAY(0, 60)
|
||||
@ -286,8 +281,14 @@ hardclock: mtpr $0xc1,$PR_ICCS # Reset interrupt flag
|
||||
STRAY(0, E4)
|
||||
STRAY(0, E8)
|
||||
STRAY(0, EC)
|
||||
|
||||
#ifdef VAX750
|
||||
FASTINTR(cstrint, cturintr)
|
||||
FASTINTR(csttint, ctutintr)
|
||||
#else
|
||||
STRAY(0, F0)
|
||||
STRAY(0, F4)
|
||||
#endif
|
||||
|
||||
FASTINTR(consrint, gencnrint)
|
||||
FASTINTR(constint, gencntint)
|
||||
@ -396,3 +397,7 @@ _intrcnt:
|
||||
.long 0
|
||||
_eintrcnt:
|
||||
|
||||
.data
|
||||
_scb: .long 0
|
||||
.globl _scb
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: locore.c,v 1.8 1995/06/16 15:36:42 ragge Exp $ */
|
||||
/* $NetBSD: locore.c,v 1.9 1995/11/10 19:05:47 ragge Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994 Ludd, University of Lule}, Sweden.
|
||||
@ -47,8 +47,6 @@
|
||||
#include "machine/vmparam.h"
|
||||
#include "machine/pcb.h"
|
||||
|
||||
#define ROUND_PAGE(x) (((uint)(x)+PAGE_SIZE-1)& ~(PAGE_SIZE-1))
|
||||
|
||||
u_int proc0paddr;
|
||||
volatile int cpunumber, *Sysmap, boothowto, cpu_type;
|
||||
volatile char *esym;
|
||||
@ -69,7 +67,12 @@ start(how, dev)
|
||||
register curtop;
|
||||
|
||||
mtpr(0x1f,PR_IPL); /* No interrupts before istack is ok, please */
|
||||
#ifdef COMPAT_RENO
|
||||
|
||||
/*
|
||||
* We can be running either in system or user space when
|
||||
* getting here. Need to figure out which and take care
|
||||
* of it.
|
||||
*/
|
||||
asm("
|
||||
movl r9,_esym
|
||||
movl r10,_bootdev
|
||||
@ -84,15 +87,11 @@ tvo: movl (sp)+,_boothowto
|
||||
movl (sp)+,_bootdev
|
||||
to_kmem:
|
||||
");
|
||||
#else
|
||||
bootdev=dev;
|
||||
boothowto=how;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* FIRST we must set up kernel stack, directly after end.
|
||||
* This is the only thing we have to setup here, rest in pmap.
|
||||
*/
|
||||
/*
|
||||
* FIRST we must set up kernel stack, directly after end.
|
||||
* This is the only thing we have to setup here, rest in pmap.
|
||||
*/
|
||||
|
||||
PAGE_SIZE = NBPG*2; /* Set logical page size */
|
||||
#ifdef DDB
|
||||
@ -121,7 +120,7 @@ to_kmem:
|
||||
mtpr(0,PR_P1LR);
|
||||
mtpr(0x80000000,PR_P1BR);
|
||||
|
||||
mtpr(512,PR_SCBB); /* SCB at physical addr 512 */
|
||||
mtpr(0, PR_SCBB); /* SCB at physical addr */
|
||||
mtpr(0,PR_ESP); /* Must be zero, used in page fault routine */
|
||||
mtpr(AST_NO,PR_ASTLVL);
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: machdep.c,v 1.19 1995/10/07 06:26:15 mycroft Exp $ */
|
||||
/* $NetBSD: machdep.c,v 1.20 1995/11/10 19:05:49 ragge Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994 Ludd, University of Lule}, Sweden.
|
||||
@ -46,6 +46,7 @@
|
||||
*/
|
||||
|
||||
#include "sys/param.h"
|
||||
#include "sys/systm.h"
|
||||
#include "sys/map.h"
|
||||
#include "sys/proc.h"
|
||||
#include "sys/user.h"
|
||||
@ -130,7 +131,6 @@ cpu_startup()
|
||||
vm_size_t size;
|
||||
extern int cpu_type, boothowto, startpmapdebug;
|
||||
extern unsigned int avail_end;
|
||||
extern char *panicstr;
|
||||
|
||||
/*
|
||||
* Initialize error message buffer.
|
||||
@ -303,7 +303,7 @@ allocsys(v)
|
||||
return v;
|
||||
}
|
||||
|
||||
int dumplo = 0;
|
||||
long dumplo = 0;
|
||||
|
||||
dumpconf()
|
||||
{
|
||||
@ -340,7 +340,9 @@ cpu_sysctl()
|
||||
return (EOPNOTSUPP);
|
||||
}
|
||||
|
||||
setstatclockrate()
|
||||
void
|
||||
setstatclockrate(hzrate)
|
||||
int hzrate;
|
||||
{
|
||||
panic("setstatclockrate");
|
||||
}
|
||||
@ -366,7 +368,7 @@ sys_sigreturn(p, v, retval)
|
||||
struct sigcontext *cntx;
|
||||
|
||||
scf = p->p_addr->u_pcb.framep;
|
||||
cntx = uap->sigcntxp;
|
||||
cntx = SCARG(uap, sigcntxp);
|
||||
|
||||
/* Compatibility mode? */
|
||||
if ((cntx->sc_ps & (PSL_IPL | PSL_IS)) ||
|
||||
@ -481,8 +483,6 @@ int waittime = -1;
|
||||
boot(howto)
|
||||
int howto;
|
||||
{
|
||||
extern char *panicstr;
|
||||
|
||||
if ((howto & RB_NOSYNC) == 0 && waittime < 0) {
|
||||
waittime = 0;
|
||||
vfs_shutdown();
|
||||
@ -536,7 +536,7 @@ netintr()
|
||||
}
|
||||
#endif
|
||||
#if NPPP > 0
|
||||
if (n & (1 << NETISR_PPP)) {
|
||||
if (netisr & (1 << NETISR_PPP)) {
|
||||
pppintr();
|
||||
}
|
||||
#endif
|
||||
@ -553,7 +553,7 @@ machinecheck(frame)
|
||||
|
||||
dumpsys()
|
||||
{
|
||||
extern int dumpdev, dumplo;
|
||||
extern int dumpdev;
|
||||
|
||||
msgbufmapped = 0;
|
||||
if (dumpdev == NODEV)
|
||||
@ -597,7 +597,9 @@ fuswintr()
|
||||
panic("fuswintr: need to be implemented");
|
||||
}
|
||||
|
||||
suibyte()
|
||||
suibyte(base, byte)
|
||||
int byte;
|
||||
void *base;
|
||||
{
|
||||
panic("suibyte: need to be implemented");
|
||||
}
|
||||
@ -711,3 +713,11 @@ ns_cksum()
|
||||
{
|
||||
panic("ns_cksum");
|
||||
}
|
||||
|
||||
cmrerr()
|
||||
{
|
||||
switch (cpunumber) {
|
||||
case VAX_750:
|
||||
ka750_memerr();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user