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
  36 illumos DDI specific
  37 .Sh PARAMETERS
  38 .Bl -tag -width Ds
  39 .It Fa vmp
  40 The vmem arena to walk
  41 .It Fa typemask
  42 A bitmask indicating the types of segment to operate on
  43 .Bl -tag -width Ds
  44 .It Dv VMEM_ALLOC
  45 Allocated segments
  46 .It Dv VMEM_FREE
  47 Free segments
  48 .El
  49 .It Fa func
  50 The function to apply to each segment matching
  51 .Fa typemask .
  52 .Fa func
  53 should be of 3 values and return void:
  54 .Bl -tag -width Ds
  55 .It Fa "void *arg"
  56 The
  57 .Fa arg
  58 passed to
  59 .Fn vmem_walk
  60 .It Fa "void *vaddr"
  61 The base address of the segment
  62 .It Fa "size_t size"
  63 The size of the segment
  64 .El
  65 .It Fa arg
  66 An arbitrary argument passed to each call to
  67 .Fn func
  68 .El
  69 .Sh DESCRIPTION
  70 .Fn vmem_walk
  71 walks each segment in the arena
  72 .Fa vmp
  73 and applies
  74 .Fa func
  75 to each which matches
  76 .Fa typemask .
  77 .Pp
  78 .Fn vmem_size
  79 walks each segment in the arena
  80 .Fa vmp
  81 and totals the size of each matching
  82 .Fa typemask .
  83 .Sh CONTEXT
  84 This 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