@@ -100,6 +100,7 @@ pub const Kevent = system.Kevent;
100100pub const LOCK = system .LOCK ;
101101pub const MADV = system .MADV ;
102102pub const MAP = system .MAP ;
103+ pub const MCL = system .MCL ;
103104pub const MSF = system .MSF ;
104105pub const MAX_ADDR_LEN = system .MAX_ADDR_LEN ;
105106pub const MFD = system .MFD ;
@@ -7505,6 +7506,37 @@ pub fn madvise(ptr: [*]align(mem.page_size) u8, length: usize, advice: u32) Madv
75057506 }
75067507}
75077508
7509+ pub const MlockallError = error {
7510+ InvalidArgument ,
7511+ LockedMemoryLimitExceeded ,
7512+ PermissionDenied ,
7513+ SystemResources ,
7514+ } || UnexpectedError ;
7515+
7516+ pub fn mlockall (flags : i32 ) MlockallError ! void {
7517+ switch (errno (system .mlockall (flags ))) {
7518+ .SUCCESS = > return ,
7519+ .INVAL = > return error .InvalidArgument ,
7520+ .NOMEM = > return error .LockedMemoryLimitExceeded ,
7521+ .PERM = > return error .PermissionDenied ,
7522+ // Solaris and (Free|Net|Open)BSD, presumably no room to fault in locked stuff:
7523+ .AGAIN = > return error .SystemResources ,
7524+ else = > | err | return unexpectedErrno (err ),
7525+ }
7526+ }
7527+
7528+ pub const MunlockallError = error {
7529+ PermissionDenied ,
7530+ } || UnexpectedError ;
7531+
7532+ pub fn munlockall () MunlockallError ! void {
7533+ switch (errno (system .munlockall ())) {
7534+ .SUCCESS = > return ,
7535+ .EPERM = > return error .PermissionDenied , // Solaris, possibly BSDs as well
7536+ else = > | err | return unexpectedErrno (err ),
7537+ }
7538+ }
7539+
75087540pub const PerfEventOpenError = error {
75097541 /// Returned if the perf_event_attr size value is too small (smaller
75107542 /// than PERF_ATTR_SIZE_VER0), too big (larger than the page size),
0 commit comments