mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-17 10:26:15 +00:00
mdoc(7) police: markup, grammar and spelling nits.
Reviewed by: davidc
This commit is contained in:
parent
f74d799555
commit
1f620c2ead
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=87857
@ -34,13 +34,14 @@
|
||||
.Nd "flush vnodes for a mount point"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/mount.h
|
||||
.In sys/vnode.h
|
||||
.Ft int
|
||||
.Fn vflush "struct mount *mp" "int rootrefs" "int flags"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn vflush
|
||||
function removes any vnodes in the vnode table that belong to the given mount
|
||||
function removes any vnodes in the vnode table that belong to the given
|
||||
.Vt mount
|
||||
structure.
|
||||
.Pp
|
||||
Its arguments are:
|
||||
@ -49,7 +50,7 @@ Its arguments are:
|
||||
The mount point whose vnodes should be removed.
|
||||
.It Fa rootrefs
|
||||
The number of references expected on the root vnode.
|
||||
.Fn vrele
|
||||
.Xr vrele 9
|
||||
will be invoked on the root vnode
|
||||
.Fa rootrefs
|
||||
times.
|
||||
@ -57,20 +58,23 @@ times.
|
||||
The flags indicating how vnodes should be handled.
|
||||
.Bl -tag -width ".Dv WRITECLOSE"
|
||||
.It Dv FORCECLOSE
|
||||
If set busy vnodes will be forcibly closed.
|
||||
If set, busy vnodes will be forcibly closed.
|
||||
.It Dv SKIPSYSTEM
|
||||
If set vnodes with the VSYSTEM flag set will be skipped.
|
||||
If set, vnodes with the
|
||||
.Dv VSYSTEM
|
||||
flag set will be skipped.
|
||||
.It Dv WRITECLOSE
|
||||
If set only regular files currently opened for writing will be removed.
|
||||
If set, only regular files currently opened for writing will be removed.
|
||||
.El
|
||||
.El
|
||||
.Sh RETURN VALUES
|
||||
A value of 0 is returned if the flush is successful; otherwise,
|
||||
.Dv EBUSY
|
||||
.Er EBUSY
|
||||
will be returned.
|
||||
.Sh SEE ALSO
|
||||
.Xr vgone 9 ,
|
||||
.Xr vgonel 9
|
||||
.Xr vgonel 9 ,
|
||||
.Xr vrele 9
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Chad David Aq davidc@acns.ab.ca .
|
||||
|
@ -31,7 +31,7 @@
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm vfs_getnewfsid
|
||||
.Nd "allocate a new fsid"
|
||||
.Nd "allocate a new filesystem identifier"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/mount.h
|
||||
@ -43,28 +43,32 @@ The
|
||||
function allocates a new filesystem identifier for the mount point given.
|
||||
Filesystems typically call
|
||||
.Fn vfs_getnewfsid
|
||||
in their mount routine in order to acquire a unique id within the system
|
||||
in their mount routine in order to acquire a unique ID within the system
|
||||
which can later be used to uniquely identify the filesystem via calls such as
|
||||
.Fn vfs_getvfs .
|
||||
.Xr vfs_getvfs 9 .
|
||||
.Pp
|
||||
The actual fsid is made up of two 32 bit integers, that are stored in the statfs
|
||||
The actual
|
||||
.Vt fsid
|
||||
is made up of two 32 bit integers, that are stored in the
|
||||
.Vt statfs
|
||||
structure of
|
||||
.Fa mp .
|
||||
The first integer is unique in the set of mounted filesystems, while the second holds
|
||||
the filesystem type.
|
||||
The first integer is unique in the set of mounted filesystems,
|
||||
while the second holds the filesystem type.
|
||||
.Bd -literal
|
||||
typedef struct fsid {
|
||||
int32_t val[2];
|
||||
} fsid_t;
|
||||
typedef struct fsid {
|
||||
int32_t val[2];
|
||||
} fsid_t;
|
||||
.Ed
|
||||
.Sh PSEUDOCODE
|
||||
.Bd -literal
|
||||
xxx_mount(struct mount *mp, char *path, caddr_t data, struct nameidata *ndp, struct thread *td)
|
||||
{
|
||||
...
|
||||
vfs_getnewfsid(mp);
|
||||
...
|
||||
}
|
||||
xxx_mount(struct mount *mp, char *path, caddr_t data,
|
||||
struct nameidata *ndp, struct thread *td)
|
||||
{
|
||||
...
|
||||
vfs_getnewfsid(mp);
|
||||
...
|
||||
}
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr vfs_getvfs 9
|
||||
|
@ -31,42 +31,47 @@
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm vfs_getvfs
|
||||
.Nd "returns a mount point given its fsid"
|
||||
.Nd "returns a mount point given its filesystem identifier"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/mount.h
|
||||
.Ft struct mount *
|
||||
.Ft "struct mount *"
|
||||
.Fn vfs_getvfs "fsid_t *fsid"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn vfs_getvfs
|
||||
function returns the mount point structure for a filesystem given its filesystem
|
||||
identifier. The filesystem id should have been allocated by calling
|
||||
.Fn vfs_getnewfsid ;
|
||||
identifier.
|
||||
The filesystem ID should have been allocated by calling
|
||||
.Xr vfs_getnewfsid 9 ;
|
||||
otherwise, it will not be found.
|
||||
.Pp
|
||||
A major user of
|
||||
.Fn vfs_getvfs
|
||||
is NFS, which uses the fsid as part of file handles in order to determine the
|
||||
is NFS, which uses the
|
||||
.Vt fsid
|
||||
as part of file handles in order to determine the
|
||||
filesystem a given RPC is for.
|
||||
If
|
||||
.Fn vfs_getvfs
|
||||
fails to find the mount point related to
|
||||
.Fa fsid
|
||||
.Fa fsid ,
|
||||
the filesystem is considered stale.
|
||||
.Sh RETURN VALUES
|
||||
If
|
||||
.Fa fsid
|
||||
is found the mount point for the id is returned; otherwise,
|
||||
is found, the mount point for the ID is returned; otherwise,
|
||||
.Dv NULL
|
||||
is returned.
|
||||
.Sh PSEUDOCODE
|
||||
.Bd -literal
|
||||
if ((mp = vfs_getvfs(&fhp->fh_fsid)) == NULL) {
|
||||
error = ESTALE;
|
||||
goto out;
|
||||
}
|
||||
if ((mp = vfs_getvfs(&fhp->fh_fsid)) == NULL) {
|
||||
error = ESTALE;
|
||||
goto out;
|
||||
}
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr vfs_getnewfsid 9
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Chad David Aq davidc@acns.ab.ca .
|
||||
|
@ -34,41 +34,43 @@
|
||||
.Nd "check if the vnode belongs to a mounted filesystem"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/vnode.h
|
||||
.In sys/mount.h
|
||||
.Ft int
|
||||
.Fn vfs_mountedon "struct vnode *vp"
|
||||
.Sh DESCRIPTION
|
||||
.Fn vfs_mountedon
|
||||
inspects the mount structure in
|
||||
inspects the
|
||||
.Vt mount
|
||||
structure in
|
||||
.Fa vp
|
||||
to determine if it points to a valid mount point.
|
||||
If the mount is valid the vnode is considered to be busy.
|
||||
If the mount is valid, the vnode is considered to be busy.
|
||||
.Pp
|
||||
A common use of
|
||||
.Fn vfs_mountedon
|
||||
it to call it on device vnodes to determine if they are already associated with
|
||||
is to call it on device vnodes to determine if they are already associated with
|
||||
a filesystem.
|
||||
This is done to prevent multiple mounts on the same device.
|
||||
.Sh RETURN VALUES
|
||||
.Dv EBUSY
|
||||
.Er EBUSY
|
||||
is returned if the vnode has a valid mount point; otherwise, 0 is returned.
|
||||
.Sh PSEUDOCODE
|
||||
.Bd -literal
|
||||
int
|
||||
ffs_mountfs(devvp, mp, td, malloctype)
|
||||
register struct vnode *devvp;
|
||||
struct mount *mp;
|
||||
struct thread *td;
|
||||
struct malloc_type *malloctype;
|
||||
{
|
||||
...
|
||||
int
|
||||
ffs_mountfs(devvp, mp, td, malloctype)
|
||||
register struct vnode *devvp;
|
||||
struct mount *mp;
|
||||
struct thread *td;
|
||||
struct malloc_type *malloctype;
|
||||
{
|
||||
...
|
||||
|
||||
error = vfs_mountedon(devvp);
|
||||
if (error)
|
||||
return (error);
|
||||
error = vfs_mountedon(devvp);
|
||||
if (error)
|
||||
return (error);
|
||||
|
||||
...
|
||||
}
|
||||
...
|
||||
}
|
||||
.Ed
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
|
@ -31,25 +31,34 @@
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm vfs_rootmountalloc
|
||||
.Nd "allocate a root mount structure"
|
||||
.Nd "allocate a root"
|
||||
.Vt mount
|
||||
structure
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/vnode.h
|
||||
.In sys/mount.h
|
||||
.Ft int
|
||||
.Fn vfs_rootmountalloc "char *fstypename" "char *devname" "struct mount **mpp"
|
||||
.Sh DESCRIPTION
|
||||
.Fn vfs_rootmountalloc
|
||||
allocates a mount structure initialized from the vfsconf type
|
||||
that matches
|
||||
allocates a
|
||||
.Vt mount
|
||||
structure initialized from the
|
||||
.Vt vfsconf
|
||||
type that matches
|
||||
.Fa fstypename .
|
||||
.Sh RETURN VALUES
|
||||
If successful 0 is returned and
|
||||
If successful, 0 is returned and
|
||||
.Fa mpp
|
||||
points to the newly allocated mount structure.
|
||||
.Dv ENODEV
|
||||
points to the newly allocated
|
||||
.Vt mount
|
||||
structure.
|
||||
.Er ENODEV
|
||||
is returned if
|
||||
.Fa fstypename
|
||||
is NULL or invalid.
|
||||
is
|
||||
.Dv NULL
|
||||
or invalid.
|
||||
.Sh SEE ALSO
|
||||
.Xr vfsconf 9
|
||||
.Sh AUTHORS
|
||||
|
@ -34,24 +34,30 @@
|
||||
.Nd "generate current timestamp"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/vnode.h
|
||||
.Ft void
|
||||
.Fn vfs_timespec "struct timespec *tsp"
|
||||
.Fn vfs_timestamp "struct timespec *tsp"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn vfs_timespec
|
||||
.Fn vfs_timestamp
|
||||
function fills in
|
||||
.Fa tsp
|
||||
with the current time.
|
||||
.Pp
|
||||
The precision is based on the value of the
|
||||
.Dv vfs.timestamp_precision
|
||||
.Va vfs.timestamp_precision
|
||||
sysctl variable:
|
||||
.Bd -literal
|
||||
0 = seconds only; nanoseconds are zeroed.
|
||||
1 = seconds and nanoseconds, accurate within 1/HZ.
|
||||
2 = seconds and nanoseconds, trucated to microseconds.
|
||||
>=3 = seconds and nanoseconds, maximum precision.
|
||||
.Ed
|
||||
.Pp
|
||||
.Bl -tag -width ".No \(>=3" -compact
|
||||
.It 0
|
||||
seconds only; nanoseconds are zeroed.
|
||||
.It 1
|
||||
seconds and nanoseconds, accurate within 1/HZ.
|
||||
.It 2
|
||||
seconds and nanoseconds, trucated to microseconds.
|
||||
.It \(>=3
|
||||
seconds and nanoseconds, maximum precision.
|
||||
.El
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Chad David Aq davidc@acns.ab.ca .
|
||||
|
@ -42,34 +42,52 @@
|
||||
.Ft int
|
||||
.Fn vfs_modevent "module_t mod" "int type" "void *data"
|
||||
.Sh DESCRIPTION
|
||||
Each filesystem type known to the kernel has a vfsconf structure that contains the
|
||||
Each filesystem type known to the kernel has a
|
||||
.Vt vfsconf
|
||||
structure that contains the
|
||||
information required to create a new mount of that filesystems type.
|
||||
.Bd -literal
|
||||
struct vfsconf {
|
||||
struct vfsops *vfc_vfsops; /* filesystem operations vector */
|
||||
char vfc_name[MFSNAMELEN]; /* filesystem type name */
|
||||
int vfc_typenum; /* historic filesystem type number */
|
||||
int vfc_refcount; /* number mounted of this type */
|
||||
int vfc_flags; /* permanent flags */
|
||||
struct vfsconf *vfc_next; /* next in list */
|
||||
};
|
||||
|
||||
struct vfsconf {
|
||||
struct vfsops *vfc_vfsops; /* filesystem operations vector */
|
||||
char vfc_name[MFSNAMELEN]; /* filesystem type name */
|
||||
int vfc_typenum; /* historic filesystem type number */
|
||||
int vfc_refcount; /* number mounted of this type */
|
||||
int vfc_flags; /* permanent flags */
|
||||
struct vfsconf *vfc_next; /* next in list */
|
||||
};
|
||||
.Ed
|
||||
When a new filesystem is mounted
|
||||
.Fn vfs_mount
|
||||
does a lookup of the vfcconf structure by its name, and if it is not already registered,
|
||||
.Pp
|
||||
When a new filesystem is mounted,
|
||||
.Xr vfs_mount 9
|
||||
does a lookup of the
|
||||
.Vt vfsconf
|
||||
structure by its name, and if it is not already registered,
|
||||
attempts to load a kernel module for it.
|
||||
The filesystem operations for the new mount point are taken from vfc_vfsops, and mnt_vfc
|
||||
in the mount structure is made to point directly at the vfcconf structure for the
|
||||
The filesystem operations for the new mount point are taken from
|
||||
.Va vfc_vfsops ,
|
||||
and
|
||||
.Va mnt_vfc
|
||||
in the
|
||||
.Vt mount
|
||||
structure is made to point directly at the
|
||||
.Vt vfsconf
|
||||
structure for the
|
||||
filesystem type.
|
||||
The filesystem type number is taken from vfs_typenum which was assigned in
|
||||
The filesystem type number is taken from
|
||||
.Va vfc_typenum
|
||||
which was assigned in
|
||||
.Fn vfs_register ,
|
||||
and the mount flags are taken from a mask of vfc_flags.
|
||||
Each time a filesystem of a given type is mounted vfc_refcount is incremented.
|
||||
and the mount flags are taken from a mask of
|
||||
.Va vfc_flags .
|
||||
Each time a filesystem of a given type is mounted,
|
||||
.Va vfc_refcount
|
||||
is incremented.
|
||||
.Pp
|
||||
.Fn vfs_register
|
||||
takes a new vfsconf structure and adds it to the list of existing filesystems.
|
||||
If the type has not already been registered it is initialize by calling the
|
||||
takes a new
|
||||
.Vt vfsconf
|
||||
structure and adds it to the list of existing filesystems.
|
||||
If the type has not already been registered, it is initialized by calling the
|
||||
.Fn vfs_init
|
||||
function in the filesystem operations vector.
|
||||
.Fn vfs_register
|
||||
@ -82,49 +100,51 @@ unlinks
|
||||
from the list of registered filesystem types if there are currently no mounted instances.
|
||||
If the
|
||||
.Fn vfs_uninit
|
||||
function in the filesystems initialization vector is defined it is called.
|
||||
function in the filesystems initialization vector is defined, it is called.
|
||||
.Pp
|
||||
.Fn vfs_modevent
|
||||
is registered by
|
||||
.Fn VFS_SET
|
||||
to handle the loading and unloading of filesystem kernel modules.
|
||||
In the case of
|
||||
.Dv MOD_LOAD
|
||||
.Dv MOD_LOAD ,
|
||||
.Fn vfs_register
|
||||
is called.
|
||||
In the case of
|
||||
.Dv MOD_UNLOAD
|
||||
.Dv MOD_UNLOAD ,
|
||||
.Fn vfs_unregister
|
||||
is called.
|
||||
.Sh RETURN VALUES
|
||||
.Fn vfs_register
|
||||
returns 0 if successful; otherwise,
|
||||
.Dv EEXIST
|
||||
.Er EEXIST
|
||||
is returned indicating that the filesystem type has already been registered.
|
||||
.Pp
|
||||
.Fn vfs_unregister
|
||||
returns 0 if successful.
|
||||
If no vfsconf entry can be found matching the name in
|
||||
If no
|
||||
.Vt vfsconf
|
||||
entry can be found matching the name in
|
||||
.Fa vfc ,
|
||||
.Dv EINVAL
|
||||
.Er EINVAL
|
||||
is returned.
|
||||
If the reference count of mounted instances of the filesystem type is not zero
|
||||
.Dv EBUSY
|
||||
If the reference count of mounted instances of the filesystem type is not zero,
|
||||
.Er EBUSY
|
||||
is returned.
|
||||
If
|
||||
.Fn vfs_uninit
|
||||
is called any errors it returns will be returned by
|
||||
is called, any errors it returns will be returned by
|
||||
.Fn vfs_unregister .
|
||||
.Pp
|
||||
.Fn vfs_modevent
|
||||
returns the result of the call to
|
||||
.Fn vfs_register
|
||||
or
|
||||
.Fn vfs_unregister
|
||||
.Fn vfs_unregister ,
|
||||
whatever the case.
|
||||
.Sh SEE ALSO
|
||||
.Xr vfs_mount 9 ,
|
||||
.Xr vfs_rootmountalloc 9 ,
|
||||
.Xr vfs_mount ,
|
||||
.Xr VFS_SET 9
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
|
@ -30,8 +30,7 @@
|
||||
.Dt VGONE 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm vgone
|
||||
.Nm vgonel
|
||||
.Nm vgone , vgonel
|
||||
.Nd "prepare a vnode for reuse"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
@ -39,7 +38,7 @@
|
||||
.Ft void
|
||||
.Fn vgone "struct vnode *vp"
|
||||
.Ft void
|
||||
.Fn vgonel "struct vnod *vp" "struct thread *td"
|
||||
.Fn vgonel "struct vnode *vp" "struct thread *td"
|
||||
.Sh DESCRIPTION
|
||||
.Fn vgone
|
||||
and
|
||||
@ -48,9 +47,12 @@ prepare a vnode for reuse by another filesystem.
|
||||
The preparation includes the cleaning of all filesystem specific data and
|
||||
the removal from its mount point vnode list.
|
||||
.Pp
|
||||
If the vnode has a usecount of zero, and its
|
||||
If the vnode has a
|
||||
.Va v_usecount
|
||||
of zero, and its
|
||||
.Dv VDOOMED
|
||||
flag is not set it is moved to the head of the free list as in most cases the vnode
|
||||
flag is not set, it is moved to the head of the free list
|
||||
as in most cases the vnode
|
||||
is about to be reused, or its filesystem being unmounted.
|
||||
.Pp
|
||||
The difference between
|
||||
|
@ -30,9 +30,8 @@
|
||||
.Dt VHOLD 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm vhold
|
||||
.Nm vdrop
|
||||
.Nd "aquire/release a hold on a vnode"
|
||||
.Nm vhold , vdrop
|
||||
.Nd "acquire/release a hold on a vnode"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/vnode.h
|
||||
@ -43,20 +42,24 @@
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn vhold
|
||||
function increments the v_holdcnt of the given vnode.
|
||||
If the vnode has already been added to the free list and is still referenced
|
||||
function increments the
|
||||
.Va v_holdcnt
|
||||
of the given vnode.
|
||||
If the vnode has already been added to the free list and is still referenced,
|
||||
it will be removed.
|
||||
.Pp
|
||||
The
|
||||
.Fn vdrop
|
||||
function decrements the v_holdcnt of the vnode.
|
||||
If the holdcount is zero or less prior to calling
|
||||
.Fn vdrop
|
||||
function decrements the
|
||||
.Va v_holdcnt
|
||||
of the vnode.
|
||||
If the holdcount is less than or equal zero prior to calling
|
||||
.Fn vdrop ,
|
||||
the system will panic.
|
||||
If the vnode is no longer referenced it will freed.
|
||||
If the vnode is no longer referenced, it will freed.
|
||||
.Sh SEE ALSO
|
||||
.Xr vfree 9 ,
|
||||
.Xr vbusy 9
|
||||
.Xr vbusy 9 ,
|
||||
.Xr vfree 9
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Chad David Aq davidc@acns.ab.ca .
|
||||
|
@ -72,9 +72,8 @@ and
|
||||
.Fa size .
|
||||
The byte range is expected to be within a single page, and if
|
||||
.Fa size
|
||||
is zero no bits will be set.
|
||||
is zero, no bits will be set.
|
||||
.Pp
|
||||
.\" ------------------- VM_PAGE_SET_VALIDCLEAN -------------------
|
||||
.Fn vm_page_set_validclean
|
||||
flags the byte range between
|
||||
.Fa base
|
||||
@ -93,7 +92,7 @@ If
|
||||
.Fa base
|
||||
is zero and
|
||||
.Fa size
|
||||
is one page the modified bit in the page map is cleared; as well,
|
||||
is one page, the modified bit in the page map is cleared; as well,
|
||||
the
|
||||
.Dv PG_NOSYNC
|
||||
flag is cleared.
|
||||
@ -121,11 +120,13 @@ As well as clearing the bits within the page, the generation
|
||||
number within the object holding the page is incremented.
|
||||
.Pp
|
||||
.Fn vm_page_zero_invalid
|
||||
zeros all of the blocks within the page that are currently
|
||||
flaged as invalid.
|
||||
zeroes all of the blocks within the page that are currently
|
||||
flagged as invalid.
|
||||
If
|
||||
.Fa setvalid
|
||||
is TRUE, all of the valid bits within the page are set.
|
||||
is
|
||||
.Dv TRUE ,
|
||||
all of the valid bits within the page are set.
|
||||
.Pp
|
||||
In some cases, such as NFS, the valid bits cannot be set
|
||||
in order to maintain cache consistency.
|
||||
@ -142,12 +143,14 @@ If
|
||||
.Fa size
|
||||
is zero and the page is entirely invalid
|
||||
.Fn vm_page_is_valid
|
||||
will return TRUE, in all other cases
|
||||
a size of zero will return FALSE.
|
||||
will return
|
||||
.Dv TRUE ,
|
||||
in all other cases a size of zero will return
|
||||
.Dv FALSE .
|
||||
.Pp
|
||||
.Fn vm_page_test_dirty
|
||||
checks if a page has been modified via any of its physical maps,
|
||||
and if so flags the entire page as dirty.
|
||||
and if so, flags the entire page as dirty.
|
||||
.Fn vm_page_dirty
|
||||
is called to modify the dirty bits.
|
||||
.Pp
|
||||
|
@ -43,7 +43,7 @@ The
|
||||
.Fn vm_page_dontneed
|
||||
function advises the VM system that the given page is no longer
|
||||
required.
|
||||
If the page is already in the inactive queue or the cache queue this
|
||||
If the page is already in the inactive queue or in the cache queue, this
|
||||
function does nothing; otherwise the page is deactivated.
|
||||
.Pp
|
||||
Note that
|
||||
|
@ -44,10 +44,10 @@ The
|
||||
function returns the page at
|
||||
.Fa pindex
|
||||
from the given object.
|
||||
If the page exists and is busy
|
||||
If the page exists and is busy,
|
||||
.Fn vm_page_grab
|
||||
will sleep while waiting for it.
|
||||
If the page does not exists it is allocated.
|
||||
If the page does not exist, it is allocated.
|
||||
.Pp
|
||||
If
|
||||
.Dv VM_ALLOC_RETRY
|
||||
@ -58,9 +58,9 @@ or while allocating it,
|
||||
.Dv NULL
|
||||
is returned.
|
||||
.Sh RETURN VALUES
|
||||
If successful
|
||||
If successful,
|
||||
.Fn vm_page_grab
|
||||
return the page; otherwise,
|
||||
returns the page; otherwise,
|
||||
.Dv NULL
|
||||
is returned.
|
||||
.Sh SEE ALSO
|
||||
|
@ -45,8 +45,8 @@ function flags that the page should no longer be managed by the VM system like
|
||||
other pages.
|
||||
The page is removed from any page queue it may be on, and after its
|
||||
.Dv PG_UNMANAGED
|
||||
flag is set the page daemon will ignore it (if the page is
|
||||
currently wired it will not be removed from its current queue).
|
||||
flag is set, the page daemon will ignore it (if the page is
|
||||
currently wired, it will not be removed from its current queue).
|
||||
.Pp
|
||||
Unmanaged pages are used by
|
||||
.Dv OBJT_PHYS
|
||||
|
Loading…
Reference in New Issue
Block a user