* Change the argument names to vop_link so they actually make sense.
* Implement vop_link and vop_symlink for all file systems, so they do proper
cleanup.
* Require the file system to decide whether or not linking and unlinking of
directories is allowed, and disable it for all current file systems.
intent for the value of the C_REL constant was 0xc0. Testing has turned
up no adverse effect on tape or disk devices, and in fact this change
apparently makes my 9145 tape work as expected. (!) Closes PRs 1874 and
1971.
* Change the argument names to vop_link so they actually make sense.
* Implement vop_link and vop_symlink for all file systems, so they do proper
cleanup.
* Require the file system to decide whether or not linking and unlinking of
directories is allowed, and disable it for all current file systems.
(Also, remove the cross-device link check, that was moved into the file
systems some time ago.)
* Change the argument names to vop_link so they actually make sense.
* Implement vop_link and vop_symlink for all file systems, so they do proper
cleanup.
* Require the file system to decide whether or not linking and unlinking of
directories is allowed, and disable it for all current file systems.
specific probe function did not specify it. It picks the same address
as mmap() does for a non-fixed map at address 0. See also the comment
around a similar line of code in vm/vm_mmap.c.
- moved disk_busy() call from xdstrategy() to xdc_startbuf()
[prevents disk_unbusy panic when disk is loaded (if no
free IOPBs, xdstrategy() would queue the buffer for pickup
by xdcintr() but xdcintr() would never call disk_busy().
xdc_startbuf() is a better place since all bufs are routed
through here] problem detected by girish@dworkin.wustl.edu,
diagnosed and corrected by me.
- move disk_unbusy() call in xdc_remove_iorq() before the call to
XDC_FREE() [don't want to access a data structure that was just put
on a free list]
[prevents disk_unbusy panic when disk is loaded (if no
free IOPBs, xdstrategy() would queue the buffer for pickup
by xdcintr() but xdcintr() would never call disk_busy().
xdc_startbuf() is a better place since all bufs are routed
through here] problem detected by girish@dworkin.wustl.edu,
diagnosed and corrected by me.
- move disk_unbusy() call in xdc_remove_iorq() before the call to
XDC_FREE() [don't want to access a data structure that was just put
on a free list]
code. Substantially the same code tested on a 5k/240. Should work on a
5k/1xx. Not tested on a MAXINE, where the single unit may break the
PROM-channel-number to driver-channel-number mapping.
parameter parameters shadowing locals. Replace vmapbuf() and vunmapbuf()
with the Alpha-port versions, which are cleaner (use round_page(),
trunc_page(), etc.)
to be passed as well as the fp frame.
FPE<->kernel glue code now builds a trapframe structure for passing in
and out of the post instruction emulation callback.
Signal delivery during FP emulation now works correctly.
* add a new enum decstation_intr_t to trap.c, naming each instrumented
interrupt symbolically, and used to index into intrcnt[]. Change the
model-specific interrupt handlers to use the decstation_intr_t when
updating interrupt counters.
* add instrumentation to the kmin and maxine interrupt handlers.
* fix a bug that counted each hardclock interrupts on the kn02 twice.
The hardcoded mapping from locore names to units is gross; but these
counters will hopefully be useful in identifying interrupt hot-spots
and PPP problems on the 3MIN.
on the size of MI data structures that come before it in the softc.
Chip will not function properly if alignment is wrong. (as per OpenBSD)
Detected and fixed by: Chuck Cranor <chuck@ccrc.wustl.edu>
and Michael L Hitch <osymh@gemini.oscs.montana.edu>
Rename the ioctl asic register and slot macros from ASIC_<xxx> to
IOASIC_<xxx>, to be compatible with the machine-indpendent names in
sys/dev/tc/ioasicvar.h. The pmax code still uses
sys/arch/pmax/pmax/asic.h, as some of the registers and offsets
defined there are not yet defined in sys/dev/tc/ioasicvar.h.
Rename the ioctl asic base-address pointer from `asic_base' to `ioasic_base'.
Use the device address in the attach_args structure, instead of
using the deprecated BUS_CVTADDR macro.
Change the Mach derived asc driver to use "SCSI_PHASE_xxx" instead of
"ASC_PHASE_xxx", as the latest version of the Mach driver does.
Several had: _MACHINE_ICU_H_ -> _NS32K_ICU_H_
cpu.h * Removed definition of cpu_swapout.
* Added definition of cpu_wait.
frame.h * added struct switchframe
icu.h * tweeked ints_off
param.h * More derived constants.
* Alot of things taken over from i386/include/param.h.
pcb.h * Removed pcb_flags (was unused) and pcb_pl.
The current priority level is now stored
in the switch frame by cpu_switch.
pmap.h * Taken over from i386/include/pmap.h.
psl.h * Add USERMODE definition
trap.h * T_INTERRUPT -> T_AST
types.h * Remove __FORK_BRAINDAMAGE
vmparam.h * Taken over from i386/include/vmparam.h.
Added definition of INTSTACK.
clock.c * Removed definition of DELAY.
intr.c * Removed an unneeded $Id:....$
locore.s * Moved some of the low level initialization
code to machdep.c.
* Defined proc_trampoline.
* Changed sigcode to pass scp to SYS_sigreturn.
* Changed copyin/copyout/fu*/su* to take advantage
of the ns32532's dual address instructions.
* Recoded copyinstr/copyoutstr/copystr in assembler.
* Added a new and faster version of bzero.
This makes bzero.s unnecessary.
* Defined suswintr to make profiling work.
* Recoded cpu_switch modelled after the i386
version of cpu_switch.
* Added support for lazy fpu state restore to
cpu_switch.
* Recoded trap handling code to be more readable.
* Added experimental code for single cacheline
invalidation.
machdep.c * Copied over cpu_startup from i386/i386/machdep.c.
* Changed sys_sigreturn to take advantage of the
argument passed by the trampoline code.
* Changed boot to call doshutdownhooks and to store
machine state in case of a panic.
* Changed setregs to clear the fpu registers.
* Recoded low_level_init. It's now called init532.
* cpu_reset: New function, resets the machine.
trap.c * Pulled over from i386/i386/trap.c.
* Added support for lazy saved/restored fpu state.
vm_machdep.c * Removed kstack double mapping by pulling over alot
of code from i386/i386/vm_machdep.c.
* Added support for lazy saved/restored fpu state.
* Moved freeing of process resources from cpu_wait
to cpu_exit.
* Pulled over cpu_coredump, pagemove, vmapbuf and
vunmapbuf from i386/i386/vm_machdep.c.
pmap.c * Pulled over from i386/i386/pmap.c.
genassym.c * Removed old and unused definitions, added new ones.
sys_machdep.c * Moved sys_sysarch from machdep.c to sys_machdep.c.
process_machdep.c * Changed to work without ktack double mapping.
* Changed to work with lazy saved/restored fpu state.
Rename the ioctl asic register and slot macros from ASIC_<xxx> to
IOASIC_<xxx>, to be compatible with the machine-indpendent names in
sys/dev/tc/ioasicvar.h. The pmax code still uses
sys/arch/pmax/pmax/asic.h, as some of the registers and offsets
defined there are not yet defined in sys/dev/tc/ioasicvar.h.
Rename the ioctl asic base-address pointer from `asic_base' to `ioasic_base'.
independent TC support in sys/dev/tc/tc.c and sys/dev/tc/tcvar.h:
* Change the tc autoconfiguration tables to use a struct tc_attach_args
instead of the ad-hoc structure.
* Change all pmax device drivers to use a `struct confargs' that's
assignment-compatible with sys/dev/tc/tcvar.h `struct tcdev_attach_args'.
Devices that can be present on a TC or as ioctl asic/mainbus builtins
use the same `struct confargs'.
* Eliminate the `BUS_CVTADDR()' macros which the pmax port inherited from
an old, now-obsolete sys/arch/alpha snapshot.
* Update the comments and debugging code in interrupt handlers to
be consistent with the machine-independent TC support.
Other commits that overlap the same source files include: re-enabling
clock-tick interrupts earlier, and counting hardclock ticks for vmstat -i.
<sys/dkio.h> is in turn included by <sys/ioctl.h>, much like how
<sys/filio.h> and <sys/sockio.h> are handled. This minimizes changes to
existing sources which use the disk ioctls.
Define DIOCLOCK which is used to lock and unlock the pack.
independent TC support in sys/dev/tc/tc.c and sys/dev/tc/tcvar.h:
* Change the tc autoconfiguration tables to use a struct tc_attach_args
instead of the ad-hoc structure.
* Change all pmax device drivers to use a `struct confargs' that's
assignment-compatible with sys/dev/tc/tcvar.h `struct tcdev_attach_args'.
Devices that can be present on a TC or as ioctl asic/mainbus builtins
use the same `struct confargs'.
* Eliminate the `BUS_CVTADDR()' macros which the pmax port inherited from
an old, now-obsolete sys/arch/alpha snapshot.
* Update the comments and debugging code in interrupt handlers to
be consistent with the machine-independent TC support.
Other commits that overlap the same source files include: re-enabling
clock-tick interrupts earlier, and counting hardclock ticks for vmstat -i.
(1) remove the 'UNSUPP' keyword from the device list,
because it can't be reasonably used (becuase different
devices may be supported on different machines, for
good reason).
(2) enhance pci_devinfo so that class/subclass information
is optional (so pci_devinfo can be used by drivers that
match classes of devices, and want to look up the
devices' names easily).
(3) more known vendors and devices.