Commit Graph

1501 Commits

Author SHA1 Message Date
wiz a9356936b4 seperate -> separate 2001-07-22 13:33:58 +00:00
thorpej babefc5331 Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
ragge 29455521b5 Do more intelligent calculation of KVM size. This reduces the amount of
pre-allocated physical memory significantly.
A 11/750, for example, get 2MB more free (of 14MB), about 12%.
2001-06-30 12:54:33 +00:00
darcy ce0ec1e208 Add System V semaphore resource limits to each GENERIC file that has an
option for System V semaphores.  It appears that there are no overrides
in the code and each file has the following added.

 options    SYSVSEM     # System V semaphores
+#options   SEMMNI=10   # number of semaphore identifiers
+#options   SEMMNS=60   # number of semaphores in system
+#options   SEMUME=10   # max number of undo entries per process
+#options   SEMMNU=30   # number of undo structures in system
 options    SYSVSHM     # System V shared memory

If anyone thinks that this is incorrect for any of these files, please
correct it.

Note - the i386 port was not forgotten.  It was done separately.
2001-06-30 11:00:31 +00:00
ragge 2c4d8265db Panic if page fault on interrupt stack, per request from Jason Thorpe. 2001-06-28 21:54:23 +00:00
matt c12370b691 Don't include -mno-pic on gcc 2.95 2001-06-25 05:12:01 +00:00
lukem da0e06bcd6 remove remnants of np device, per my recent files.vax commit 2001-06-22 16:40:51 +00:00
wiz e2eaa3b87a constraint, not contraint. 2001-06-21 12:15:03 +00:00
thorpej 8eb3b954f1 Don't need to prototype child_return() here, it's in <sys/proc.h>. 2001-06-14 22:56:55 +00:00
lukem 6b358ba879 remove interlan np100 entry as the referenced files don't exist 2001-06-13 06:43:08 +00:00
ragge 3bd0afbc54 Make tracing of stack by frame argument work. 2001-06-12 13:22:06 +00:00
ragge 5335780e31 Support to get into DDB from hardclock interrupts by putting a value in
the RPB wait field.
2001-06-12 13:20:29 +00:00
ragge 8f96f4b21c Fix problem where console interrupts never got enabled after RB_ASKNAME. 2001-06-12 13:18:38 +00:00
ragge 8f68bebb7e Detect 4000/VLC correctly + make halt/reboot work.
From Michael L. Hitch (mhitch@montana.edu).
2001-06-12 11:24:50 +00:00
wiz 40ac848024 Fix various misspellings of compatible/compatibility. 2001-06-11 01:50:48 +00:00
ragge 83e47d5e8d Revision line #1 broke, fixed. 2001-06-10 20:47:49 +00:00
ragge b47f638d85 Check in work done by bjc@openbsd.org, OpenBSD revs 1.4 and 1.5 of the
same file. No other changes, OpenBSD log messages below.

> More EMODD work:
>         - Using CVTDL and subtracting to seperate integer from fraction does
>           not work if the integer is >32 bits long; instead, rearrange the bits
>           into a quadword, use ASHQ to truncate, and then subtract.
>
> Also:
>         - Set the condition codes properly; this fixes the other problem with
>           >32-bit-integer parts in libm by letting modf subtract the fractional
>           part (which *is* a double) to get the integral part in a double.

>         - move the zero checks earlier in the routine
>
>         - instead of 'ret' in zeroexit, use brw goback

