mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
#24471: add mlock syscalls to std.os.linux
This commit is contained in:
parent
7ee6dab39f
commit
44ea11d71f
1 changed files with 38 additions and 0 deletions
|
|
@ -1014,6 +1014,44 @@ pub fn munmap(address: [*]const u8, length: usize) usize {
|
||||||
return syscall2(.munmap, @intFromPtr(address), length);
|
return syscall2(.munmap, @intFromPtr(address), length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn mlock(address: [*]const u8, length: usize) usize {
|
||||||
|
return syscall2(.mlock, @intFromPtr(address), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn munlock(address: [*]const u8, length: usize) usize {
|
||||||
|
return syscall2(.munlock, @intFromPtr(address), length);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub const MLOCK = packed struct(u32) {
|
||||||
|
ONFAULT: bool = false,
|
||||||
|
_1: u31 = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub fn mlock2(address: [*]const u8, length: usize, flags: MLOCK) usize {
|
||||||
|
return syscall3(.mlock2, @intFromPtr(address), length, @as(u32, @bitCast(flags)));
|
||||||
|
}
|
||||||
|
|
||||||
|
pub const MCL = if (native_arch.isSPARC() or native_arch.isPowerPC()) packed struct(u32) {
|
||||||
|
_0: u13 = 0,
|
||||||
|
CURRENT: bool = false,
|
||||||
|
FUTURE: bool = false,
|
||||||
|
ONFAULT: bool = false,
|
||||||
|
_4: u16 = 0,
|
||||||
|
} else packed struct(u32) {
|
||||||
|
CURRENT: bool = false,
|
||||||
|
FUTURE: bool = false,
|
||||||
|
ONFAULT: bool = false,
|
||||||
|
_3: u29 = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub fn mlockall(flags: MCL) usize {
|
||||||
|
return syscall1(.mlockall, @as(u32, @bitCast(flags)));
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn munlockall() usize {
|
||||||
|
return syscall0(.munlockall);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn poll(fds: [*]pollfd, n: nfds_t, timeout: i32) usize {
|
pub fn poll(fds: [*]pollfd, n: nfds_t, timeout: i32) usize {
|
||||||
if (@hasField(SYS, "poll")) {
|
if (@hasField(SYS, "poll")) {
|
||||||
return syscall3(.poll, @intFromPtr(fds), n, @as(u32, @bitCast(timeout)));
|
return syscall3(.poll, @intFromPtr(fds), n, @as(u32, @bitCast(timeout)));
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue