xref: /freebsd/lib/libuvmem/libuvmem.3 (revision 7295aeaf5f5cbbbb16d4992b13b08bce09f03609)
1*7295aeafSKonstantin Belousov.\" SPDX-License-Identifier: BSD-2-Clause
2*7295aeafSKonstantin Belousov.\"
3*7295aeafSKonstantin Belousov.\" Copyright (c) 2025 The FreeBSD Foundation
4*7295aeafSKonstantin Belousov.\"
5*7295aeafSKonstantin Belousov.\" This documentation was written by
6*7295aeafSKonstantin Belousov.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
7*7295aeafSKonstantin Belousov.\" from the FreeBSD Foundation.
8*7295aeafSKonstantin Belousov.\"
9*7295aeafSKonstantin Belousov.Dd October 16, 2025
10*7295aeafSKonstantin Belousov.Dt LIBUVMEM 3
11*7295aeafSKonstantin Belousov.Os
12*7295aeafSKonstantin Belousov.Sh NAME
13*7295aeafSKonstantin Belousov.Nm libuvmem
14*7295aeafSKonstantin Belousov.Nd userspace general purpose resource allocator
15*7295aeafSKonstantin Belousov.Sh SYNOPSIS
16*7295aeafSKonstantin Belousov.Lb libuvmem
17*7295aeafSKonstantin Belousov.In sys/vmem.h
18*7295aeafSKonstantin Belousov.Sh DESCRIPTION
19*7295aeafSKonstantin BelousovThe
20*7295aeafSKonstantin Belousov.Nm
21*7295aeafSKonstantin Belousovis a general purpose resource allocator.
22*7295aeafSKonstantin BelousovIt is a port of the kernel facility of the similar name
23*7295aeafSKonstantin Belousov.Nm vmem .
24*7295aeafSKonstantin Belousov.Pp
25*7295aeafSKonstantin BelousovRefer to the description of the kernel allocator
26*7295aeafSKonstantin Belousov.Xr vmem 9
27*7295aeafSKonstantin Belousovto get the documentation for it.
28*7295aeafSKonstantin Belousov.Sh NOTES
29*7295aeafSKonstantin BelousovThe
30*7295aeafSKonstantin Belousov.Dq quantum cache
31*7295aeafSKonstantin Belousovfeature is not implemented for userspace, and the
32*7295aeafSKonstantin Belousov.Fa quantum
33*7295aeafSKonstantin Belousovand
34*7295aeafSKonstantin Belousov.Fa qcache_max
35*7295aeafSKonstantin Belousovarguments of the
36*7295aeafSKonstantin Belousov.Fn vmem_create
37*7295aeafSKonstantin Belousovfunction are ignored.
38*7295aeafSKonstantin Belousov.Pp
39*7295aeafSKonstantin BelousovThe library internally uses
40*7295aeafSKonstantin Belousov.Xr malloc 3
41*7295aeafSKonstantin Belousovto allocate structures tracking allocations.
42*7295aeafSKonstantin Belousov.Pp
43*7295aeafSKonstantin BelousovThe allocator is thread-safe.
44*7295aeafSKonstantin BelousovLocks for separate
45*7295aeafSKonstantin Belousov.Nm vmem's
46*7295aeafSKonstantin Belousovare independent between each other.
47*7295aeafSKonstantin Belousov.Pp
48*7295aeafSKonstantin BelousovThe supported
49*7295aeafSKonstantin Belousov.Fa flags
50*7295aeafSKonstantin Belousovfor the
51*7295aeafSKonstantin Belousov.Fn vmem_xalloc
52*7295aeafSKonstantin Belousovfunction are
53*7295aeafSKonstantin Belousov.Bl -bullet
54*7295aeafSKonstantin Belousov.It
55*7295aeafSKonstantin Belousov.Dv M_NOWAIT
56*7295aeafSKonstantin Belousov.It
57*7295aeafSKonstantin Belousov.Dv M_FIRSTFIT
58*7295aeafSKonstantin Belousov.It
59*7295aeafSKonstantin Belousov.Dv M_BESTFIT
60*7295aeafSKonstantin Belousov.It
61*7295aeafSKonstantin Belousov.Dv M_NEXTFIT
62*7295aeafSKonstantin Belousov.El
63*7295aeafSKonstantin Belousov.Sh AUTHORS
64*7295aeafSKonstantin BelousovSee
65*7295aeafSKonstantin Belousov.Xr vmem 9
66*7295aeafSKonstantin Belousovfor the history of the kernel allocator.
67*7295aeafSKonstantin Belousov.Pp
68*7295aeafSKonstantin BelousovThe userspace port for
69*7295aeafSKonstantin Belousov.Fx
70*7295aeafSKonstantin Belousovwas done by
71*7295aeafSKonstantin Belousov.An Konstantin Belousov Aq Mt kib@FreeBSD.org .
72