> Switch a "BGTR foo" to a "BLSS bar; BRW foo; bar:".  In this case, the
> difference between the BGTR and foo: is too large for a byte displacement.
> as should give an error or at least a warning here, but it doesn't;
> instead it merrily outputs a completely bogus displacement.
> This fixes problems with EMODD on numbers with negative exponents.
>
2001-06-10 20:46:18 +00:00
chs 762bab2606 implement pmap_clear_modify() correctly. 2001-06-07 05:29:13 +00:00
chs ec218acedd make this compile without MULTIPROCESSOR. 2001-06-06 06:29:36 +00:00
chs 8688ff47c8 make this compile without DEBUG. 2001-06-06 06:23:13 +00:00
ragge 32874c14c8 Detect MicroVAX 3100/m80 correctly. From Michael Kukat. 2001-06-05 11:25:11 +00:00
ragge f81f19e7b3 Add rudimentary multiprocessor support for DDB. 2001-06-04 21:37:11 +00:00
ragge 93ece82137 Check for console printf's in spinlocks, per discussion on tech-smp. 2001-06-04 15:37:05 +00:00
ragge 30e020fbaa The beginning of pmap locks. While here, some cleaning and KNF. 2001-06-04 15:36:00 +00:00
ragge 81d993ac3b Add splipi(). 2001-06-04 15:34:57 +00:00
ragge da2e5c43e1 Add IPI_TBIA to flush the translation buffer. 2001-06-04 15:34:15 +00:00
ragge d35f5e00dc Move some locks closer to the important point. 2001-06-04 15:33:07 +00:00
ragge e2f864bf95 Break out the MP-dependent calls. Add definitions for the IPI functions. 2001-06-03 15:12:57 +00:00
ragge d0a8785b5e Add define for IPI vector. 2001-06-03 15:10:34 +00:00
ragge 8d7b76581f Implement spinlocks as subroutines instead of inlines.
Add SPINLOCK_SPIN_HOOK; the VAX has low-priority IPIs like Alpha.
2001-06-03 15:10:11 +00:00
ragge 6e219aa5a7 Add bbssi/bbcci (bit set/clear and branch interlocked) as inline functions. 2001-06-03 15:08:32 +00:00
ragge 1da9a91480 A bunch of fixes:
- Make generic console routines not relying on running on master cpu.
- Add routine to start console transmitter (after IPI).
- Use real IPIs instead of the "console doorbell".
- Add routines cpu_send_ipi()/cpu_handle_ipi().
2001-06-03 15:07:20 +00:00
chs 821ec03ed9 replace vm_map{,_entry}_t with struct vm_map{,_entry} *. 2001-06-02 18:09:08 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
ragge d674a69f7a And now we're running! 2001-05-29 21:55:00 +00:00
ragge 2de1ab0486 Add ci_cpuid.
Change the CLKF_ macros because the idle loop is now running at IPL1.
2001-05-29 21:29:32 +00:00
ragge 3b4d7a2948 Must lock kernel when softclock is called from outside hardclock. 2001-05-29 21:28:14 +00:00
ragge 1cf7a84a88 Add a bunch of locking code for MP systems. 2001-05-29 21:27:25 +00:00
ragge c20a10d57d Call proc_trampoline_mp() after fork in multiprocessor environment. 2001-05-29 21:26:44 +00:00
ragge 6492868388 Change Swtch so that the old process context is stored directly and the
idle loop is on the interrupt stack instead of the last running process'
stack. This is needed to work in a multiprocessor environment.
2001-05-29 21:25:11 +00:00
mrg 3783ca5d30 define _KERNEL_OPT as well as _KERNEL. we will use this in the future to
get kernel "opt_foo.h" headers, rather than _KERNEL && !_LKM.
2001-05-29 02:20:20 +00:00
ragge b7fc0b163a Compare arguments must have correct order, won't work as expected otherwise. 2001-05-27 19:33:20 +00:00
ragge aee2068e10 Don't install machine/loadfile_machdep.h; per PR#12666. 2001-05-27 15:37:06 +00:00
chs 11a9651c8f replace vm_page_t with struct vm_page *. 2001-05-26 21:27:10 +00:00
matt 8db6fcfd51 Move the diagnostic tests with the if. 2001-05-19 23:47:19 +00:00
matt 66d1e28936 Don't compute psuedo header checksum if nxt == 0. 2001-05-19 00:04:56 +00:00
matt c45b32243a Add a VAXANY type. Eventually to used in INSTALL / GENERIC to easily
include support for all VAX platforms
2001-05-16 05:36:53 +00:00
ragge 825165a54a Octal numbers _must_ have a heading '0'! 2001-05-15 18:59:45 +00:00
ragge 74d7e1ecfa Write support for TU58 tapes written. 2001-05-14 14:43:45 +00:00
ragge 73b901c711 Add checksum calculation, busy-wait loops for receive packets and use
correct interrupt levels (spl7). Reading tapes now work reliable.
2001-05-13 21:19:44 +00:00
matt ed4e69766c Add VAX640 2001-05-13 15:37:28 +00:00
ragge 68d0ed5c0c Add bus type. 2001-05-13 15:24:18 +00:00
ragge f0870603cb Remove forgotten VAX_BTYP_690. From Michael Kukat. 2001-05-04 14:13:50 +00:00
matt 1d9ed205f2 change to let make obj work right with MAKEOBJDIRPREFIX and read-only source 2001-05-03 05:23:29 +00:00
ragge 5d8483d12a KA690 is not a Mariah. From Michael Kukat. 2001-05-02 17:35:12 +00:00
matt 2cc76644a2 Use the symtab info given by loadfile in the booter instead of assuming
we know where it is.  This is a requirement for ELF.
2001-05-02 16:05:07 +00:00
matt 504811fa55 Include ELF symbol in DDB is we are an ELF kernel. 2001-05-02 15:59:38 +00:00
matt 62b9bd04b1 Pass the numbers of syms down as well. 2001-05-02 15:33:14 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
matt 4bef52d8d5 Use loadfile with boot commands, not exec. 2001-05-02 06:56:54 +00:00
matt 4414a7f791 Keep around a version of boot with symbols. 2001-05-02 06:56:29 +00:00
ragge 2ea00c4d85 Add ka610, remove TS11. 2001-05-01 13:21:27 +00:00
ragge b07617dece More CPU definitions. From Michael Kukat. 2001-05-01 13:20:35 +00:00
ragge 9ee994852e Use linear memory mapping for MV1. No map registers. 2001-05-01 13:20:02 +00:00
ragge e0a272b2cb Support for MicroVAX 1. 2001-05-01 13:18:27 +00:00
ragge ecf0eb7abd CPU support file for KA610 (MicroVAX I). Very simple. 2001-05-01 13:17:55 +00:00
ragge 68cb5a262d Do not (try to) remap the qbus on MV1. 2001-05-01 13:08:09 +00:00
ragge 362abadb92 Detect 4000/500A, 4000/600A and 4000/705A. Also detect MicroVAX 1. 2001-05-01 11:13:46 +00:00
ragge 1e1a8fa3fd Support for more NVAX types: VAX 4000/705A and (untested) 600A.
From Michael Kukat.
2001-05-01 11:11:47 +00:00
matt 1e70afa5e6 Make the jmp_buf bigger under ELF so it can store a full context. 2001-05-01 04:47:37 +00:00
thorpej cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
matt 79649c917a Move RB_KDB check to after VM is init so that there's an
interrupt stack for DDB to run on.  This makes boot -d work.
2001-04-30 04:26:19 +00:00
thorpej 2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
matt a403ed4939 Fix printing of stack traceback (last argument was always wrong). Use
%#x so that 0s are 0 and not 0x0
2001-04-29 22:17:24 +00:00
kleink fe3c9ceaf7 * Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
  explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
  macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
  intmax_t, pointer-type and size_t arguments.
