Commit Graph

297 Commits

Author SHA1 Message Date
mycroft ec253b6315 Use __builtin_next_arg(). Fixed PR 6862. 1999-01-22 14:14:32 +00:00
ragge bef0af5311 Allocate (almost) all interrupt vectors dynamically. Simplifies much
work when adding support for new machines and devices.
1999-01-19 21:04:47 +00:00
chuck bef8ae1103 MNN is no longer optional 1999-01-16 20:49:12 +00:00
bouyer f20d50fae4 Add byte_swap.h here too. 1999-01-16 02:31:54 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
ragge d0e7a99a8a Giant change: NBPG now set to 4k and CLSIZE == 1 for vax. This change
made a whole bunch of annoying bugs disappear; mostly depending on
bad use of NBPG in non-MD code. The VAX port was the only port that
used this historical "feature".

The CL* macros should probably go away totally, there is no reason
at all to keep them.
1999-01-01 21:43:17 +00:00
kleink 1b6a24c1d4 Support for compound statements enclosed in parenthes to appear as
expressions is a GNU C extension; mark as such them with __extension__ to
suppress portability warnings.  Addresses kern/3562 and misc/6185, as suggested
by Dave Sainty <dave@dtsp.co.nz>.
1998-12-16 11:11:02 +00:00
thorpej da572a137f Argh, fix the ANSI CPP version of the a.out WARN_REFERENCES(). 1998-12-02 21:16:46 +00:00
thorpej a6f7e0c05a Implement WARN_REFERENCES(). 1998-12-02 00:58:42 +00:00
ragge 6c5df58799 Protect against multiple inclusion. Struct needs at least one argument. 1998-11-29 15:06:02 +00:00
ragge 015d31ae8d - Save R/M bits after a page is unmapped.
- Keep track of mapping count (for statistics).
- vm_offset_t -> vaddr_t/paddr_t.
- Move away counting of available memory.
1998-11-29 14:55:04 +00:00
ragge f07a586dc6 the btoc/ctob/btop macros must use CLBYTES, not NBPG. How this should
work in the long run is an open issue; some parts must be reworked
in a MI way.
1998-11-29 14:48:51 +00:00
ragge b6158fa5e3 EGCS fixes. Implement htons as a C macro instead of asm; generates as
good code as the asm implementation _and_ can be optimized.
1998-11-07 17:22:58 +00:00
matt 4cbbe0abff Latent support for revamped "local bus" support. 1998-10-27 21:18:52 +00:00
matt a9a911bdba Add .type pseudo-ops needed for shared libraries. 1998-10-15 06:01:11 +00:00
matt 1163f713bb Make DBL_MIN and DBL_MAX makes limits.h (otherwise CPP complains when
building xlint).
1998-10-10 02:13:55 +00:00
matt 832a061bca Fix some old mistakes when I originally committed this. 1998-10-09 06:20:06 +00:00
thorpej d681cf055a configure() prototype is in <sys/device.h> 1998-10-06 20:50:15 +00:00
matt 75f5ffdf21 Change backplace0 to mainbus0 (for consistency with other ports).
Remove unused function protocols from ka410.h and ka43.h
Fix some ka46 missing references
1998-10-06 04:04:30 +00:00
thorpej 5006dbf868 cpu_set_kpc() prototype is already in <sys/systm.h>. 1998-10-05 22:11:15 +00:00
christos cfd3302aa1 Need more room for signal mask 1998-10-01 19:00:06 +00:00
ragge 6530a14556 Typo. 1998-09-30 18:40:04 +00:00
thorpej b9a131261c Define the new sigcontext structure. 1998-09-17 04:54:51 +00:00
cgd 5fa7eee1ff don't define __BUS_SPACE_COMPAT_OLDDEFS by default. As stated in
bus_space(9), if drivers want it (they shouldn't; easy to convert) they
can define it right before including bus.h.  There's been a release since
the interfaces were (slightly) changed, and no code in the source tree
uses the old interfaces as far as I can tell.
1998-08-30 23:40:14 +00:00
ragge 218681f3e5 Kernel stach should be 4K, not 32K. Increase MCLSHIFT to 11.
Remove ovbcopy().
1998-08-25 17:35:23 +00:00
ragge e727d1e031 Must #define __warn_references if not GNUC. 1998-08-22 12:12:38 +00:00
ragge b3574d3923 VAX logical page size increased to 4k. 1998-08-21 13:41:09 +00:00
matt 5232b66bd5 Initial steps to getting the VAX to use the MI driver framework. 1998-08-18 23:55:00 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
ragge 2c639fb882 Cache and microsecond clock resolution on KA46. 1998-08-11 17:52:57 +00:00
ragge 972b94efc4 Basic support for VS4000/60. 1998-08-10 14:31:07 +00:00
ragge 8fdb1c8ebe Lots of kernlib functions rewritten as inline macros. 1998-08-08 11:18:32 +00:00
kleink 546365a27e _POSIX_SOURCE -> _POSIX_C_SOURCE 1998-08-06 11:25:04 +00:00
mycroft da2e61d160 Delint. 1998-07-27 13:55:32 +00:00
thorpej d47ea67c1f Define one page free list, and put all pages on it. 1998-07-08 04:43:18 +00:00
ragge 7b2ca7e1ba RPB number for SGEC Ethernet controller (ze). 1998-07-01 09:37:11 +00:00
ragge fecd3f54fc Expand kmem map. 1998-06-20 18:47:33 +00:00
kleink 1fbd0b3749 GC the unused `physadr' type, which was not able to hold a complete physical
address on 2 architectures anyhow.  Also, move the definition of the `label_t'
type inside _KERNEL protection, since it is specific to the in-kernel
setjmp()/longjmp() implementations.
1998-06-14 20:09:22 +00:00
cgd 651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
ragge b25b5bddd1 #ifdef _KERNEL whole this file. 1998-06-09 14:03:24 +00:00
ragge 60530637e4 Enable use of secondary cache, if present. 1998-06-07 18:34:09 +00:00
kleink a97fc2f180 If any of _ANSI_SOURCE, _POSIX_C_SOURCE or _XOPEN_SOURCE are defined, don't
provide any identifiers other than sig_atomic_t.
1998-05-25 20:59:01 +00:00
ragge 9251293f18 Remove unnecessary code for interrupt vector handling. 1998-05-22 09:49:07 +00:00
ragge 9aea445d54 Remove the ancient kernel-stack area at top of P1 region. Make PMAP_NEW
almost work. Also Wall cleaning.
1998-05-03 13:02:22 +00:00
thorpej 1686aca01d Pull in opt_gateway.h as appropriate. 1998-04-29 23:11:00 +00:00
kleink a53c1863fe Provide definitions for intptr_t and uintptr_t, signed resp. unsigned integral
types large enough to hold any pointer.
1998-04-27 17:39:10 +00:00
ragge eaeee62af2 Wall cleaning. 1998-04-13 12:10:26 +00:00
ragge cf02ad2bc9 Add support for QDSS graphic console. Code originated from 4.4BSD,
ported to NetBSD by Boris Gjenero <bgjenero@undergrad.math.uwaterloo.ca>
1998-03-21 10:02:39 +00:00
ragge 8e2874bf64 Support for UVM on VAXen. 1998-03-02 17:00:00 +00:00
mycroft 5197bf8085 Minor changes. 1998-02-18 10:55:48 +00:00
mycroft f0a5dd43ce Multiple-inclusion crap, correct precision of DBL_*, etc. 1998-02-18 10:54:10 +00:00
cgd 3bbb7f7d45 Move pmap_map() function definition to MD headers, as appropriate. It's
an internal function, and the VM system shouldn't try to prototype it.
(Note that some ports _don't_ prototype it.)
1998-02-18 02:05:32 +00:00
ragge a355d0bc1b Re-implement page reference bit emulation by using the (otherwise unused)
valid bit. This is faster than the "unmap all" solution that were described
in that Mach paper _and_ it eliminates the need for checking the wired bit.
As a result of this; swapping started working again on vax :-)
1998-01-31 12:17:34 +00:00
ragge eda1eecede Remove __BROKEN_INDIRECT_CONFIG and change all drivers to use
config_search instead.
1998-01-24 14:16:11 +00:00
ragge afb1a37379 Fix page size initialisation. 1998-01-18 22:07:50 +00:00
ragge 37f6125fdd Garbage-collect unnecessary functions. Don't have blkcpy/blkclr
as inline.
1998-01-18 22:06:01 +00:00
perry 6f57e5c573 multiple include protect machine/limits.h, fixes pr 4473 (from Mika Nystrom) 1998-01-09 22:23:44 +00:00
thorpej b9f1b716f3 Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
1998-01-03 01:12:59 +00:00
thorpej 172a9381b6 - Remove the PCB pointer from the pmap structure. Instead, store the
page {0,1} base and length registers in the pmap structure.  They will
  be loaded in to the PCB when the process's address space is activated
  by way of pmap_activate().
- Remove pmap_pinit() macro; it's now a real function.
- Prototypes for pmap_pinit(), pmap_activate(), pmap_deactivate().
1998-01-03 00:28:43 +00:00
kleink 66c2794142 Add _BSD_SUSECONDS_T_ and _BSD_USECONDS_T_; do some space vs. tab formatting
cleanup
1997-11-23 20:20:53 +00:00
thorpej 0b04d28454 Mark uses of long long with /* LONGLONG */ for lint. From
Chris Demetriou <cgd@pa.dec.com>.
1997-11-05 04:36:08 +00:00
thorpej cc1f5b65c9 asm -> __asm__ 1997-11-05 04:23:35 +00:00
thorpej 4730a8cbec Bug fixes and cleanup from Chris Demetriou <cgd@pa.dec.com>:
- fix _C_LABEL so that it actually works.
- make __RENAME use _C_LABEL.
- fix __RENAME so that it expects an unquoted argument.
- fix __indr_reference and __warn_references so that they
  supply their own final semicolon.
- define __warn_references to nothing if not GNU C (required
  by the way it's used).

The __warn_references semicolon change has to be made
so that __warn_references can be defined into nothing.
(A ; all by itself isn't a great idea.)  The __indr_reference
change was made for consistency.
1997-11-04 23:09:23 +00:00
ragge fd48076569 Use genassym for the first time in vax port history. Rewrite cpu_exit,
cpu_switch, setrunqueue and remrunqueue in assembler for efficiency.
1997-11-03 20:00:17 +00:00
ragge ae27edc757 Major rewriting, optimization and simplifying of the pmap code:
- Map in all physical memory first in system space. This reduces
  pmap_copy_page() and pmap_zero_page to 3 resp. 2 instructions.
- Have fized position user page tables. Makes the pv_table smaller
  and all reverse references faster (and simpler).
- Remove the wiring code. Nobody doesn't even know what a DR32 is anymore.
- Simulate page reference bit by setting page invalid, as suggested by
  Rich Draves in a paper for 1991 Mach Usenix Symposium.

This reduced the time spent in the pmap module to between 70-75% of
the previous; and made process startup _much_ faster.
1997-11-02 14:25:19 +00:00
ragge 84f5dc2404 Fix clearing of redundant restart flag; CPU specific.
Also clean up a bit.
1997-11-02 14:07:07 +00:00
thorpej 665f7d1a6e Implement __RENAME() in <machine/cdefs.h> 1997-10-22 05:20:32 +00:00
ragge efa4c7c48e MSGBUFSIZE must be in CLBYTES, not NBPG. Also expand it to 4 * CLBYTES. 1997-10-19 20:48:47 +00:00
bouyer 6ab3092b11 Add byte-swapping functions (bswap16, bswap32, bswap64) to libkern.
Only assembly version for i386 bswap16 and bswap32 for now (bswap64 uses
bswap32). Contribution of assembly versions of these are welcome.
Add byte-swapping of ext2fs metadata for big-endian systems.
Tested on i386 and sparc.
1997-10-09 15:42:19 +00:00
leo d4713d24c2 Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
1997-09-19 13:52:37 +00:00
ragge cd0d651d0f delay() must be protected by #ifdef _KERNEL. 1997-08-05 13:28:51 +00:00
ragge 23e157b82b Handle XFC instruction faults. 1997-07-28 21:48:33 +00:00
ragge ab4412faad Actually do 'halt' or 'reboot' on MicroVAX. 1997-07-26 10:12:40 +00:00
perry ad1710ce1e update comment from 1981 on memory and disk prices -- pr-2754 from Curt Sampson 1997-07-12 16:18:36 +00:00
ragge 759763742b Remove __VM_PMAP_HACK. 1997-07-06 22:38:22 +00:00
thorpej 0404c01c46 #define DB_AOUT_SYMBOLS 1997-06-26 01:26:56 +00:00
ragge 9412f1c4fc Some new definitions for different boot devices. 1997-06-13 08:24:09 +00:00
mrg dc6a98e92c bring mrg-vm-swap2 onto mainilne. 1997-06-12 15:09:23 +00:00
ragge 2492a42479 System statistics fixes. From Johnny Billquist (bqt@update.uu.se). 1997-06-07 12:15:27 +00:00
gwr e2a58b69f7 Add #define __VM_PMAP_HACK as a temporary measure. 1997-05-16 21:35:30 +00:00
ragge e3a104cb1f Oops, I forgot to check this file in after clock changes. 1997-05-04 19:13:33 +00:00
ragge df9ea3ac75 Updates to KA43 (VS3100/76) support by Bertram Barth. 1997-04-18 18:53:38 +00:00
ragge 1d90a0a507 Add definitions for DEC HW device numbers. 1997-03-15 15:09:40 +00:00
ragge b5b674f227 Do not use inline functions in boot blocks. Some CPUs doesn't have
all instructions.
1997-03-15 15:08:23 +00:00
ragge b64bca2999 Fixed bug that caused d partition being treated as c.
RAW_PART is 2, not 3.
1997-03-09 15:55:58 +00:00
fvdl 115b6d92fa Define ALIGNED_POINTER 1997-02-24 23:16:53 +00:00
ragge e86bc96653 Basic change to cpu-config code. This will make support of new
cpu types much easier.
1997-02-19 10:04:09 +00:00
ragge c3aeacf957 unsigned -> long to match ddb change. 1997-02-16 20:37:29 +00:00
ragge e7d1921239 Remove bogus prototypes. 1997-02-12 17:58:56 +00:00
ragge f5f92a31ca Walk a step closer to more intelligent User PTE handling. 1997-02-12 17:52:59 +00:00
ragge 2bb5ceb3e0 Improve sub-type identification of the CVAX CPU, for later cache handling. 1997-02-12 17:50:36 +00:00
gwr ea3925f508 FIXUP_PC_AFTER_BREAK now takes an arg of type db_regs_t * 1997-02-06 21:16:28 +00:00
thorpej fc9c10afb7 Update prototypes to match new calling convention of functions that
find the boot device.
1997-01-31 02:11:51 +00:00
ragge 3026c5e35e Put in another external declaration. 1997-01-11 11:46:43 +00:00
ragge 7bf599379e Prototype change of scanc needs change here also. 1997-01-11 11:07:52 +00:00
ragge f98e31628a #define MAXBSIZE to some nice value. 1997-01-11 11:06:17 +00:00
cgd 96acdadef7 First step inn removing config_scan() and the hacks that gave devices
on indirect-config busses a (permanent) softc that they could share
between 'match' and 'attach' routines:

Define __BROKEN_INDIRECT_CONFIG so that old autoconfiguration
interfaces are used, until drivers are converted to use the new
interfaces (actually, converted back to use the _older_ interfaces)
which prohibit indirect configuration devices from receiving a softc
in their match routine that they can share with their attach routine.
1996-12-05 00:13:47 +00:00
jtc 9da5f60715 PROF -> GPROF 1996-11-30 02:48:57 +00:00
jtc 16b48272c4 Define _BSD_CLOCKID_T_ and _BSD_TIMER_T_ 1996-11-15 22:38:45 +00:00
christos 16b74d2c00 use in_addr_t and in_port_t 1996-10-13 03:28:00 +00:00
cgd 472889f8e4 moved to aout_machdep.h (via repository copy) 1996-10-08 12:57:37 +00:00
ragge 1c367d4761 Modify bus code arguments. Cleanup. 1996-08-20 14:19:41 +00:00
ragge caff7b03d4 Numerous changes to be able to put Bertram Barth's VAXstation support in.
(Some) Support for VAXstation 2000/MicroVAX 2000, VAXstation 3100/76.
1996-07-20 17:58:12 +00:00
ragge 7ac59ffe68 Reworked time handling; now also handles clock chip CPUs correctly. 1996-07-20 17:35:41 +00:00
ragge 5b0992267c Support for VAX8200; the ka820/ka825 CPUs. 1996-07-20 17:33:06 +00:00
ragge a5b04afcd8 Automatic changing of root device after boot now works. 1996-07-11 19:33:50 +00:00
ragge 02d0803c80 Add spl4 - spl7 macros, easy to use when playing with buses. 1996-07-10 23:51:08 +00:00
cgd 352d972c94 locc() is unused. Remove it from the machine-independent kernel interface. 1996-06-10 15:33:33 +00:00
ragge 7cbd855ad6 Fixed all (proto)type errors. Fixes PR 2377. 1996-05-19 16:43:02 +00:00
ragge a24af7a7c2 Added prototypes to everything. Made all files compile with -Wall. 1996-04-08 18:32:26 +00:00
ragge b7cf2432a0 Fix type clashes. 1996-03-17 22:44:48 +00:00
jtc 2ce5f1478b Add _BSD_WINT_T_ definition so we can handle wint_t type added in NA1. 1996-03-16 01:31:45 +00:00
ragge f01a5dd8cc We lost declaration of kernel_pmap_store somewhere, put it back. 1996-03-09 23:39:51 +00:00
ragge 6e51b1e47e Support for VAX 8600/8650 added. Works with lots of Unibus adapters,
and will probably work with Massbus adapters as well. (Not tested,
but it's the same code as for 11/780). Ubareset's may cause crashes
on 8600 also like 11/780, but they are more uncommon. No support
for console RL02 yet, but it's likely to come.
1996-03-07 23:22:34 +00:00
cgd 18ec26aa21 add _MACHINE and _MACHINE_ARCH, which are like MACHINE and MACHINE_ARCH,
execpt without quotes.  meant to be __CONCAT()ted for easy #includes
of machine-dependent headers for MI code (e.g. for the MI ISA/EISA/PCI/TC
bus code).
1996-03-04 05:04:10 +00:00
ragge c22fc0bce4 Enable label_t. 1996-03-03 11:21:31 +00:00
ragge 5d89814116 Changes due to 11/780 support. Raise splimp() to BR7. 1996-03-02 14:27:52 +00:00
cgd 1c5d7babe5 Clean up tabbing/spacing in defns of MACHINE, MACHINE_ARCH, and MID_MACHINE. 1996-03-01 23:30:08 +00:00
ragge df5a5e9485 Remove __FORK_BRAINDAMAGE, and the reason to why it was there. 1996-02-24 15:17:35 +00:00
ragge 2294cbd022 Fixed bug causing DMA to user stack from Massbus disks to give segfaults. 1996-02-23 17:54:33 +00:00
ragge 5025b0f9c9 Definition file for RSP (Radial Serial Protocol) used by DECtape II. 1996-02-17 18:14:50 +00:00
ragge 4cafd3d7d2 PAGE_SIZE should be PAGE_SHIFT. Really ugly bug! 1996-02-11 13:46:23 +00:00
ragge 26d151d2bb Prototype for delay(). 1996-02-11 13:45:37 +00:00
mycroft 5d668ff961 ASSEMBLER -> _LOCORE 1996-02-02 19:08:33 +00:00
mycroft 9d9a70a5a2 Fix #includes. 1996-02-02 18:05:36 +00:00
mycroft 88e512b693 LOCORE -> _LOCORE 1996-02-01 22:28:24 +00:00
ragge 348b7f3d87 Remove PSL_ALLCC definition. Was commented out anyway. 1996-01-28 12:32:21 +00:00
ragge 1bc66055fb Add uvtopte() macro, to get user pte address easy. 1996-01-28 12:31:24 +00:00
ragge 7a489b8529 Change struct trapframe to also contain stackpointer. 1996-01-28 12:30:13 +00:00
ragge 84c675c572 Change void* to struct pcb* for page table pointers. 1996-01-28 12:27:19 +00:00
ragge 0c5975cdd3 Changed to work correctly with both K&R and ANSI cpp. 1996-01-06 18:37:35 +00:00
ragge 1dab4709a3 Changes requested by Charles Hannum. 1995-12-31 15:05:19 +00:00
ragge d9c6db08da Don't declare _mcount as static, gcc will optimize it away then. 1995-12-31 12:15:58 +00:00
ragge d987547daf An '&' missing in splx macro; causing that sometimes didn't
the interrupt level get set.
1995-12-30 21:37:31 +00:00
mycroft cd8fe86bcb Make the type of __builtin_va_list a long. 1995-12-26 01:16:24 +00:00
mycroft 0c00214737 Use __builtin_va_alist. 1995-12-26 00:19:09 +00:00
mycroft fa887628d8 Stylistic changes. 1995-12-25 23:15:31 +00:00
mycroft d1de691efb Stylistic changes. 1995-12-25 22:22:02 +00:00
mycroft 0199e002ad Update for GCC 2.7, and fix bugs. 1995-12-25 21:41:08 +00:00
ragge 56ad9078eb MicroVAX III support added. 1995-12-13 18:57:57 +00:00
ragge cf6e6c6ed4 waitabit() macro removed. 1995-12-13 18:56:01 +00:00
ragge 6ab4fc540f Prevent against multiple includes. 1995-12-13 18:55:27 +00:00
ragge dc9996e83e A complete SCB struct included. 1995-12-13 18:54:56 +00:00
ragge 4f22cd5a71 Type change: u_int hoppaddr to void (*hoppaddr)(); 1995-12-13 18:54:03 +00:00
ragge 902fd4cddf PG_SHIFT -> PGSHIFT. 1995-12-13 18:53:15 +00:00
mycroft 292120bf63 Define __FORK_BRAINDAMAGE. 1995-12-09 04:41:41 +00:00
ragge 31f199d4e6 Added earlier forgotten MACHINE_ARCH, pointed out by Arne Henrik Juul.
Cleaned up a bit.
1995-12-04 22:32:53 +00:00
ragge bfc2ca40b8 Function call definition on stack. (calls frame) 1995-11-12 15:07:30 +00:00
ragge 763fd0a011 Macros for locore mapping added. 1995-11-12 14:41:41 +00:00
ragge d96cac4b8e pt_entry_t now struct pte. cleanup. 1995-11-12 14:40:26 +00:00