NetBSD/sys/sys
atatat df0a9badc6 Introduce "top down" memory management for mmap()ed allocations. This
means that the dynamic linker gets mapped in at the top of available
user virtual memory (typically just below the stack), shared libraries
get mapped downwards from that point, and calls to mmap() that don't
specify a preferred address will get mapped in below those.

This means that the heap and the mmap()ed allocations will grow
towards each other, allowing one or the other to grow larger than
before.  Previously, the heap was limited to MAXDSIZ by the placement
of the dynamic linker (and the process's rlimits) and the space
available to mmap was hobbled by this reservation.

This is currently only enabled via an *option* for the i386 platform
(though other platforms are expected to follow).  Add "options
USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild
your kernel to take advantage of this.

Note that the pmap_prefer() interface has not yet been modified to
play nicely with this, so those platforms require a bit more work
(most notably the sparc) before they can use this new memory
arrangement.

This change also introduces a VM_DEFAULT_ADDRESS() macro that picks
the appropriate default address based on the size of the allocation or
the size of the process's text segment accordingly.  Several drivers
and the SYSV SHM address assignment were changed to use this instead
of each one picking their own "default".
2003-02-20 22:16:05 +00:00
..
acct.h
agpio.h
ansi.h
ataio.h "definitions" has lots of 'i's, but that's not reason to leave one out. 2002-09-29 23:23:56 +00:00
audioio.h Add AudioNvideo, AudioNcenter, AudioNdepth, and AudioNlfe 2002-10-12 07:39:00 +00:00
boot_flag.h
bootblock.h add apple_bootzeroblock 2003-01-11 19:14:18 +00:00
bswap.h
buf.h Make the buffer cache code MP-safe. 2003-02-05 21:38:38 +00:00
callout.h New callout implementation. This is based on callwheel implementation 2003-02-04 01:21:03 +00:00
cdefs_aout.h Fix typo in a.out link set macros (s/ifdef/ifndef/). 2002-12-05 05:47:24 +00:00
cdefs_elf.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
cdefs.h "Utilize" has exactly the same meaning as "use," but it is more 2003-02-05 00:02:24 +00:00
cdio.h
chio.h
clockctl.h clockctlattach takes only an int. 2003-02-11 01:44:16 +00:00
conf.h now that mem_no is emitted by config(8), there is no reason to keep 2002-10-26 13:50:17 +00:00
core.h
device.h Add an EVCNT_ATTACH_STATIC() macro which gathers static evcnts 2002-11-24 17:33:43 +00:00
dir.h
dirent.h
disk.h implement separate read/write disk statistics: 2002-11-01 11:31:50 +00:00
disklabel_acorn.h protect against multiple inclusion. 2003-01-11 18:54:19 +00:00
disklabel_mbr.h add MBR_PTYPE_APPLEUFS of 0xa8 2002-09-28 00:56:25 +00:00
disklabel.h Note that the FS_ definitions are for compatibility only. 2003-01-25 23:17:38 +00:00
dkbad.h
dkio.h
dkstat.h
domain.h framework to add af-dependent data structure to struct ifnet. 2002-05-27 02:53:49 +00:00
dvdio.h
endian.h
envsys.h - comma at the end of an enum list is illegal in ansi c 2003-02-20 20:57:56 +00:00
errno.h Oops, ENOSR: resource -> resources here, too. 2002-11-12 13:52:28 +00:00
event.h Include "sys/types.h" to get the definition of "size_t". 2003-02-16 09:30:23 +00:00
eventvar.h merge kqueue branch into -current 2002-10-23 09:10:23 +00:00
exec_aout.h Rename __LDPGSZ to AOUT_LDPGSZ, to accurately reflect what it is. 2002-12-10 17:14:02 +00:00
exec_coff.h
exec_ecoff.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
exec_elf.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
exec_macho.h back out the previous change, which is useless. Darwin loads the libraries 2002-11-29 15:49:09 +00:00
exec_script.h
exec.h Introduce "top down" memory management for mmap()ed allocations. This 2003-02-20 22:16:05 +00:00
extent.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
fcntl.h s/FNOSYMLINK/O_NOFOLLOW/ and allow it in open(2). For compatibility with other 2002-12-06 22:43:35 +00:00
fdio.h
featuretest.h
file.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
filedesc.h merge kqueue branch into -current 2002-10-23 09:10:23 +00:00
filio.h Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
gmon.h
hash.h
inttypes.h
ioccom.h
ioctl_compat.h Reorder things so that multiple inclusion protection so optional 2002-12-01 22:57:17 +00:00
ioctl.h Include <sys/ioctl_compat.h> when COMPAT_IBCS2 2003-01-16 18:23:36 +00:00
ipc.h Expose the IPC_[RWM] symbols to userspace. 2002-08-07 23:39:24 +00:00
kcore.h
kernel.h New callout implementation. This is based on callwheel implementation 2003-02-04 01:21:03 +00:00
kgdb.h
kprintf.h grow a NOLOCK flag. 2003-02-17 22:19:13 +00:00
ksem.h Cosmetic changes. 2003-01-23 23:52:38 +00:00
kthread.h
ktrace.h Pass the system call table to trace_enter() and ktrsys() so that it is 2002-12-21 16:23:56 +00:00
lkm.h Avoid strict-alias warnings. 2002-12-11 12:13:11 +00:00
localedef.h - No need to include sys/param.h and sys/types.h here. 2002-11-19 09:53:16 +00:00
lock.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
lockf.h
lwp.h constify wait channels of ltsleep/wakeup. they are never dereferenced. 2003-02-04 13:41:48 +00:00
Makefile Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
malloc.h Make the memory allocation code MP-safe. 2003-02-14 21:51:36 +00:00
mallocvar.h correctly protect mallocvar.h against multiple inclusion [hi thorpej] 2003-02-02 02:21:43 +00:00
mbuf.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
md4.h
md5.h
midiio.h
mman.h
mount.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
msg.h
msgbuf.h
mtio.h Bump daddr_t to 64 bits. Replace it with int32_t in all places where 2003-01-24 21:55:02 +00:00
namei.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
null.h
param.h Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
pipe.h Make the pipe code mostly MP-safe. There are a few unaddressed race 2003-02-12 21:54:15 +00:00
pmc.h Expose <machine/pmc.h> to userland. 2002-08-08 16:23:19 +00:00
poll.h
pool.h Fix signed/unsigned comparison warnings from GCC 3.3. 2002-08-25 22:51:05 +00:00
proc.h KNF kern_prot.c 2003-02-18 08:37:41 +00:00
properties.h
protosw.h Spelling police. "DETATCH" is not the right speling. 2002-12-20 20:57:26 +00:00
ptrace.h PT_DUMPCORE support. 2003-01-23 17:35:18 +00:00
queue.h Add STAILQ_*. Really the same as SIMPLEQ, but this syncs the API with FreeBSD. 2002-12-06 22:23:34 +00:00
radioio.h
ras.h MI kernel support for user-level Restartable Atomic Sequences (RAS). 2002-08-28 07:16:33 +00:00
reboot.h Add the following message printing routines, designed for printing 2002-12-31 17:48:03 +00:00
resource.h
resourcevar.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
rnd.h Fix signed/unsigned comparison warnings. 2002-11-10 03:28:59 +00:00
sa.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
savar.h only include mallocvar.h if _KERNEL is defined [hi thorpej] 2003-02-02 02:22:14 +00:00
scanio.h
sched.h constify wait channels of ltsleep/wakeup. they are never dereferenced. 2003-02-04 13:41:48 +00:00
scsiio.h Fix two typos in comments. From OpenBSD. 2002-07-10 21:56:42 +00:00
select.h change fields of struct selinfo from si_ to sel_ so that the don't conflict 2002-11-26 19:08:06 +00:00
sem.h
sha1.h
shm.h Expose the IPC_[RWM] symbols to userspace. 2002-08-07 23:39:24 +00:00
siginfo.h This is not used yet. 2002-11-26 19:06:38 +00:00
signal.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
signalvar.h add __sigtimedwait(2) - wait for specified set of signals, with optional 2003-02-15 20:54:38 +00:00
sigtypes.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
socket.h
socketvar.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
sockio.h Add SIOCGIFDATA and SIOCZIFDATA ioctl's to get interface data. (the Z 2002-05-23 21:34:39 +00:00
stat.h
stdint.h
swap.h
syscall.h regen: 2003-02-15 20:56:48 +00:00
syscallargs.h regen: 2003-02-15 20:56:48 +00:00
sysctl.h Add a kern.dump_on_panic sysctl variable (and documentation, and a 2003-02-10 00:35:15 +00:00
syslimits.h
syslog.h
systm.h New callout implementation. This is based on callwheel implementation 2003-02-04 01:21:03 +00:00
systrace.h Back out previous, it caused compile errors in kern_fork.c. ISSET 2002-11-10 14:01:57 +00:00
tablet.h
termios.h
time.h Explicitly pull in <sys/queue.h>. 2003-02-03 23:47:13 +00:00
timeb.h
timepps.h
times.h Version times() so that programs compiled before the recent change to make 2002-06-30 09:45:39 +00:00
timex.h
tprintf.h Add multiple inclusion protection. 2002-12-01 21:25:10 +00:00
trace.h
tree.h /*CONTCOND*/ while (0)'ed macros 2002-11-02 07:30:55 +00:00
tty.h tputchar grows a flags argument. 2003-02-17 22:19:28 +00:00
ttychars.h Reorder things so that multiple inclusion protection so optional 2002-12-01 22:57:17 +00:00
ttycom.h
ttydefaults.h Only declare ttydefchars if _KERNEL is defined. 2002-12-02 05:11:02 +00:00
ttydev.h
types.h Allow the type of daddr_t to be overriden (for example by standalone 2003-02-01 23:47:02 +00:00
ucontext.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
ucred.h KNF kern_prot.c 2003-02-18 08:37:41 +00:00
uio.h Add extensible malloc types, adapted from FreeBSD. This turns 2003-02-01 06:23:35 +00:00
un.h
unistd.h Change _POSIX_SEMAPHORES to 0: support ultimately depends on a kernel 2003-02-02 20:34:49 +00:00
unpcb.h
user.h Merge the nathanw_sa branch. 2003-01-18 08:51:40 +00:00
userconf.h
utsname.h
vadvise.h
verified_exec.h Added support for fingerprinted executables aka verified exec 2002-10-29 12:31:20 +00:00
vmmeter.h
vnode_if.h regen: kqueue branch merge, addition of VOP_KQFILTER() 2002-10-23 09:16:46 +00:00
vnode.h Make the buffer cache code MP-safe. 2003-02-05 21:38:38 +00:00
wait.h Defines for modified kern_exit.c 2003-02-14 14:27:24 +00:00
wdog.h