Commit Graph

1313 Commits

Author SHA1 Message Date
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
thorpej 868dfcb228 Store computed PSL values in an array indexed by abstract interrupt
level, rather than individual shortwords.
1999-08-01 21:50:17 +00:00
thorpej d721481d50 Make sure the branch target of the delay loop is aligned to a cache
half-line (8-byte) boundary.  Inspired by a discussion w/ Scott Reynolds.
1999-08-01 21:32:17 +00:00
thorpej 22d6c3f13b Fix APCI console initialization; we were forgetting to update cn_tab.
From Christoph Badura.
1999-08-01 21:30:21 +00:00
thorpej 9c48987e94 Ooops, add a missing break. 1999-08-01 18:17:26 +00:00
thorpej 749eee308d If building without ITECONSOLE, don't install our own NMI handler. Just
leave the ROM's NMI handler in place.
1999-07-31 21:49:03 +00:00
thorpej f4da661b4a Nuke the DCA check. ACPI can only be console on a 425e. 1999-07-31 21:17:08 +00:00
thorpej c870d5243c Skip "serial 1" on non-425e models. It's mapped to DCA at 9 on every
other 4xx model, and the "not configured" could be pretty annoying.
1999-07-31 21:15:20 +00:00
thorpej e1f99936c8 Nuke apcicheckdca(). Since "serial 1" only exists as an APCI serial
port on the 425e, key off that instead.
1999-07-31 21:14:36 +00:00
thorpej 232492c350 Oops, forgot to add MMUID_385. 1999-07-31 20:50:48 +00:00
thorpej 5ab8857d4e Add HP385. 1999-07-31 20:19:31 +00:00
thorpej f7b10e4c9f defopt HP385. 1999-07-31 19:56:48 +00:00
thorpej 72fa12a41c Oops, forgot the HP_385 case in identifycpu(). 1999-07-31 19:52:35 +00:00
thorpej ca091a5e33 Fix oversight in last. 1999-07-31 17:20:22 +00:00
thorpej 7d1889a8bd Identify the 385 and 425e. Partially from OpenBSD. 1999-07-31 01:26:04 +00:00
thorpej 7c21482563 Add 385 and 425e SPU detection. From OpenBSD. 1999-07-31 00:45:28 +00:00
thorpej 834772047c Add MMUIDs for the 385 and 425e, and a machine ID for the 385. From OpenBSD. 1999-07-31 00:28:20 +00:00
augustss a7cd454b1d It's time to be COMPAT_14. 1999-07-29 10:37:12 +00:00
cgd f886376518 be more efficient when doing the SYSTEM_LD_TAIL for -g kernels: don't
copy them just to strip them, use strip -o.
1999-07-26 05:20:44 +00:00
christos 41cc9a0eb8 enable PPP_BSDCOMP, PPP_DEFLATE, PPP_FILTER, PFIL_HOOKS, IPFILTER_LOG
on the GENERIC kernels that had them commented out.
XXX: Please note, that not all the kernels have all the options defined!
1999-07-20 07:40:34 +00:00
thorpej 0945bf58b0 Add examples for including the kernel crypto bits from either crypto-us
or crypto-intl, commented out, with instructions to use only one, and
adjust the prefix as necessary.
1999-07-09 18:55:33 +00:00
mrg ecdad0ec33 clean up a bit after jason :)
- fix emitrules() like emitfiles() to deal with the prefix (otherwise it
  would attempt to find the file in the normal base for the NORMAL_C rule).
- add emitincludes() which adds include directives for each prefix to the
  $INCLUDES variable in the makefile.
- add %INCLUDES to each Makefile.arch to deal with the above.

this makes "prefix" actually work in a usable manner, and now i can move
on to fixing compiler warnings (errors) in the ESP code. :)
1999-07-09 09:52:55 +00:00
thorpej 3ebbe095e0 Change the pmap_extract() interface to:
boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.
1999-07-08 18:05:21 +00:00
itojun 5effafcaa6 kernel configuration for IPv6/IPsec. should be in GENERIC in the future.
(source code will be committed soon)
1999-07-01 07:00:12 +00:00
itojun 427639cdce - Call ip6intr if INET6 is defined.
- remove "need-flag" for mac68k esp driver, as it is not used in anywhere
  and conflicts with IPsec ESP header.

