kleink
e695f72a2e
Add <machine/int_types.h>, which provides namespace-pure definitions
...
of exact-width integer types.
2000-06-26 15:42:16 +00:00
simonb
889c658b5b
Change the kernel mmap interface so that the offset to map is an
...
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".
Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
ragge
bd66c9dafc
Make the HDC9224 MFM device driver up-to-date; has been not-working
...
since NetBSD 1.2 (!) It also uses interrupts instead of polling now.
Also fix the DMA area locking between SCSI and MFM disks.
Still missing - floppy support.
2000-06-25 16:00:43 +00:00
kleink
133ea38323
Add a WEAK_ALIAS() macro.
2000-06-23 12:18:45 +00:00
matt
15511d1dcc
Move COFF_LDPGSZ to ibcs2_machdep.h. Fix nmagic loader to deal with
...
subpage mappings.
2000-06-21 05:45:15 +00:00
ragge
8ea974e809
Put all cputype definitions in one file instead of separate files.
...
This was becoming unmaintainable.
2000-06-12 11:13:14 +00:00
matt
7f40194cbc
Make spl0 & spllowersoftclock return void.
2000-06-11 23:33:37 +00:00
matt
0dc4d9cf90
export bus.h
2000-06-11 23:32:55 +00:00
ragge
e7aefcd7ae
Allow printf's from slave CPUs by stealing the v_putc function.
...
Easier than expected because the printout lock is hold in the higher levels.
2000-06-11 07:50:11 +00:00
ragge
b826825917
Code to spin up other CPUs on a VAX 8200 system.
...
Haven't solved the printf() problem yet, though.
2000-06-10 14:59:38 +00:00
matt
2f85fe7adb
Adjust to new evcnt stuff.
2000-06-05 00:09:17 +00:00
matt
ac621687a3
Add coff_machdep.h (now need due to the recent exec_coff changes).
2000-06-04 21:06:18 +00:00
matt
a8a863d4ea
more cleanup. use __builtin_frame_address(0) instead of our funky
...
FRAMEOFFSET macro. define an interrupt call frame and use that directly
instead of some magic offsets. Make boot autoconf.o use the current
reality.
2000-06-04 19:30:14 +00:00
ragge
c46119030a
Forward declaration of `struct proc'.
2000-06-04 18:27:39 +00:00
ragge
1e19df4bfd
Clean up the sbi_attach_args struct and put in tag/handle.
...
Move a nice macro to scb.h.
2000-06-04 17:58:19 +00:00
matt
0bd304e528
More event counter stuff. Plus a little cruft cleanup while doing it.
2000-06-04 06:16:53 +00:00
matt
7c24069048
Add extra argument to scb_vecalloc (a struct evcnt *)
...
Move ivec_dsp from trap.h to scb.h
Add interrupt counting to asc, le, ze, ncr, dz interrupts.
add common support for counting interrupts to cnm_idisp so
it can be done very efficiently.
2000-06-04 02:19:24 +00:00
matt
baaa1154d5
no need to raise ipl since the definition of softintr_schedule is that
...
it's from at or above softipl.
2000-06-02 22:14:10 +00:00
matt
b8cccfafd8
Move spl macros from <machine/param.h> to <machine/intr.h>
...
Fix botch on my part and make the IPL_* match reality on VAX.
Redefine spl macro using the symbolic IPL_ instead of being hardcoded.
Move schedsoftnet, schedsoftclock from <machine/cpu.h> to <machine/intr.h>
Add a _setsirr macro for schedsoft*.
Add softintr function and framework.
2000-06-02 21:47:02 +00:00
matt
fb6a3dfb64
Include offsets in vs_cpu register in comments.
2000-06-02 21:39:54 +00:00
matt
22635242c9
Eliminate booted_from. extern'ed booted_device (for raidframe). nothing
...
outside autoconf.c in sys/arch/vax needs to deal with booted_device).
2000-05-31 23:55:51 +00:00
ragge
992002c2be
Use the cpu_info struct to store cpu-specific data in the same way in
...
both uniprocessor and multiprocessor environments. Use the otherwise
unused internal CPU register SSP to store the cpu_info pointer.
The macros curcpu(), curproc, cpu_number() and need_resched() are now the
same in both uniprocessor and multiprocessor environments.
2000-05-29 20:00:55 +00:00
ragge
8293b12111
Write kvtopte() and kvtophys() as inline assembler. GCC create quite bad
...
code for them, and they are only 2-3 instructions each if written by hand.
2000-05-27 21:17:06 +00:00
ragge
98d0ab9e1c
Use machine instead of vax in include path.
2000-05-27 16:44:14 +00:00
ragge
99baa81ae7
Rewrite cpu_fork(), it now looks like and works as other ports' cpu_fork()
...
(calling child_return() etc...). Have fun, Jason!
2000-05-27 16:33:04 +00:00
matt
fa1474c2eb
This need <sys/sched.h> to compile.
2000-05-27 03:23:22 +00:00
thorpej
a7d0570e67
First sweep at scheduler state cleanup. Collect MI scheduler
...
state into global and per-CPU scheduler state:
- Global state: sched_qs (run queues), sched_whichqs (bitmap
of non-empty run queues), sched_slpque (sleep queues).
NOTE: These may collectively move into a struct schedstate
at some point in the future.
- Per-CPU state, struct schedstate_percpu: spc_runtime
(time process on this CPU started running), spc_flags
(replaces struct proc's p_schedflags), and
spc_curpriority (usrpri of processes on this CPU).
- Every platform must now supply a struct cpu_info and
a curcpu() macro. Simplify existing cpu_info declarations
where appropriate.
- All references to per-CPU scheduler state now made through
curcpu(). NOTE: this will likely be adjusted in the future
after further changes to struct proc are made.
Tested on i386 and Alpha. Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
2000-05-26 21:19:19 +00:00
matt
37be92c0d1
Add loadfile() support. soon to be needed by bootblocks.
2000-05-25 20:25:22 +00:00
matt
88352edc02
Add prototype for findcpu in _STANDALONE.
2000-05-22 15:55:52 +00:00
matt
5ece00b8bc
Obviously we don't use the symbol, but we might give it the correct value.
...
We support up to NVAX platforms.
2000-05-22 15:40:06 +00:00
matt
2d153651e5
Preliminary support for the VS4000/90 SGMAP. Needed for SCSI. Does not
...
quite work right yet.
2000-05-17 21:22:18 +00:00
ragge
0028464ae3
Add 4000/105 and VXT2000. From Michael Kukat.
2000-05-08 17:49:07 +00:00
thorpej
855b79db92
Let each platform typedef the new __cpu_simple_lock_t, which should
...
be the most efficient type used for the atomic operations in the
simplelock structure, and should also be __volatile.
2000-05-02 04:41:04 +00:00
ragge
a5a1a12d83
#define __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED.
2000-05-01 12:09:32 +00:00
thorpej
dc8f3d3b3f
Oops, install <machine/lock.h> on these systems, too.
2000-04-29 03:45:42 +00:00
thorpej
f51470a514
Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
...
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED. These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case). Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.
These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
2000-04-29 03:31:45 +00:00
matt
b7de2c5900
Add lcgreg.h.
2000-04-24 17:09:56 +00:00
matt
7964d80339
Initial definition of registers for VS400 LCG cards. Still needs more.
2000-04-24 17:09:03 +00:00
matt
c10673838a
Extend asc driver to include support for the VS400/9x.
...
Add VS4000/9x support vsbus_dma.c
2000-04-23 16:38:52 +00:00
ragge
dd22df3dc8
Ops, forgot to commit this.
2000-04-22 08:19:49 +00:00
ragge
86d5f2d67d
Add RPB number for VS4000 SCSI.
2000-04-18 20:23:54 +00:00
mhitch
6c0d2ca981
Add some defines gleaned from OpenVMS to enable cache on the 4000/VLC.
2000-04-18 16:23:42 +00:00
matt
9434b7b19e
Add fix for VS4000 SCSI hangs on disk writes. Add a VAX_BUS_DMA_SPILLPAGE
...
and use it in the asc_vsbus driver.
2000-04-10 03:49:56 +00:00
ragge
9b917327ac
Add insqti/remqhi macros. These macros are interlock queue instructions
...
used in multiprocessor systems as well as in uniprocessor environments
with intelligent I/O devices.
2000-04-09 16:37:09 +00:00
minoura
78b105698a
Move dl* function definitions to libc on ELF.
...
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html .
2000-04-02 15:35:47 +00:00
ragge
f9f885519d
First cut of multiprocessor support for vax. Still much to do before
...
other CPUs than the master can spin up.
2000-03-19 14:56:52 +00:00
tron
e86957458a
Install "machineendian_machdep.h".
2000-03-17 22:36:31 +00:00
mycroft
9e21b6555a
In the `MY THAT'S GROSS' department...
...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
2000-03-17 00:09:18 +00:00
mycroft
02905321b2
Foolish consistency. Mainly, always use underscores and sys/endian.h.
2000-03-16 15:09:34 +00:00
drochner
aa1de89bdf
explicitely #include <sys/systm.h> #if BUS_SPACE_DEBUG to get a printf()
...
prototype
2000-03-15 16:44:48 +00:00
kleink
ad7dbd825c
Define ISO C99 (unsigned) long long (min, max) symbols.
2000-03-07 19:33:00 +00:00
matt
e8c7c2f842
add real vmapbuf/vunmapbuf routines. needed for VS4000 SCSI support.
2000-03-07 00:05:59 +00:00
matt
1de30b727b
fix bug in bus_space_subregion
2000-03-05 21:22:48 +00:00
matt
e0df4ffcae
expunge vm_offset_t and vm_size_t.
...
add bus_dma support for the vs4000 dma translation map (sgmap).
enhance the vsbus for the lance to work with it.
remove the sgmap init code from ka46/48/49.c
2000-03-04 07:27:47 +00:00
ragge
918676c04f
Remove __BROKEN_CONFIG_UNIT_USAGE.
2000-02-12 16:00:13 +00:00
thorpej
dded044fc2
Update for the NKMEMPAGES changes.
2000-02-11 19:25:12 +00:00
cgd
7d16ac338c
add __BROKEN_CONFIG_UNIT_USAGE #define, becuase these ports do very
...
wrong things with device configuration data "cf_unit" information.
2000-02-05 00:13:22 +00:00
kleink
82464e46d6
Add a C99-style va_copy macro.
2000-02-03 16:16:06 +00:00
danw
f77befbc84
#define __HAVE_DEVICE_REGISTER on ports that have it, and check for
...
that, rather than a list of architecture defines, in config_attach
2000-02-01 04:01:19 +00:00
tsutsui
b0fbaa33fb
Remove obsoleted macros.
2000-01-26 09:44:10 +00:00
drochner
8eb798e603
define a "BUS_SPACE_MAP_PREFETCHABLE" flag which basically means that
...
device accesses are idempotent (but should not be cached by the CPU)
2000-01-25 22:13:17 +00:00
matt
7b17d59536
Revamp the VAX interrupt handling code. Make it compatible with all the
...
other ports. Clean up some things.
2000-01-24 02:40:28 +00:00
matt
362ae13bea
Add some machine dependent stuff for vax.
2000-01-10 02:33:13 +00:00
matt
5dc0a61485
Add ibcs2_machdep.h and reformat so that adding new includes is a bit easier.
2000-01-10 02:30:33 +00:00
kleink
11e6c54cfc
C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
...
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
1999-12-23 10:15:05 +00:00
ragge
ffbd2c2f5e
CL* discarding.
1999-12-12 14:39:18 +00:00
ragge
9beccd4e88
Detect "Infoserver 1000" also.
1999-12-11 17:55:13 +00:00
matt
65e94f7ef4
close the i386 ibcs2 machdep.h; nothing really machine dependent in it yet.
1999-11-16 00:46:25 +00:00
kleink
522cbf0248
Update to match new SVR4-style definition names in <sys/exec_elf.h>.
1999-10-25 13:55:06 +00:00
ragge
16a09f9b9c
Remove the vmapbuf()/vunmapbuf() routines. They are quite unneccessary
...
on a machine that has MMU for its I/O devices.
1999-10-22 21:14:34 +00:00
ragge
4021578d6e
Add routines to copy to/from a user process from/to the vsbus DMA area.
1999-10-22 21:10:12 +00:00
ragge
ae7e9d1571
Protect against multiple includes.
1999-10-21 20:01:36 +00:00
thorpej
11cae42531
Centralize the declaration and clearing of `cold'.
1999-09-17 19:59:35 +00:00
ragge
fe8a330be5
Styr upp deklarationen av clockchippsparametrarna.
1999-09-06 19:52:52 +00:00
ragge
56f0f92bef
Add some external variables.
1999-08-30 21:18:17 +00:00
matt
82d58cbe82
export elf_machdep.h
1999-08-21 23:35:44 +00:00
matt
741f18b695
Initial VAX ELF32 support (mostly untested). It's checked primarily for
...
testing and archival for now. I don't expect anyone to work with it
since the binutils and gas changes are still pending. But you got to
crawl before you walk.
1999-08-21 19:26:18 +00:00
simonb
3c185af5fd
Include <sys/endian.h> after defining whether where are little- or
...
big-endian. i386, pc532 and vax still include <machine/byte_swap.h>
and define macros for the {n,h}to{h,n}*() functions. mips also
defines some endian-independent assembly-code aliases for unaligned
memory accesses.
1999-08-21 05:53:50 +00:00
simonb
06a92524c2
Include <sys/bswap.h> for function prototypes. i386, pc532 and vax
...
still include <machine/byte_swap.h> and define macros for some of
the bswap*() functions.
1999-08-21 05:39:51 +00:00
thorpej
28fb7c1eb8
Define cpu_number() as discussed on tech-smp.
1999-08-10 21:08:05 +00:00
ragge
bc163ccc30
Clean up all bus handling stuff, it has become a mess the latest years.
...
Add a new bus; "ibus" that is the internal MicroVAX bus.
1999-08-07 10:36:43 +00:00
thorpej
d936f02b0b
Implement priority raising, and use it as appropriate.
1999-08-05 18:48:55 +00:00
thorpej
37554502cf
Correct a comment.
1999-08-05 18:31:06 +00:00
thorpej
eb20bbc780
Change the semantics of splsoftclock() to be like other spl*() functions,
...
that is priority is rasied. Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.
This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).
XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX. This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
ragge
43bbc0f5c7
Protect against multiple includes.
1999-08-03 19:53:23 +00:00
ragge
8f9615d62c
A bunch of changes:
...
- Free pte pages not in use anymore.
- Inline pmap_extract().
- Fix annoying page reference/modify bug. Fixes PR#7858 & PR#7859.
1999-08-01 13:48:06 +00:00
ragge
1647688f0d
Use pmap_steal_memory() for early memory allocation.
1999-06-30 19:31:33 +00:00
ragge
1e7b5cf8ae
Wrong definition of SID for MicroVAX I, from Brian Chase.
1999-06-28 13:13:53 +00:00
ragge
cb57cab9b1
Add macros to round/trunc vax pages.
1999-06-20 00:53:58 +00:00
cgd
7c02d93c04
nuke current definitions provided by __BUS_SPACE_COMPAT_OLDDEFS.
...
I'll do what I can to make new ones soon. 8-)
1999-06-18 04:49:24 +00:00
thorpej
0288ffb53a
pmap_change_wiring() -> pmap_unwire().
1999-06-17 19:23:20 +00:00
thorpej
f5a527bb4e
Remove pmap_pageable(); no pmap implements it, and it is not really useful,
...
because pmap_enter()/pmap_change_wiring() (soon to be pmap_unwire())
communicate the information in greater detail.
1999-06-17 18:21:21 +00:00
ragge
f6d61fb6ad
Add an define for SGMAP.
1999-06-06 19:07:11 +00:00
ragge
d55d0ac4b5
Add some more IPRs for KA670.
1999-06-06 19:06:29 +00:00
ragge
64572c459a
sgmap files, copied from the Alpha port and modified for vax.
1999-06-06 18:58:50 +00:00
ragge
22b5707362
Complete support for VAX 4000/300. From Michael Kukat. (michael@camaronet.de)
1999-06-06 14:23:46 +00:00
ragge
ad1db202f7
bus.h'ify more of the vax code.
1999-05-24 20:10:30 +00:00
ragge
373e7cc828
Rewrite the "emulate page reference bits" code to avoid a bunch of
...
pv_lists traversal and unneccessary page faults.
1999-05-23 23:03:44 +00:00
ragge
539f825799
Better and more understandable way to find out CPU type.
1999-05-23 22:56:53 +00:00
christos
c596c324e3
Define __builtin_*() for lint
1999-05-03 16:30:31 +00:00