1.\" 2.\" This file and its contents are supplied under the terms of the 3.\" Common Development and Distribution License ("CDDL"), version 1.0. 4.\" You may only use this file in accordance with the terms of version 5.\" 1.0 of the CDDL. 6.\" 7.\" A full copy of the text of the CDDL should have accompanied this 8.\" source. A copy of the CDDL is also available via the Internet at 9.\" http://www.illumos.org/license/CDDL. 10.\" 11.\" 12.\" Copyright 2017, Richard Lowe. 13.\" 14.Dd Jan 18, 2017 15.Dt VMEM_WALK 9F 16.Os 17.Sh NAME 18.Nm vmem_walk , 19.Nm vmem_size 20.Nd walk a (sub\-)set of the segments in a vmem arena 21.Sh SYNOPSIS 22.In sys/vmem.h 23.Ft void 24.Fo vmem_walk 25.Fa "vmem_t *vmp" 26.Fa "int typemask" 27.Fa "void (*func)(void *, void *, size_t)" 28.Fa "void *arg" 29.Fc 30.Ft size_t 31.Fo vmem_size 32.Fa "vmem_t *vmp" 33.Fa "int typemask" 34.Fc 35.Sh INTERFACE LEVEL 36illumos DDI specific 37.Sh PARAMETERS 38.Bl -tag -width Ds 39.It Fa vmp 40The vmem arena to walk. 41.It Fa typemask 42A bitmask indicating the types of segment to operate on. 43.Bl -tag -width Ds 44.It Dv VMEM_ALLOC 45Allocated segments. 46.It Dv VMEM_FREE 47Free segments. 48.El 49.It Fa func 50The function to apply to each segment matching 51.Fa typemask . 52.Fa func 53should accept 3 arguments and return void: 54.Bl -tag -width Ds 55.It Fa "void *arg" 56The 57.Fa arg 58passed to 59.Fn vmem_walk . 60.It Fa "void *vaddr" 61The base address of the segment. 62.It Fa "size_t size" 63The size of the segment. 64.El 65.It Fa arg 66An arbitrary argument passed to each call to 67.Fn func . 68.El 69.Sh DESCRIPTION 70.Fn vmem_walk 71walks each segment in the arena 72.Fa vmp 73and applies 74.Fa func 75to each which matches 76.Fa typemask . 77.Pp 78.Fn vmem_size 79walks each segment in the arena 80.Fa vmp 81and totals the size of each matching 82.Fa typemask . 83.Sh CONTEXT 84This function may be called from user or kernel context. 85.Sh SEE ALSO 86.Xr vmem 9 , 87.Xr vmem_alloc 9F , 88.Xr vmem_create 9F 89