This should be the only MD change in IPv6 support, except kernel config file.
Very sorry if you have any compilation problem with it (I believe it is okay).
If your favorite arch is not included in here, please add a
call to ip6intr() from softintr handle.
1999-06-28 08:20:40 +00:00
thorpej b59b8bd5c6 Enable DDB history. 1999-06-23 22:42:52 +00:00
oster 7824f40e5f Add a '#include <sys/resourcevar.h>' to each of these to allow them
to compile again.
1999-06-22 14:51:57 +00:00
thorpej 9e9f068f43 Add the guts of mlockall(MCL_FUTURE). This requires that a process's
"memlock" resource limit to uvm_mmap().  Update all calls accordingly.
1999-06-18 05:13:45 +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
thorpej 602d8e81f7 Don't (ab)use uvm_map_pageable() to allocate PT pages. Instead, do
some internal reference counting on PT pages.  We still allocate them
with the page fault routine (a wire-fault, now), but no longer free
PT pages from pmap_pageable().
1999-06-15 22:18:07 +00:00
kleink 857dfc7058 Slightly rearrange the SSIR inline assembly implementation in order to avoid
making assumptions on C symbol name prefixes.
1999-06-15 15:26:34 +00:00
kleink 51eb26bf7e Slightly rearrange the inline assembly in ledcontrol() to avoid frobbing a
C symbol name prefix.
1999-06-15 15:18:55 +00:00
thorpej 2c35c7bd03 Only declare block major numbers for devices which can be the root device. 1999-06-07 20:31:27 +00:00
thorpej d76e7b8c6d Don't pass a nam2blk around at all; just have setroot() and friends reference
dev_name2blk[] directly.  Addresses PR #7622 (ITOH Yasufumi), although
in a different way.
1999-06-07 20:16:08 +00:00
thorpej beb8d06638 Generally update the comment above vunmapbuf(). 1999-05-26 22:19:33 +00:00
thorpej a2d06a4721 Generally update the comment above the vmapbuf() implementations. 1999-05-26 22:07:36 +00:00
thorpej 2580d306ab Change the vm_map's "entries_pageable" member to a r/o flags member, which
has PAGEABLE and INTRSAFE flags.  PAGEABLE now really means "pageable",
not "allocate vm_map_entry's from non-static pool", so update all map
creations to reflect that.  INTRSAFE maps are maps that are used in
interrupt context (e.g. kmem_map, mb_map), and thus use the static
map entry pool (XXX as does kernel_map, for now).  This will eventually
change now these maps are locked, as well.
1999-05-26 19:16:28 +00:00
lukem e4a87aa1a9 * convert to using MI allocsys(). most ports were using an MD allocsys(),
although a couple still used the old pre-4.4-lite (?) mechanism.
* use format_bytes() to format the various printf()s that print out memory sizes
1999-05-20 08:21:42 +00:00
thorpej c10a926030 Allow the caller to specify a stack for the child process. If NULL,
the child inherits the stack pointer from the parent (traditional
behavior).  Like the signal stack, the stack area is secified as
a low address and a size; machine-dependent code accounts for stack
direction.

