From 5ff234c94628c81cb98805228cd5524487390e48 Mon Sep 17 00:00:00 2001 From: alc Date: Wed, 15 Sep 2004 18:41:10 +0000 Subject: [PATCH] Update to reflect recent changes such as the fields for O(log n) address space allocation. Submitted by: Mark W. Krentel --- share/man/man9/vm_map.9 | 43 +++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/share/man/man9/vm_map.9 b/share/man/man9/vm_map.9 index d41482975215..4a94fa28a6f9 100644 --- a/share/man/man9/vm_map.9 +++ b/share/man/man9/vm_map.9 @@ -52,17 +52,18 @@ function. .Bd -literal -offset indent struct vm_map { struct vm_map_entry header; - struct lock lock; + struct sx lock; struct mtx system_mtx; int nentries; vm_size_t size; + u_int timestamp; u_char needs_wakeup; u_char system_map; - u_char infork; + vm_flags_t flags; vm_map_entry_t root; - unsigned int timestamp; - vm_map_entry_t first_free; pmap_t pmap; +#define min_offset header.start +#define max_offset header.end }; .Ed .Pp @@ -83,23 +84,38 @@ A mutex which is used if the map is a system map. A count of the members in use within the circular map entry list. .It Va size Specifies the size of the virtual address space. -.It Va infork -Indicates if the map structure is currently undergoing fork processing. +.It Va timestamp +Used to determine if the map has changed since its last access. .It Va needs_wakeup Indicates if a thread is waiting for an allocation within the map. Used only by system maps. .It Va system_map Set to TRUE to indicate that map is a system map; otherwise, it belongs to a user process. +.It Va flags +Map flags. .It Va root Root node of a binary search tree used for fast lookup of map entries. -.It Va timestamp -Used to determine if the map has changed since its last access. -.It Va first_free -Provides a hint to the first free space within the map. .It Va pmap Pointer to the underlying physical map with which this virtual map is associated. +.It Va min_offset +The minimum +.Va vm_offset_t +in this map. +Programs should never use +.Va header.start +or +.Va header.end +directly, use +.Va min_offset +and +.Va max_offset +instead. +.It Va max_offset +The maximum +.Va vm_offset_t +in this map. .El .Pp The following flags can be passed to @@ -141,6 +157,8 @@ struct vm_map_entry { vm_offset_t start; vm_offset_t end; vm_offset_t avail_ssize; + vm_size_t adj_free; + vm_size_t max_free; union vm_map_object object; vm_ooffset_t offset; vm_eflags_t eflags; @@ -171,6 +189,11 @@ Lower address bound of this entry's region. Upper address bound of this entry's region. .It Va avail_ssize If the entry is for a process stack, specifies how much the entry can grow. +.It Va adj_free +The amount of free, unmapped address space adjacent to and immediately +following this map entry. +.It Va max_free +The maximum amount of contiguous free space in this map entry's subtree. .It Va object Pointer to the .Vt struct vm_map_object