@@ -1015,6 +1015,47 @@ pub fn munmap(address: [*]const u8, length: usize) usize {
1015
1015
return syscall2 (.munmap , @intFromPtr (address ), length );
1016
1016
}
1017
1017
1018
+ pub fn mlock (address : [* ]const u8 , length : usize ) usize {
1019
+ return syscall2 (.mlock , @intFromPtr (address ), length );
1020
+ }
1021
+
1022
+ pub fn munlock (address : [* ]const u8 , length : usize ) usize {
1023
+ return syscall2 (.munlock , @intFromPtr (address ), length );
1024
+ }
1025
+
1026
+ pub const MLOCK = packed struct (u32 ) {
1027
+ ONFAULT : bool = false ,
1028
+ _1 : u31 = 0 ,
1029
+ };
1030
+
1031
+ pub fn mlock2 (address : [* ]const u8 , length : usize , flags : i32 ) usize {
1032
+ return syscall3 (.mlock , @intFromPtr (address ), length , @as (u32 , @bitCast (flags )));
1033
+ }
1034
+
1035
+ pub const MCL = switch (native_arch ) {
1036
+ .sparc , .powerpc = > packed struct (u32 ) {
1037
+ _0 : u13 = 0 ,
1038
+ CURRENT : bool = false ,
1039
+ FUTURE : bool = false ,
1040
+ ONFAULT : bool = false ,
1041
+ _1 : u16 = 0 ,
1042
+ },
1043
+ else = > packed struct (u32 ) {
1044
+ CURRENT : bool = false ,
1045
+ FUTURE : bool = false ,
1046
+ ONFAULT : bool = false ,
1047
+ _0 : u29 = 0 ,
1048
+ },
1049
+ };
1050
+
1051
+ pub fn mlockall (flags : i32 ) usize {
1052
+ return syscall1 (.mlockall , @as (u32 , @bitCast (flags )));
1053
+ }
1054
+
1055
+ pub fn munlockall () usize {
1056
+ return syscall0 (.munlockall );
1057
+ }
1058
+
1018
1059
pub fn poll (fds : [* ]pollfd , n : nfds_t , timeout : i32 ) usize {
1019
1060
if (@hasField (SYS , "poll" )) {
1020
1061
return syscall3 (.poll , @intFromPtr (fds ), n , @as (u32 , @bitCast (timeout )));
0 commit comments