This is required for clone(2).
1999-05-13 21:58:32 +00:00
drochner fe310dd299 include <lib/libkern/libkern.h> for intoa()/inet_ntoa() 1999-05-07 16:19:27 +00:00
kleink 3d292e1a35 Fix a label name botch introduced in rev. 1.92; Ignatios owes me a non-beer. 1999-05-01 19:11:34 +00:00
christos d27f70c075 Include opt_compat_sunos.h 1999-04-29 16:22:03 +00:00
kleink e1529b8f93 Pull in the right generic m68k header. (Where was my mind?) 1999-04-29 14:38:39 +00:00
thorpej b8073b401b Garbage-collect the VM_MBUF_SIZE constant. Instead, use the size
(nmbclusters * mclbytes), so that the right amount of KVA space is
allocated if those variables are patched.
1999-04-26 22:46:44 +00:00
simonb 5d8b1ef3e4 g/c REAL_CLISTS. 1999-04-25 02:56:26 +00:00
chs 05b971dd5f in pmap_pageable(), rather than marking a PT page as not modified
to trick the pagedaemon into freeing it later, just unmap the page
and free it immediately.  fixes PR 7337.
1999-04-22 04:24:52 +00:00
kleink ed74932033 Add COMPAT_SVR4 for m68k. 1999-04-19 21:22:56 +00:00
chs f455dd6596 add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.
1999-04-11 04:04:04 +00:00
kleink 6cdc67693f It's amazing how many typos I can invent in a new multi-line comment. 1999-04-10 17:31:02 +00:00
drochner 13bff3d3e5 remove unneeded old-vm includes 1999-04-10 14:28:22 +00:00
drochner 04ef8b5750 actually include <net/if_ether.h> to get these constants 1999-04-09 09:34:13 +00:00
drochner 39fce9ba9d remove leftover #endif 1999-04-01 20:50:52 +00:00
thorpej 967b8c433c Don't call configure() from cpu_startup(). 1999-04-01 00:17:45 +00:00
thorpej 455b121ce8 In pmap_enter(), set the appropriate page attributes based on access_type.
The m68k maintains modified and referenced information for us, but seeding
the page attributes can save us a pv list traversal.
1999-03-30 00:12:32 +00:00
simonb c286d2a5e9 Hopefully get the last of the "ifdef UVM" bogons in genassym.cf's. 1999-03-28 06:00:18 +00:00
mycroft 93768384ee Fix a bug in pmap_collect_pv(), even though nobody currently uses it:
When we put a page on the collection list, we must subtract NPVPPG from the
total free count: one for each pv_entry that's free in that page, and one for
each free pv_entry in other pages that we're going to eat by moving the ones
in the page being collected.
1999-03-27 05:57:02 +00:00
mycroft 9affa543a5 Oops; forgot to change some pmap_enter() calls. 1999-03-27 03:34:08 +00:00
mycroft 12d512bbb7 Oops; vm_offset_t -> vaddr_t. 1999-03-27 00:30:06 +00:00
mycroft 9c6b797796 Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.
1999-03-26 23:41:25 +00:00
thorpej 587eda7c3f Use ETHER_*_LEN constants from <net/if_ether.h> instead of defining them
ourselves.
1999-03-25 23:11:51 +00:00
mrg ca5f9685bb clean up kernel/config files files for machVM lossage. 1999-03-24 06:06:09 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
drochner 76fa1751fe Add a macro to check for sufficient pointer alignment in bus.h context,
"BUS_SPACE_ALIGNED_POINTER()".
Equal to the param.h "ALIGNED_POINTER()" normally, but obeys additional
requirements of the bus_space_xxx_n() macros. (BUS_SPACE_DEBUG)
1999-03-23 21:29:03 +00:00
chs ab7269f62a if uvm_fault() fails with KERN_RESOURCE_SHORTAGE, send a SIGKILL
and print a message about it.  this will be used to recover from
out-of-swap conditions.
1999-03-18 04:56:01 +00:00
sommerfe bc533621ed defopt MINIROOTSIZE 1999-03-17 18:59:21 +00:00
minoura e518820ca8 Pullin m68k/ieee.h. 1999-03-15 11:55:53 +00:00
thorpej 673ddc8f39 Style nits in last. 1999-03-01 22:24:53 +00:00
scottr d32ed292af defopt BUFCACHE and BUFPAGES. 1999-02-27 06:39:34 +00:00
is f71d843a65 synchronize types, and s/curproc/p/ in one forgotten place 1999-02-26 22:37:57 +00:00
is 84971e3a6f mac68k part of pr 6152 fix, and missing bits for the others 1999-02-25 23:13:39 +00:00
is 75469a775e hp300 part of the fix for pr 6152 1999-02-25 22:34:41 +00:00
lukem dcab0210a0 convert from NOxxx= to MKxxx=no.
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
kleink f69591d12d Use of casts as lvalues is a GNU C extension; rearrange slightly. 1999-02-10 17:03:26 +00:00
he f96a373094 Avoid "unterminated character constant" error from mkdep (really cc).
I guess in some sense it's stupid to use cc to depend .S files.
1999-02-08 10:45:11 +00:00
thorpej ad268a2ff8 STANDALONE -> _STANDALONE. 1999-02-06 21:19:24 +00:00
thorpej 3bf59302e9 Workaround for disks that respond slowly to selection, provided by
David Jones in PR #3769.

