git: ecb5fe3c5e48 - main - nv.9: Add a new subsection documenting kernel-specific behavior

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Fri, 03 Jan 2025 15:52:06 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=ecb5fe3c5e483e09544645ba84281b4a8cba4edf

commit ecb5fe3c5e483e09544645ba84281b4a8cba4edf
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2025-01-03 15:51:51 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2025-01-03 15:51:51 +0000

    nv.9: Add a new subsection documenting kernel-specific behavior
    
    Reviewed by:    emaste
    Sponsored by:   Chelsio Communications
    Differential Revision:  https://reviews.freebsd.org/D48257
---
 share/man/man9/nv.9 | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/share/man/man9/nv.9 b/share/man/man9/nv.9
index 4e4542c146ef..8c99f1d12200 100644
--- a/share/man/man9/nv.9
+++ b/share/man/man9/nv.9
@@ -859,7 +859,7 @@ If no element named
 .Fa name
 with the appropriate type exists, the program aborts.
 The nvlist must not be in the error state.
-.Sh NOTES
+.Ss Notes
 The
 .Fn nvlist_pack
 and
@@ -873,6 +873,36 @@ The
 and
 .Fn nvlist_xfer
 functions can transfer nvlists between hosts with different endianness.
+.Ss Kernel Considerations
+The
+.Nm nv ,
+.Nm cnv ,
+and
+.Nm dnv
+APIs can be used in the kernel with the following differences:
+.Bl -bullet
+.It
+File descriptor and file descriptor array value types are not supported.
+.It
+.Fn nvlist_recv ,
+.Fn nvlist_send ,
+and
+.Fn nvlist_xfer
+are not supported.
+.It
+All memory allocations use the
+.Dv M_NVLIST
+memory type with
+.Xr malloc 9
+and
+.Xr free 9 .
+As a result, any allocated buffers moved into an nvlist must be allocated with
+.Dv M_NVLIST ,
+and buffers returned by functions such as
+.Fn nvlist_pack
+must be freed with
+.Dv M_NVLIST .
+.El
 .Sh EXAMPLES
 The following example demonstrates how to prepare an nvlist and send it over a
 .Xr unix 4