Commit Graph

396 Commits

Author SHA1 Message Date
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
thorpej
96993ef749 Make a slight modification of pmap_growkernel() -- it now returns the
end of the mappable kernel virtual address space.  Previously, it would
get called more often than necessary, because the caller only new what
was requested.

Also, export uvm_maxkaddr so that uvm_pageboot_alloc() can grow the
kernel pmap if necessary, as well.  Note that pmap_growkernel() must
now be able to handle being called before pmap_init().
1999-05-20 23:25: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
thorpej
f5108f64e7 Add an optional pmap hook, pmap_fork(), to be called at the end of
uvmspace_fork().

pmap_fork() is used to "fork a pmap", that is copy data from one pmap
to the other that is NOT related to actual mappings in the pmap, but is
otherwise logically coupled to the address space.
1999-05-12 19:11:23 +00:00
simonb
e3a5c2451c Check to see if TRUE and FALSE are already defined before blindly
trying to define them ourselves.

Fixes PRs kern/2813 and misc/7356.
1999-04-11 00:59:07 +00:00
drochner
d79282e281 rip out some old-vm specific definitions and prototypes for address space
sanity
1999-04-10 13:52:11 +00:00
mrg
920344b9c2 put back #ifdef _KERNEL that broken xosview build. 1999-03-31 12:29:51 +00:00
mycroft
e7ad33406b Nuke at least a few files which are clearly not used any more. 1999-03-30 13:08:55 +00:00
mycroft
31a2536cd0 Add a new `access type' argument to pmap_enter(). This indicates what type of
memory access a mapping was caused by.  This is passed through from uvm_fault()
and udv_fault(), and in most other cases is 0.
The pmap module may use this to preset R/M information.  On MMUs which require
R/M emulation, the implementation may preset the bits and avoid taking another
fault.  On MMUs which keep R/M information in hardware, the implementation may
preset its cached bits to speed up the next call to pmap_is_modified() or
pmap_is_referenced().
1999-03-26 21:58:39 +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
kleink
b0fe22c29d Have unimplemented/unsupported system calls (madvise(), mincore(), sbrk(),
sstk()) fail with ENOSYS.
1999-03-09 12:18:22 +00:00
hubertf
dcd5f59c0a RCS ID police 1999-02-15 04:14:54 +00:00
chuck
d22647b17e remove old (dead) non-MNN code 1999-01-16 20:00:28 +00:00
cgd
2690e920cb patch from chuck:
remove bogus permission check in uvm_map_clean().   fixes mmap/msync
problem discussed/reported by jonathan and Andreas Wrede <andreas@planix.com>.
1998-11-29 06:15:58 +00:00
mrg
b4f6a27f69 comment how a diag test is possible broken. 1998-11-19 05:23:46 +00:00
mycroft
967a4693f2 Set the B_NOCACHE bit so that NFSv3 will not try to do async writes. 1998-11-08 19:45:17 +00:00
jonathan
9a06d5e2a6 Compute compile-time value of old-VM parameter MAX_KMAPENT from NPROC
(2x NPROC plus slop) unless expclitly set. Use current constant value
(100) as a lower bound, as suggested by Chuck Cranor.

Move NPROC and other parameter definitions from param.c to param.h so
they are visible to vm/vm_map.h.

Systems with hand-tuned NPROC should now support that many processes.
1998-10-23 19:37:32 +00:00
tron
39876df951 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:14:54 +00:00
ws
03de6ac37b Physical addresses are paddr_t, not vaddr_t 1998-10-14 11:45:16 +00:00
chuck
1449d78fd3 remove the following if UVM is defined:
- share_map in vm_map_object.   UVM doesn't use share maps, so drop unused
	partial support for them to simplify the code.
 - is_main_map in vm_map.   no longer needed once share maps are gone.
 - vm_map_version_t.   map versions are handled elsewhere in UVM.
1998-10-11 22:56:42 +00:00
mrg
9cf8633378 back out previous. 1998-10-02 08:00:57 +00:00
tv
8219f068e2 Declare silent success on madvise(). As an advisory call, it is harmless
to pretend success even though it's not supported, and some emulations
rely on its success.
1998-09-30 12:07:51 +00:00
christos
45935a4c8d Make copyrights consistent; remove extra trailing spaces, change reformatted
copyrights to original format, change ' ' to '\t'.
1998-09-13 13:21:37 +00:00
thorpej
dd07e08538 Implement vm_exit(), which frees VM resources when a process finishes
exiting.
1998-09-08 23:44:41 +00:00
pk
d2d3f83fd7 Panic instead failing the syscall on an impossible condition (from Robert Elz).
Plug possible memory leakage with the recently added device path stuff.
1998-09-06 23:09:39 +00:00
drochner
0ff42b44b1 Fix UIO_SYSSPACE / UIO_USERSPACE confusion in the new swappath code. 1998-09-06 11:59:28 +00:00
christos
344ed1eaef Assign copyright to TNF. 1998-09-05 14:20:01 +00:00
drochner
3af18e2765 add missing label 1998-08-30 12:32:48 +00:00
mrg
e10d7cb026 add sys/swap.h, and not that vm/vm_swap.h should go away later. 1998-08-29 17:06:11 +00:00
mrg
edda33e00c move <vm/vm_swap.h> to <sys/swap.h>. <vm/vm_swap.h> still works for now (goes away later) 1998-08-29 17:01:14 +00:00
mrg
b5f69ff667 add a `char se_path[PATH_MAX]' member to struct swapent, that
the pathname of the swap device is saved into.  add a char *swd_path
member to struct swapdev, that contains a copy of the pathname
(using malloc(9)).  rename swapctl(2)'s SWAP_STATS to SWAP_OSTATS,
and add a new SWAP_STATS command (number).  make swapctl(SWAP_STATS,
...) [new version] copy the path out.  if COMPAT_13, also include
support for SWAP_OSTATS.  also fix a minor bug in swapctl(2).

