member to the DMA tag, and calling the direct-mapped back-ends directly,
rather than through chipset-specific front-ends which pass the window
base as an additional argument.
are recognized but not supported (yet). (HP-UX and Solaris extension)
* Const'ify the `shmaddr' pointer arguments to shmat() and shmdt().
* Change the `size' argument to shmget() from int to size_t.
* Move MAX_SOPS inside _KERNEL protection; it's not portable and has a
meaning within semop() only.
* semop(): change the `nsops' argument type from int to size_t.
* Add _XOPEN_SOURCE protection around semconfig().
- Don't use home-grown queue manipulation. Use <sys/queue.h> instead. The
data structures are a little larger, but we are otherwise wasting the
memory chunk anyway (we're already a 64-byte malloc bucket).
- Fix a bug in the cache-is-full case: if the oldest element removed from
the first non-empty bucket was the only element in the bucket, the
bucket wouldn't be removed from the bucket cache, causing queue corruption
later.
- Optimize the syn cache timers by using PRT timers rather than home-grown
decrement-and-propagate timers.
This code is now a fair bit smaller, and significantly easier to read
and understand.
there is one. The Mach VM system seems to take care of this, so it
hasn't knowingly caused a problem. UVM does change mappings without
removing the current mapping, and will pmap_page_protect() hangs
if pmap_enter() doesn't remove the previous mapping.
* Require either _KERNEL or _LKM being defined in addition to COMPAT_SUNOS
to make SA_USERTRAMP visible, since COMPAT_* isn't a reserved name outside
the NetBSD kernel world.
using separate flag bits for mappings that were requested to be not
cacheable and uncacheable pages due to incongruent aliases.
This avoids inadvertently turning on the cache-enable bits when removing
one of multiple virtual address mappings to the same page. Reading
from /dev/mem could do this to arbitrary pages.
the protocol dispatch layer for TCP timers. This saves having to
modify a potentially large number of timer values (which were shorts,
and expanded to ... a lot of code on the Alpha).
* pull in <sys/types.h>, since the synopsises of several functions declared
here state that it's safe to assume the presence of several types,
* since the timespec-based variant of struct stat is only used in absence
of _POSIX_SOURCE or _XOPEN_SOURCE, pull in <sys/time.h> for struct timespec
only if neither is defined, and
* reorganize and finish name space protection.