Every day, I hate this driver more and more.
1999-02-06 03:30:32 +00:00
thorpej e6c245c5df Implement pmap_prefer() for systems w/ an HP MMU (which has a virtually-tagged
cache).  This helps to avoid cache alias problems, and can improve performance
in the case where physical pages have multiple mappings (since the pages will
not have to be marked cache-inhibited).
1999-02-02 21:06:55 +00:00
thorpej f108f0164e Nuke the "pmapvacflush" debugging code. 1999-02-02 20:52:21 +00:00
mycroft 3e6e3322d8 Format consistency. 1999-01-24 12:56:51 +00:00
mycroft 082204fa3d Standardize format. 1999-01-22 14:12:07 +00:00
thorpej 2fb041ce0a No need for <sys/mtio.h> 1999-01-19 18:18:41 +00:00
chuck 32244a5a1a MNN is now the default 1999-01-16 20:13:17 +00:00
thorpej 8922647c58 Some minor, mostly costmetic, changes to CPPFLAGS/CFLAGS. 1999-01-15 23:37:05 +00:00
thorpej c84a74b16b Don't define "mc68020". Nothing uses it. 1999-01-15 23:21:25 +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
thorpej e598335d1c Garbage-collect `mbutl'. 1999-01-09 22:10:12 +00:00
thorpej e279508ccb In pmap_zero_page() and pmap_copy_page(), set copyback caching of the
pages on the 68040 and 68060, to avoid cache consistency problems (since
regular mappings are copyback cached as well), per Ignatios Souvatzis.
1999-01-09 18:40:12 +00:00
augustss fc5f9ee81d Add -Wpointer-arith warning since `void *' arithmetic is not ANSI C. 1999-01-08 19:26:12 +00:00
thorpej 289b2e154f In pmap_zero_page() and pmap_copy_page(), don't bother invalidating the
mappings for CADDR1 and CADDR2, unless we're built w/ -DDEBUG.  Since
these addresses are only used in these routines, we can "lazily invalidate"
them by just using them again.  This makes these routines a teeny bit faster,
as it saves 1 or 2 TBIS's per call.

Suggested by Leo Weppelman <leo@netbsd.org>.
1999-01-08 05:15:43 +00:00
thorpej 795321b030 Make pmap_collect() actually do something useful. If called with a user
pmap, forget all of the mappings for the user address space for that pmap.
This causes the PT pages to be freed so that they can be reclaimed by the
VM system. [*]

[*] Actually, in the current implementation, it merely causes the wiring
count on the PT pages to drop to 0, which allows them to be reclaimed by
the pagedaemon.  Handling of PT pages needs to be completely rewritten.
1998-12-21 09:02:43 +00:00
thorpej d6bc370c2d Use a memory pool for pmap structures. 1998-12-21 08:51:39 +00:00
thorpej 43b82d559c Improve pmap_copy_page() and pmap_zero_page(). Don't use pmap_enter()/
pmap_remove() for the temporary addresses.  This is completely unnecessary
as the temps are used ONLY for these routines, and we have better control
over the mapping by manipulating the PTE ourself.  On VAC systems, cache-
inhibit the mapping to prevent wasting a cache load.

These routines are now significantly faster.

Add a DIAGNOSTIC check in pmap_enter() for kernel pmap and (CADDR1 or CADDR2);
nothing should be adding mappings there via that interface.
1998-12-21 06:58:39 +00:00
thorpej 51d0670371 Clean up a whole load of comments, making many of them truthful, and
indicating which functions are INTERFACE vs. which aren't.
1998-12-20 01:15:52 +00:00
thorpej 80e50e26a8 Unclutter a bit. Use a PMAP_DPRINTF() macro where possible, getting rid
of loads of #ifdef DEBUG ... stuff.
1998-12-19 23:51:47 +00:00
thorpej 6659e7174e In pmap_testbit(), if we end up traversing the PV list, cache a hit on the
bit to speed future tests.
1998-12-19 23:21:51 +00:00
thorpej 97f422e85b Make pmap_changebit() take bits to set and a PTE mask, rather than a bit
and a boolean.
1998-12-19 23:01:47 +00:00
thorpej d36a60d9cb G/c PMAPSTATS. It's unneeded clutter right now. 1998-12-19 21:11:14 +00:00
thorpej 459052a0fb Wire down some SCSI disk units. 1998-12-19 20:05:19 +00:00
itohy 36416d8500 Added options COMPAT_LINUX and EXEC_ELF32 as comments
to GENERIC configuration files.
1998-12-15 19:50:00 +00:00