xref: /freebsd/share/man/man9/pmap_kextract.9 (revision c1e21468213e3ae35c5302f94472f1d996d530cd)
174e4a8d2SMina Galić.\"
274e4a8d2SMina Galić.\" SPDX-License-Identifier: BSD-2-Clause
374e4a8d2SMina Galić.\"
474e4a8d2SMina Galić.\" Copyright (c) 2023 The FreeBSD Foundation
574e4a8d2SMina Galić.\"
674e4a8d2SMina Galić.\" This manual page was written by Mina Galić <FreeBSD@igalic.co> under
774e4a8d2SMina Galić.\" sponsorship from the FreeBSD Foundation.
874e4a8d2SMina Galić.\"
9d62e0199SMitchell Horne.Dd October 16, 2023
1074e4a8d2SMina Galić.Dt PMAP_KEXTRACT 9
1174e4a8d2SMina Galić.Os
1274e4a8d2SMina Galić.Sh NAME
1374e4a8d2SMina Galić.Nm pmap_kextract ,
1474e4a8d2SMina Galić.Nm vtophys
1574e4a8d2SMina Galić.Nd extract a physical address from the kernel page table
1674e4a8d2SMina Galić.Sh SYNOPSIS
1774e4a8d2SMina Galić.In sys/param.h
1874e4a8d2SMina Galić.In vm/vm.h
1974e4a8d2SMina Galić.In vm/pmap.h
2074e4a8d2SMina Galić.Ft vm_paddr_t
2174e4a8d2SMina Galić.Fo pmap_kextract
2274e4a8d2SMina Galić.Fa "vm_offset_t va"
2374e4a8d2SMina Galić.Fc
2474e4a8d2SMina Galić.Ft vm_paddr_t
2574e4a8d2SMina Galić.Fo vtophys
2674e4a8d2SMina Galić.Fa "vm_offset_t va"
2774e4a8d2SMina Galić.Fc
2874e4a8d2SMina Galić.Sh DESCRIPTION
2974e4a8d2SMina GalićThe
3074e4a8d2SMina Galić.Fn pmap_kextract
31d62e0199SMitchell Hornefunction retrieves the underlying physical memory address corresponding to the
32d62e0199SMitchell Hornegiven kernel virtual address
3374e4a8d2SMina Galić.Fa va .
34*c1e21468SMitchell HorneThe caller is responsible for ensuring that
3574e4a8d2SMina Galić.Fa va
36*c1e21468SMitchell Hornebelongs to a valid mapping in the kernel address space.
37*c1e21468SMitchell HorneThe returned physical address is only meaningful as long as the mapping remains
38*c1e21468SMitchell Hornestable, so the caller must also have some knowledge or guarantee of the
39*c1e21468SMitchell Hornemapping's lifetime.
40*c1e21468SMitchell HorneFor example, it is invalid to call
41*c1e21468SMitchell Horne.Fn pmap_kextract
42*c1e21468SMitchell Hornewith the address of a malloc'd object while there is a possibility for that
43*c1e21468SMitchell Horneobject to be freed concurrently.
44*c1e21468SMitchell Horne.Pp
45*c1e21468SMitchell HorneUnlike
46*c1e21468SMitchell Horne.Xr pmap_extract 9 ,
47*c1e21468SMitchell Horne.Fn pmap_kextract
48*c1e21468SMitchell Horneis safe to be called from any context; it has no internal locking or sleep.
4974e4a8d2SMina Galić.Pp
5074e4a8d2SMina Galić.Fn vtophys
5174e4a8d2SMina Galićis an alias for
5274e4a8d2SMina Galić.Fn pmap_kextract
5374e4a8d2SMina Galićand behaves identically.
5474e4a8d2SMina Galić.Sh RETURN VALUES
5574e4a8d2SMina GalićThe
5674e4a8d2SMina Galić.Fn pmap_kextract
57*c1e21468SMitchell Hornefunction returns the physical address of memory mapped at the kernel
58d62e0199SMitchell Hornevirtual address
5974e4a8d2SMina Galić.Fa va .
6074e4a8d2SMina Galić.Pp
6174e4a8d2SMina Galić.Fn pmap_kextract
6274e4a8d2SMina Galićgenerally does not fail.
6374e4a8d2SMina GalićHowever, if supplied with an illegitimate value for
6474e4a8d2SMina Galić.Fa va ,
6574e4a8d2SMina Galićthe function may return zero, an invalid non-zero value, or call
6674e4a8d2SMina Galić.Xr panic 9 .
6774e4a8d2SMina Galić.Sh SEE ALSO
6874e4a8d2SMina Galić.Xr pmap 9 ,
6974e4a8d2SMina Galić.Xr pmap_extract 9
7074e4a8d2SMina Galić.Sh AUTHORS
7174e4a8d2SMina Galić.An -nosplit
7274e4a8d2SMina GalićThis manual page was written by
7374e4a8d2SMina Galić.An Mina Galić Aq Mt FreeBSD@igalic.co ,
7474e4a8d2SMina Galićbased on the
7574e4a8d2SMina Galić.Xr pmap_extract 9
7674e4a8d2SMina Galićpage written by
7774e4a8d2SMina Galić.An Bruce M Simpson Aq Mt bms@spc.org .
78