the point of this is that swapfiles are now shown in `swapctl -l'.
1998-08-29 13:27:50 +00:00
thorpej
77d0a69569 Add a waitok boolean argument to the VM system's pool page allocator backend. 1998-08-28 20:05:48 +00:00
mrg
514a5d2570 vm_page_bootstrap takes vaddr_t *'s not paddr_t *'s 1998-08-24 22:36:36 +00:00
thorpej
706381d9ac Fix missing ;, pointed out by Erik Bartelsen, PR #5987. 1998-08-18 17:31:25 +00:00
mycroft
bf886f2029 Assign my copyrights to TNF. 1998-08-15 05:19:50 +00:00
thorpej
aedf80a6e9 Oops, lots of missed vm_offset_t -> vaddr_t changes. 1998-08-13 21:20:47 +00:00
thorpej
057d49dba3 Second arg of vm_map_insert() is/was a vm_object_t. 1998-08-13 21:12:15 +00:00
eeh
a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
perry
e6886047c9 bzero->memset, bcopy->memcpy, bcmp->memcmp 1998-08-09 21:58:52 +00:00
thorpej
55bf1fd9ad Allow an alternate splimp-protected map to be specified in the pool page
allocator routines.
1998-07-31 20:46:36 +00:00
thorpej
e95c22ee96 Don't cast the null residual pointer passed to vn_rdwr(). 1998-07-28 18:17:34 +00:00
simonb
0034263cb2 Fix missing semi-colon 1998-07-26 10:03:29 +00:00
thorpej
6127f55620 Implement kmem_{alloc,free}_poolpage(). These functions use pmap hooks to
map/unmap pool pages if provided by the pmap layer.
1998-07-24 20:27:26 +00:00
pk
a96abe7092 Update pool_* functions to new interface. 1998-07-23 20:52:01 +00:00
thorpej
5450855604 GCC erroneously thinks used_vnode_size (a quad) is uninitialized on m68k. 1998-07-12 17:14:08 +00:00
thorpej
efd84d4a97 Add a "free_list" to UVM's vm_physseg, indicating which free list the
pages in that physseg are on when they're free.
1998-07-08 04:19:59 +00:00
thorpej
8d986de632 Add support for mmap'ing disk block devices. 1998-07-07 23:22:13 +00:00
sommerfe
7ba7fbbb23 Always include fifos; "not an option any more". 1998-06-24 20:58:44 +00:00
sommerfe
becaafeea0 defopt for options FIFO 1998-06-22 22:00:59 +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