15 vmem_create(const char *name, void *base, size_t size, size_t quantum,
16 vmem_alloc_t *afunc, vmem_free_t *ffunc, vmem_t *source,
17 size_t qcache_max, int vmflag);
18
19 vmem_t *
20 vmem_xcreate(const char *name, void *base, size_t size, size_t quantum,
21 vmem_ximport_t *afunc, vmem_free_t *ffunc, vmem_t *source,
22 size_t qcache_max, int vmflag);
23
24 void
25 vmem_destroy(vmem_t *vmp);
26
27 INTERFACE LEVEL
28 illumos DDI specific
29
30 PARAMETERS
31 name A character string giving a name to the vmem arena to be created.
32
33 base An address indicating the lowest possible value in the arena.
34
35 size The size of the arena to create
36
37 quantum
38 The arena's ``quantum''. The granularity of the arena. The
39 amount allocated at minimum by each request.
40
41 afunc A function which is called to import new spans from source.
42 Which may be NULL if this arena does not import from another.
43
44 ffunc A function which is called to return spans to source. Which may
45 be NULL if this arena does not import from another.
46
47 source An arena from which this arena will import. Which may be NULL if
48 this arena does not import from another.
49
50 qcache_max
51 Each arena offers caching of integer multiples of quantum up to
52 qcache_max.
53
54 vmflag A bitmask of flags indicating the characteristics of this arena.
55
56 VMC_IDENTIFIER
57 The arena represents arbitrary integer identifiers,
58 rather than virtual memory.
59
60 vmp A pointer to the vmem arena to be destroyed.
61
62 DESCRIPTION
63 A vmem arena is a section of an arbitrary address space (a range of
64 integer addresses). This commonly represents virtual memory, but can in
65 fact be an arbitrary set of integers. The VMC_IDENTIFIER flag set at
66 arena creation time differentiates between these two cases.
67
68 The afunc, ffunc, and source arguments combine to support a hierarchical
69 structure of arenas, each importing from a single parent (the source).
70 The vmem_create() and vmem_xcreate() functions differ in that the latter
71 provides an interface for afunc to alter the size of the span imported
72 from source. It is only legal to increase thise size.
73
74 CONTEXT
75 These functions can be called from user or kernel context.
76
77 RETURN VALUES
78 Upon successful completion the vmem_create(and) vmem_xcreate() functions
79 return a pointer to a vmem arena. Otherwise, NULL is returned to
80 indicate the arena could not be created.
81
82 SEE ALSO
83 vmem(9), vmem_add(9F), vmem_alloc(9F)
84
85 illumos January 18, 2017 illumos
|
15 vmem_create(const char *name, void *base, size_t size, size_t quantum,
16 vmem_alloc_t *afunc, vmem_free_t *ffunc, vmem_t *source,
17 size_t qcache_max, int vmflag);
18
19 vmem_t *
20 vmem_xcreate(const char *name, void *base, size_t size, size_t quantum,
21 vmem_ximport_t *afunc, vmem_free_t *ffunc, vmem_t *source,
22 size_t qcache_max, int vmflag);
23
24 void
25 vmem_destroy(vmem_t *vmp);
26
27 INTERFACE LEVEL
28 illumos DDI specific
29
30 PARAMETERS
31 name A character string giving a name to the vmem arena to be created.
32
33 base An address indicating the lowest possible value in the arena.
34
35 size The size of the arena to create.
36
37 quantum
38 The arena's ``quantum''. The granularity of the arena. The
39 amount allocated at minimum by each request. Must be a power of
40 2.
41
42 afunc A function which is called to import new spans from source, which
43 may be NULL if this arena does not import from another. When
44 calling vmem_create() afunc is an vmem_alloc_t a function taking
45 three parameters and returning a pointer to void (the imported
46 space):
47
48 vmem_t *
49 The source arena from which we'll import. The source
50 argument to vmem_create().
51
52 size_t The size to import
53
54 int The vmflag argument used for the import.
55
56 When calling vmem_xcreate() afunc is an vmem_ximport_t a function
57 taking four parameters and returning a pointer to void (the
58 imported space):
59
60 vmem_t *
61 The source arena from which we'll import. The source
62 argument to vmem_xcreate().
63
64 size_t *
65 The size of the import, afunc may increase this size if
66 that is desirable, but must never decrease it.
67
68 size_t The desired alignment of the imported space.
69
70 int the vmflag argument used for the import.
71
72 ffunc A function which is called to return spans to source, which may
73 be NULL if this arena does not import from another. This is a
74 vmem_free_t a function taking three parametes and returning void:
75
76 vmem_t The arena to which space is being returned. The source
77 argument to vmem_create() or vmem_xcreate().
78
79 void * The span being returned to the source arena.
80
81 size_t The size of the span being returned to the source arena.
82
83 source An arena from which this arena will import, which may be NULL if
84 this arena does not import from another.
85
86 qcache_max
87 Each arena offers caching of integer multiples of quantum up to
88 qcache_max, which may be 0.
89
90 vmflag A bitmask of flags indicating the characteristics of this arena.
91
92 VMC_IDENTIFIER
93 The arena represents arbitrary integer identifiers,
94 rather than virtual memory.
95
96 vmp A pointer to the vmem arena to be destroyed.
97
98 DESCRIPTION
99 A vmem arena is a section of an arbitrary address space (a range of
100 integer addresses). This commonly represents virtual memory, but can in
101 fact be an arbitrary set of integers. The VMC_IDENTIFIER flag set at
102 arena creation time differentiates between these two cases.
103
104 The afunc, ffunc, and source arguments combine to support a hierarchical
105 structure of arenas, each importing from a single parent (the source).
106 The vmem_create() and vmem_xcreate() functions differ in that the latter
107 provides an interface for afunc to alter the size of the span imported
108 from source. It is only legal to increase this size.
109
110 CONTEXT
111 These functions can be called from user or kernel context.
112
113 RETURN VALUES
114 Upon successful completion the vmem_create() and vmem_xcreate() functions
115 return a pointer to a vmem arena. Otherwise, NULL is returned to
116 indicate the arena could not be created.
117
118 SEE ALSO
119 vmem(9), vmem_add(9F), vmem_alloc(9F)
120
121 illumos January 18, 2017 illumos
|