2001-04-28 15:41:28 +00:00
ragge 0c1fdede08 MD in4_cksum. 2001-04-28 09:38:03 +00:00
ragge 8f8a96a056 Fix a bug so that MD-optimized in4_cksum() now works.
While here; rewrite header checksum calculation in assembler.
2001-04-28 09:36:01 +00:00
ragge ec52ca1e06 Enable the L1 cache on KA640. Problem reported and testing help from
Saku Setala.
2001-04-27 15:02:37 +00:00
kleink 99054d7a6c Add definitions for C99 fastest minimum-width integer types. 2001-04-26 16:25:19 +00:00
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
ragge 2f019a2701 Support for KA681 (4000/500A) from Michael Kukat. 2001-04-24 20:16:36 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
thorpej 1e306aae10 Garbage-collect pmap_bootstrap_alloc(); nothing uses it. 2001-04-23 23:58:09 +00:00
thorpej 55044638aa Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej 69abdbf60c Undo a misguided previous change to the pmap_update() API. 2001-04-22 23:19:26 +00:00
thorpej cfb5c7ed9f Make pmap_virtual_space() a required pmap function, even on platforms
which have pmap_steal_memory().  This is to reduce the API differences
between pmaps that implement pmap_steal_memory() and pmaps which do
not.

Note that pmap_steal_memory() needs to adjust *vstartp and/or
*vendp only if it used addresses within the range provided to UVM
via the pmap_virtual_space() call.  I.e. it is not necessary to do
so in any current pmap_steal_memory() implementation.
2001-04-22 17:22:57 +00:00
thorpej 4738622712 Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
2001-04-22 00:33:59 +00:00
thorpej 15f731ee94 pmap_update() should not be equated with "flush entire TLB", it is
used to process deferred pmap operations.  Since these pmaps don't
defer anything, pmap_update() is a noop.
2001-04-21 17:25:01 +00:00
kleink f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink 739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink c544d84b41 Catch up with ansi.h rev. 1.12: define SIZE_T_MAX and SSIZE_MAX as long
integer constants in ELF environments.
2001-04-15 14:16:08 +00:00
kleink 80ad23a5da Catch up with ansi.h rev. 1.12: define intptr_t and uintptr_t as long
integers in ELF environments, like is done with ptrdiff_t.
2001-04-15 13:38:19 +00:00
kleink a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
kleink 7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
kleink 9133b51cd8 Replace the 'unsigned __COMPILER_INT64__' construct with a new name,
__COMPILER_UINT64__, to be supplied - if such a case is made, it shouldn't
be assumed that the unsigned type-specifier may be applied to it.
2001-04-12 22:01:18 +00:00
thorpej 023e07a194 splimp -> spluba 2001-04-12 19:16:56 +00:00
thorpej c031c366f6 Add spluba(). 2001-04-12 19:16:06 +00:00
thorpej 9b2337e9d8 splimp -> splbio. 2001-04-12 18:34:56 +00:00
thorpej 7a46b74c7b splimp -> splbio. 2001-04-12 06:20:59 +00:00