xref: /illumos-gate/usr/src/man/man2/memcntl.2 (revision df5cd018c34371890eeeb8c930245b9323e8aa25)
1*df5cd018SRobert Mustacchi.\"
2*df5cd018SRobert Mustacchi.\" Copyright 2022 Oxide Computer Company
3c10c16deSRichard Lowe.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved
4c10c16deSRichard Lowe.\" Copyright 1989 AT&T
5*df5cd018SRobert Mustacchi.\"
6*df5cd018SRobert Mustacchi.\" The contents of this file are subject to the terms of the
7*df5cd018SRobert Mustacchi.\" Common Development and Distribution License (the "License").
8*df5cd018SRobert Mustacchi.\" You may not use this file except in compliance with the License.
9*df5cd018SRobert Mustacchi.\"
10*df5cd018SRobert Mustacchi.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11*df5cd018SRobert Mustacchi.\" or http://www.opensolaris.org/os/licensing.
12*df5cd018SRobert Mustacchi.\" See the License for the specific language governing permissions
13*df5cd018SRobert Mustacchi.\" and limitations under the License.
14*df5cd018SRobert Mustacchi.\"
15*df5cd018SRobert Mustacchi.\" When distributing Covered Code, include this CDDL HEADER in each
16*df5cd018SRobert Mustacchi.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17*df5cd018SRobert Mustacchi.\" If applicable, add the following below this CDDL HEADER, with the
18*df5cd018SRobert Mustacchi.\" fields enclosed by brackets "[]" replaced with your own identifying
19*df5cd018SRobert Mustacchi.\" information: Portions Copyright [yyyy] [name of copyright owner]
20*df5cd018SRobert Mustacchi.\"
21*df5cd018SRobert Mustacchi.Dd March 13, 2022
22*df5cd018SRobert Mustacchi.Dt MEMCNTL 2
23*df5cd018SRobert Mustacchi.Os
24*df5cd018SRobert Mustacchi.Sh NAME
25*df5cd018SRobert Mustacchi.Nm memcntl
26*df5cd018SRobert Mustacchi.Nd memory management control
27*df5cd018SRobert Mustacchi.Sh SYNOPSIS
28*df5cd018SRobert Mustacchi.In sys/types.h
29*df5cd018SRobert Mustacchi.In sys/mman.h
30*df5cd018SRobert Mustacchi.Ft int
31*df5cd018SRobert Mustacchi.Fo memcntl
32*df5cd018SRobert Mustacchi.Fa "void *addr"
33*df5cd018SRobert Mustacchi.Fa "size_t len"
34*df5cd018SRobert Mustacchi.Fa "int cmd"
35*df5cd018SRobert Mustacchi.Fa "void *arg"
36*df5cd018SRobert Mustacchi.Fa "int attr"
37*df5cd018SRobert Mustacchi.Fa "int mask"
38*df5cd018SRobert Mustacchi.Fc
39*df5cd018SRobert Mustacchi.Sh DESCRIPTION
40*df5cd018SRobert MustacchiThe
41*df5cd018SRobert Mustacchi.Fn memcntl
42*df5cd018SRobert Mustacchifunction allows the calling process to apply a variety of control operations
43*df5cd018SRobert Mustacchiover the address space identified by the mappings established for the address
44*df5cd018SRobert Mustacchirange [
45*df5cd018SRobert Mustacchi.Fa addr ,
46*df5cd018SRobert Mustacchi.Fa addr
47*df5cd018SRobert Mustacchi+
48*df5cd018SRobert Mustacchi.Fa len
49*df5cd018SRobert Mustacchi).
50*df5cd018SRobert Mustacchi.Pp
51*df5cd018SRobert MustacchiThe
52*df5cd018SRobert Mustacchi.Fa addr
53*df5cd018SRobert Mustacchiargument must be a multiple of the pagesize as returned by
54*df5cd018SRobert Mustacchi.Xr sysconf 3C .
55*df5cd018SRobert MustacchiThe scope of the control operations can be further defined with additional
56*df5cd018SRobert Mustacchiselection criteria
57*df5cd018SRobert Mustacchi.Pq in the form of attributes
58*df5cd018SRobert Mustacchiaccording to the bit pattern contained in
59*df5cd018SRobert Mustacchi.Fa attr .
60*df5cd018SRobert Mustacchi.Pp
61c10c16deSRichard LoweThe following attributes specify page mapping selection criteria:
62*df5cd018SRobert Mustacchi.Bl -tag -width Ds -offset indent
63*df5cd018SRobert Mustacchi.It Dv MEMCNTL_SHARED
64c10c16deSRichard LowePage is mapped shared.
65*df5cd018SRobert Mustacchi.It Dv MEMCNTL_PRIVATE
66c10c16deSRichard LowePage is mapped private.
67*df5cd018SRobert Mustacchi.El
68*df5cd018SRobert Mustacchi.Pp
69*df5cd018SRobert MustacchiThe following attributes specify page protection selection criteria.
70*df5cd018SRobert MustacchiThe selection criteria are constructed by a bitwise OR operation on the
71*df5cd018SRobert Mustacchiattribute bits and must match exactly.
72*df5cd018SRobert Mustacchi.Bl -tag -width Ds -offset indent
73*df5cd018SRobert Mustacchi.It Dv PROT_READ
74c10c16deSRichard LowePage can be read.
75*df5cd018SRobert Mustacchi.It Dv PROT_WRITE
76c10c16deSRichard LowePage can be written.
77*df5cd018SRobert Mustacchi.It Dv PROT_EXEC
78c10c16deSRichard LowePage can be executed.
79*df5cd018SRobert Mustacchi.El
80*df5cd018SRobert Mustacchi.Pp
81c10c16deSRichard LoweThe following criteria may also be specified:
82*df5cd018SRobert Mustacchi.Bl -tag -width Ds -offset indent
83*df5cd018SRobert Mustacchi.It Dv PROC_TEXT
84c10c16deSRichard LoweProcess text.
85*df5cd018SRobert Mustacchi.It Dv PROC_DATA
86c10c16deSRichard LoweProcess data.
87*df5cd018SRobert Mustacchi.El
88*df5cd018SRobert Mustacchi.Pp
89*df5cd018SRobert MustacchiThe
90*df5cd018SRobert Mustacchi.Dv PROC_TEXT
91*df5cd018SRobert Mustacchiattribute specifies all privately mapped segments with read and execute
92*df5cd018SRobert Mustacchipermission, and the
93*df5cd018SRobert Mustacchi.Dv PROC_DATA
94*df5cd018SRobert Mustacchiattribute specifies all privately mapped segments with write permission.
95*df5cd018SRobert Mustacchi.Pp
96c10c16deSRichard LoweSelection criteria can be used to describe various abstract memory objects
97*df5cd018SRobert Mustacchiwithin the address space on which to operate.
98*df5cd018SRobert MustacchiIf an operation shall not be constrained by the selection criteria,
99*df5cd018SRobert Mustacchi.Fa attr
100*df5cd018SRobert Mustacchimust have the value
101*df5cd018SRobert Mustacchi.Sy 0 .
102*df5cd018SRobert Mustacchi.Pp
103*df5cd018SRobert MustacchiThe operation to be performed is identified by the argument
104*df5cd018SRobert Mustacchi.Fa cmd .
105*df5cd018SRobert MustacchiThe symbolic names for the operations are defined in
106*df5cd018SRobert Mustacchi.In sys/mman.h
107*df5cd018SRobert Mustacchias follows:
108*df5cd018SRobert Mustacchi.Bl -tag -width Ds -offset indent
109*df5cd018SRobert Mustacchi.It Dv MC_LOCK
110*df5cd018SRobert MustacchiLock in memory all pages in the range with attributes
111*df5cd018SRobert Mustacchi.Fa attr .
112*df5cd018SRobert MustacchiA given page may be locked multiple times through different mappings; however,
113*df5cd018SRobert Mustacchiwithin a given mapping, page locks do not nest.
114*df5cd018SRobert MustacchiMultiple lock operations on the same address in the same process will all be
115*df5cd018SRobert Mustacchiremoved with a single unlock operation.
116*df5cd018SRobert MustacchiA page locked in one process and mapped in another
117*df5cd018SRobert Mustacchi.Pq or visible through a different mapping in the locking process
118*df5cd018SRobert Mustacchiis locked in memory as long as the locking process does neither an implicit nor
119*df5cd018SRobert Mustacchiexplicit unlock operation.
120*df5cd018SRobert MustacchiIf a locked mapping is removed, or a page is deleted through file removal or
121*df5cd018SRobert Mustacchitruncation, an unlock operation is implicitly performed.
122*df5cd018SRobert MustacchiIf a writable
123*df5cd018SRobert Mustacchi.Dv MAP_PRIVATE
124*df5cd018SRobert Mustacchipage in the address range is changed, the lock will be transferred to the
125*df5cd018SRobert Mustacchiprivate page.
126*df5cd018SRobert Mustacchi.Pp
127*df5cd018SRobert MustacchiThe
128*df5cd018SRobert Mustacchi.Fa arg
129*df5cd018SRobert Mustacchiargument is not used, but must be
130*df5cd018SRobert Mustacchi.Dv NULL
131*df5cd018SRobert Mustacchito ensure compatibility with potential future enhancements.
132*df5cd018SRobert Mustacchi.It Dv MC_LOCKAS
133c10c16deSRichard LoweLock in memory all pages mapped by the address space with attributes
134*df5cd018SRobert Mustacchi.Fa attr .
135*df5cd018SRobert MustacchiThe
136*df5cd018SRobert Mustacchi.Fa addr
137*df5cd018SRobert Mustacchiand
138*df5cd018SRobert Mustacchi.Fa len
139*df5cd018SRobert Mustacchiarguments are not used, but must be
140*df5cd018SRobert Mustacchi.Dv NULL
141*df5cd018SRobert Mustacchiand
142*df5cd018SRobert Mustacchi.Sy 0
143*df5cd018SRobert Mustacchirespectively, to ensure compatibility with potential future enhancements.
144*df5cd018SRobert MustacchiThe
145*df5cd018SRobert Mustacchi.Fa arg
146*df5cd018SRobert Mustacchiargument is a bit pattern built from the flags:
147*df5cd018SRobert Mustacchi.Bl -tag -width Ds
148*df5cd018SRobert Mustacchi.It Dv MCL_CURRENT
149c10c16deSRichard LoweLock current mappings.
150*df5cd018SRobert Mustacchi.It Dv MCL_FUTURE
151c10c16deSRichard LoweLock future mappings.
152*df5cd018SRobert Mustacchi.El
153*df5cd018SRobert Mustacchi.Pp
154*df5cd018SRobert MustacchiThe value of
155*df5cd018SRobert Mustacchi.Fa arg
156*df5cd018SRobert Mustacchidetermines whether the pages to be locked are those currently mapped by the
157*df5cd018SRobert Mustacchiaddress space, those that will be mapped in the future, or both.
158*df5cd018SRobert MustacchiIf
159*df5cd018SRobert Mustacchi.Dv MCL_FUTURE
160*df5cd018SRobert Mustacchiis specified, then all mappings subsequently added to the address space will be
161*df5cd018SRobert Mustacchilocked, provided sufficient memory is available.
162*df5cd018SRobert Mustacchi.It Dv MC_SYNC
163c10c16deSRichard LoweWrite to their backing storage locations all modified pages in the range with
164*df5cd018SRobert Mustacchiattributes
165*df5cd018SRobert Mustacchi.Fa attr .
166*df5cd018SRobert MustacchiOptionally, invalidate cache copies.
167*df5cd018SRobert MustacchiThe backing storage for a modified
168*df5cd018SRobert Mustacchi.Dv MAP_SHARED
169*df5cd018SRobert Mustacchimapping is the file the page is mapped to; the backing storage for a modified
170*df5cd018SRobert Mustacchi.Dv MAP_PRIVATE
171*df5cd018SRobert Mustacchimapping is its swap area.
172*df5cd018SRobert MustacchiThe
173*df5cd018SRobert Mustacchi.Fa arg
174*df5cd018SRobert Mustacchiargument is a bit pattern built from the flags used to control the behavior of
175*df5cd018SRobert Mustacchithe operation:
176*df5cd018SRobert Mustacchi.Bl -tag -width Ds
177*df5cd018SRobert Mustacchi.It Dv MS_ASYNC
178c10c16deSRichard LowePerform asynchronous writes.
179*df5cd018SRobert MustacchiThe function returns immediately once all write operations are scheduled
180*df5cd018SRobert Mustacchi.Po unless
181*df5cd018SRobert Mustacchi.Dv MS_SYNC
182*df5cd018SRobert Mustacchiis also specified
183*df5cd018SRobert Mustacchi.Pc .
184*df5cd018SRobert Mustacchi.It Dv MS_SYNC
185c10c16deSRichard LowePerform synchronous writes.
186*df5cd018SRobert MustacchiThe function will not return until all write operations are completed.
187*df5cd018SRobert Mustacchi.It Dv MS_INVALIDATE
188*df5cd018SRobert MustacchiInvalidate all cached copies of data in memory, so that further references to
189*df5cd018SRobert Mustacchithe pages will be obtained by the system from their backing storage locations.
190*df5cd018SRobert MustacchiThis operation should be used by applications that require a memory object to be
191*df5cd018SRobert Mustacchiin a known state.
192*df5cd018SRobert Mustacchi.El
193*df5cd018SRobert Mustacchi.It Dv MC_UNLOCK
194*df5cd018SRobert MustacchiUnlock all pages in the range with attributes
195*df5cd018SRobert Mustacchi.Fa attr .
196*df5cd018SRobert MustacchiThe
197*df5cd018SRobert Mustacchi.Fa arg
198*df5cd018SRobert Mustacchiargument is not used, but must be
199*df5cd018SRobert Mustacchi.Dv NULL
200*df5cd018SRobert Mustacchito ensure compatibility with potential future enhancements.
201*df5cd018SRobert Mustacchi.It Dv MC_UNLOCKAS
202c10c16deSRichard LoweRemove address space memory locks and locks on all pages in the address space
203*df5cd018SRobert Mustacchiwith attributes
204*df5cd018SRobert Mustacchi.Fa attr .
205*df5cd018SRobert MustacchiThe
206*df5cd018SRobert Mustacchi.Fa addr ,
207*df5cd018SRobert Mustacchi.Fa len ,
208*df5cd018SRobert Mustacchiand
209*df5cd018SRobert Mustacchi.Fa arg
210*df5cd018SRobert Mustacchiarguments are not used, but must be
211*df5cd018SRobert Mustacchi.Dv NULL ,
212*df5cd018SRobert Mustacchi0, and
213*df5cd018SRobert Mustacchi.Dv NULL ,
214*df5cd018SRobert Mustacchirespectively, to ensure compatibility with potential future enhancements.
215*df5cd018SRobert Mustacchi.It Dv MC_HAT_ADVISE
216*df5cd018SRobert MustacchiAdvise system how a region of user-mapped memory will be accessed.
217*df5cd018SRobert MustacchiThe
218*df5cd018SRobert Mustacchi.Fa arg
219*df5cd018SRobert Mustacchiargument is interpreted as a
220*df5cd018SRobert Mustacchi.Dq Vt struct memcntl_mha * .
221*df5cd018SRobert MustacchiThe following members are defined in a
222*df5cd018SRobert Mustacchi.Vt struct memcntl_mha :
223*df5cd018SRobert Mustacchi.Bd -literal -offset indent
224c10c16deSRichard Loweuint_t mha_cmd;
225c10c16deSRichard Loweuint_t mha_flags;
226c10c16deSRichard Lowesize_t mha_pagesize;
227*df5cd018SRobert Mustacchi.Ed
228*df5cd018SRobert Mustacchi.Pp
229*df5cd018SRobert MustacchiThe accepted values for
230*df5cd018SRobert Mustacchi.Vt mha_cmd
231*df5cd018SRobert Mustacchiare:
232*df5cd018SRobert Mustacchi.Bd -literal -offset indent
233c10c16deSRichard LoweMHA_MAPSIZE_VA
234c10c16deSRichard LoweMHA_MAPSIZE_STACK
235c10c16deSRichard LoweMHA_MAPSIZE_BSSBRK
236*df5cd018SRobert Mustacchi.Ed
237*df5cd018SRobert Mustacchi.Pp
238*df5cd018SRobert MustacchiThe
239*df5cd018SRobert Mustacchi.Fa mha_flags
240*df5cd018SRobert Mustacchimember is reserved for future use and must always be set to 0.
241*df5cd018SRobert MustacchiThe
242*df5cd018SRobert Mustacchi.Fa mha_pagesize
243*df5cd018SRobert Mustacchimember must be a valid size as obtained from
244*df5cd018SRobert Mustacchi.Xr getpagesizes 3C
245*df5cd018SRobert Mustacchior the constant value 0 to allow the system to choose an appropriate hardware
246*df5cd018SRobert Mustacchiaddress translation mapping size.
247*df5cd018SRobert Mustacchi.Pp
248*df5cd018SRobert Mustacchi.Dv MHA_MAPSIZE_VA
249*df5cd018SRobert Mustacchisets the preferred hardware address translation mapping size of the region of
250*df5cd018SRobert Mustacchimemory from
251*df5cd018SRobert Mustacchi.Fa addr
252*df5cd018SRobert Mustacchito
253*df5cd018SRobert Mustacchi.Fa addr
254*df5cd018SRobert Mustacchi+
255*df5cd018SRobert Mustacchi.Fa len .
256*df5cd018SRobert MustacchiBoth
257*df5cd018SRobert Mustacchi.Fa addr
258*df5cd018SRobert Mustacchiand
259*df5cd018SRobert Mustacchi.Fa len
260*df5cd018SRobert Mustacchimust be aligned to an
261*df5cd018SRobert Mustacchi.Fa mha_pagesize
262*df5cd018SRobert Mustacchiboundary.
263*df5cd018SRobert MustacchiThe entire virtual address region from
264*df5cd018SRobert Mustacchi.Fa addr
265*df5cd018SRobert Mustacchito
266*df5cd018SRobert Mustacchi.Fa addr
267*df5cd018SRobert Mustacchi+
268*df5cd018SRobert Mustacchi.Fa len
269*df5cd018SRobert Mustacchimust not have any holes.
270*df5cd018SRobert MustacchiPermissions within each
271*df5cd018SRobert Mustacchi.Fa mha_pagesize Ns -aligned
272*df5cd018SRobert Mustacchiportion of the region must be consistent.
273*df5cd018SRobert MustacchiWhen a size of 0 is specified, the system selects an appropriate size based on
274*df5cd018SRobert Mustacchithe size and alignment of the memory region, type of processor, and other
275*df5cd018SRobert Mustacchiconsiderations.
276*df5cd018SRobert Mustacchi.Pp
277*df5cd018SRobert Mustacchi.Dv MHA_MAPSIZE_STACK
278*df5cd018SRobert Mustacchisets the preferred hardware address translation mapping size of the process main
279*df5cd018SRobert Mustacchithread stack segment.
280*df5cd018SRobert MustacchiThe
281*df5cd018SRobert Mustacchi.Fa addr
282*df5cd018SRobert Mustacchiand
283*df5cd018SRobert Mustacchi.Fa len
284*df5cd018SRobert Mustacchiarguments must be
285*df5cd018SRobert Mustacchi.Dv NULL
286*df5cd018SRobert Mustacchiand 0, respectively.
287*df5cd018SRobert Mustacchi.Pp
288*df5cd018SRobert Mustacchi.Dv MHA_MAPSIZE_BSSBRK
289*df5cd018SRobert Mustacchisets the preferred hardware address translation mapping size of the process
290*df5cd018SRobert Mustacchiheap.
291*df5cd018SRobert MustacchiThe
292*df5cd018SRobert Mustacchi.Fa addr
293*df5cd018SRobert Mustacchiand
294*df5cd018SRobert Mustacchi.Fa len
295*df5cd018SRobert Mustacchiarguments must be
296*df5cd018SRobert Mustacchi.Dv NULL
297*df5cd018SRobert Mustacchiand 0, respectively.
298*df5cd018SRobert MustacchiSee the NOTES section of the
299*df5cd018SRobert Mustacchi.Xr ppgsz 1
300c10c16deSRichard Lowemanual page for additional information on process heap alignment.
301*df5cd018SRobert Mustacchi.Pp
302*df5cd018SRobert MustacchiThe
303*df5cd018SRobert Mustacchi.Fa attr
304*df5cd018SRobert Mustacchiargument must be 0 for all
305*df5cd018SRobert Mustacchi.Dv MC_HAT_ADVISE
306*df5cd018SRobert Mustacchioperations.
307*df5cd018SRobert Mustacchi.El
308*df5cd018SRobert Mustacchi.Pp
309*df5cd018SRobert MustacchiThe
310*df5cd018SRobert Mustacchi.Fa mask
311*df5cd018SRobert Mustacchiargument must be 0; it is reserved for future use.
312*df5cd018SRobert Mustacchi.Pp
313c10c16deSRichard LoweLocks established with the lock operations are not inherited by a child process
314*df5cd018SRobert Mustacchiafter
315*df5cd018SRobert Mustacchi.Xr fork 2 .
316*df5cd018SRobert MustacchiThe
317*df5cd018SRobert Mustacchi.Fn memcntl
318*df5cd018SRobert Mustacchifunction fails if it attempts to lock more memory than a system-specific limit.
319*df5cd018SRobert Mustacchi.Pp
320c10c16deSRichard LoweDue to the potential impact on system resources, the operations
321*df5cd018SRobert Mustacchi.Dv MC_LOCKAS ,
322*df5cd018SRobert Mustacchi.Dv MC_LOCK ,
323*df5cd018SRobert Mustacchi.Dv MC_UNLOCKAS ,
324*df5cd018SRobert Mustacchiand
325*df5cd018SRobert Mustacchi.Dv MC_UNLOCK
326*df5cd018SRobert Mustacchiare restricted to privileged processes.
327*df5cd018SRobert Mustacchi.Sh USAGE
328*df5cd018SRobert MustacchiThe
329*df5cd018SRobert Mustacchi.Fn memcntl
330*df5cd018SRobert Mustacchifunction subsumes the operations of
331*df5cd018SRobert Mustacchi.Xr plock 3C .
332*df5cd018SRobert Mustacchi.Pp
333*df5cd018SRobert Mustacchi.Dv MC_HAT_ADVISE
334*df5cd018SRobert Mustacchiis intended to improve performance of applications that use large amounts of
335*df5cd018SRobert Mustacchimemory on processors that support multiple hardware address translation mapping
336*df5cd018SRobert Mustacchisizes; however, it should be used with care.
337*df5cd018SRobert MustacchiNot all processors support all sizes with equal efficiency.
338*df5cd018SRobert MustacchiUse of larger sizes may also introduce extra overhead that could reduce
339*df5cd018SRobert Mustacchiperformance or available memory.
340*df5cd018SRobert MustacchiUsing large sizes for one application may reduce available resources for other
341*df5cd018SRobert Mustacchiapplications and result in slower system wide performance.
342*df5cd018SRobert Mustacchi.Sh RETURN VALUES
343*df5cd018SRobert MustacchiUpon successful completion,
344*df5cd018SRobert Mustacchi.Fn memcntl
345*df5cd018SRobert Mustacchireturns
346*df5cd018SRobert Mustacchi.Sy 0 .
347*df5cd018SRobert MustacchiOtherwise, it returns
348*df5cd018SRobert Mustacchi.Sy -1
349*df5cd018SRobert Mustacchiand sets
350*df5cd018SRobert Mustacchi.Va errno
351*df5cd018SRobert Mustacchito indicate an error.
352*df5cd018SRobert Mustacchi.Sh ERRORS
353*df5cd018SRobert MustacchiThe
354*df5cd018SRobert Mustacchi.Fn memcntl
355*df5cd018SRobert Mustacchifunction will fail if:
356*df5cd018SRobert Mustacchi.Bl -tag -width Er
357*df5cd018SRobert Mustacchi.It Er EAGAIN
358c10c16deSRichard LoweWhen the selection criteria match, some or all of the memory identified by the
359*df5cd018SRobert Mustacchioperation could not be locked when
360*df5cd018SRobert Mustacchi.Dv MC_LOCK
361*df5cd018SRobert Mustacchior
362*df5cd018SRobert Mustacchi.Dv MC_LOCKAS
363*df5cd018SRobert Mustacchiwas specified, some or all mappings in the address range
364*df5cd018SRobert Mustacchi.Pf [ Fa addr ,
365*df5cd018SRobert Mustacchi.Fa addr
366*df5cd018SRobert Mustacchi+
367*df5cd018SRobert Mustacchi.Fa len Ns
368*df5cd018SRobert Mustacchi) are locked for I/O when
369*df5cd018SRobert Mustacchi.Dv MC_HAT_ADVISE
370*df5cd018SRobert Mustacchiwas specified, or the system has insufficient resources when
371*df5cd018SRobert Mustacchi.Dv MC_HAT_ADVISE
372*df5cd018SRobert Mustacchiwas specified.
373*df5cd018SRobert Mustacchi.Pp
374*df5cd018SRobert MustacchiThe
375*df5cd018SRobert Mustacchi.Fa cmd
376*df5cd018SRobert Mustacchiis
377*df5cd018SRobert Mustacchi.Dv MC_LOCK
378*df5cd018SRobert Mustacchior
379*df5cd018SRobert Mustacchi.Dv MC_LOCKAS
380*df5cd018SRobert Mustacchiand locking the memory identified by this operation would exceed a limit or
381*df5cd018SRobert Mustacchiresource control on locked memory.
382*df5cd018SRobert Mustacchi.It Er EBUSY
383c10c16deSRichard LoweWhen the selection criteria match, some or all of the addresses in the range
384*df5cd018SRobert Mustacchi.Pf [ Fa addr ,
385*df5cd018SRobert Mustacchi.Fa addr
386*df5cd018SRobert Mustacchi+
387*df5cd018SRobert Mustacchi.Fa len Ns
388*df5cd018SRobert Mustacchi) are locked and
389*df5cd018SRobert Mustacchi.Dv MC_SYNC with the
390*df5cd018SRobert Mustacchi.Dv MS_INVALIDATE
391*df5cd018SRobert Mustacchioption was specified.
392*df5cd018SRobert Mustacchi.It Er EINVAL
393*df5cd018SRobert MustacchiThe
394*df5cd018SRobert Mustacchi.Fa addr
395*df5cd018SRobert Mustacchiargument specifies invalid selection criteria or is not a multiple of the page
396*df5cd018SRobert Mustacchisize as returned by
397*df5cd018SRobert Mustacchi.Xr sysconf 3C ;
398*df5cd018SRobert Mustacchithe
399*df5cd018SRobert Mustacchi.Fa addr
400*df5cd018SRobert Mustacchiand/or
401*df5cd018SRobert Mustacchi.Fa len
402*df5cd018SRobert Mustacchiargument does not have the value 0 when
403*df5cd018SRobert Mustacchi.Dv MC_LOCKAS
404*df5cd018SRobert Mustacchior
405*df5cd018SRobert Mustacchi.Dv MC_UNLOCKAS
406*df5cd018SRobert Mustacchiis specified; the
407*df5cd018SRobert Mustacchi.Fa arg
408*df5cd018SRobert Mustacchiargument is not valid for the function specified;
409*df5cd018SRobert Mustacchi.Fa mha_pagesize
410*df5cd018SRobert Mustacchior
411*df5cd018SRobert Mustacchi.Fa mha_cmd
412*df5cd018SRobert Mustacchiis invalid; or
413*df5cd018SRobert Mustacchi.Dv MC_HAT_ADVISE
414*df5cd018SRobert Mustacchiis specified and not all pages in the specified region have the same access
415*df5cd018SRobert Mustacchipermissions within the given size boundaries.
416*df5cd018SRobert Mustacchi.It Er ENOMEM
417c10c16deSRichard LoweWhen the selection criteria match, some or all of the addresses in the range
418*df5cd018SRobert Mustacchi.Pf [ Fa addr ,
419*df5cd018SRobert Mustacchi.Fa addr
420*df5cd018SRobert Mustacchi+
421*df5cd018SRobert Mustacchi.Fa len Ns
422*df5cd018SRobert Mustacchi) are invalid for the address space of a process or specify one or more pages
423*df5cd018SRobert Mustacchiwhich are not mapped.
424*df5cd018SRobert Mustacchi.It Er EPERM
425*df5cd018SRobert MustacchiThe
426*df5cd018SRobert Mustacchi.Brq Dv PRIV_PROC_LOCK_MEMORY
427*df5cd018SRobert Mustacchiprivilege is not asserted in the effective set of the calling process and
428*df5cd018SRobert Mustacchi.Dv MC_LOCK ,
429*df5cd018SRobert Mustacchi.Dv MC_LOCKAS ,
430*df5cd018SRobert Mustacchi.Dv MC_UNLOCK ,
431*df5cd018SRobert Mustacchior
432*df5cd018SRobert Mustacchi.Dv MC_UNLOCKAS
433*df5cd018SRobert Mustacchiwas specified.
434*df5cd018SRobert Mustacchi.El
435*df5cd018SRobert Mustacchi.Sh MT-LEVEL
436*df5cd018SRobert Mustacchi.Sy MT-Safe
437*df5cd018SRobert Mustacchi.Sh SEE ALSO
438*df5cd018SRobert Mustacchi.Xr ppgsz 1 ,
439*df5cd018SRobert Mustacchi.Xr fork 2 ,
440*df5cd018SRobert Mustacchi.Xr mmap 2 ,
441*df5cd018SRobert Mustacchi.Xr mprotect 2 ,
442*df5cd018SRobert Mustacchi.Xr getpagesizes 3C ,
443*df5cd018SRobert Mustacchi.Xr mlock 3C ,
444*df5cd018SRobert Mustacchi.Xr mlockall 3C ,
445*df5cd018SRobert Mustacchi.Xr msync 3C ,
446*df5cd018SRobert Mustacchi.Xr plock 3C ,
447*df5cd018SRobert Mustacchi.Xr sysconf 3C ,
448*df5cd018SRobert Mustacchi.Xr attributes 7 ,
449*df5cd018SRobert Mustacchi.Xr privileges 7
450