Source
pub const MADV = switch (native_os) {
.linux => linux.MADV,
.emscripten => emscripten.MADV,
.macos, .ios, .tvos, .watchos, .visionos => struct {
pub const NORMAL = 0;
pub const RANDOM = 1;
pub const SEQUENTIAL = 2;
pub const WILLNEED = 3;
pub const DONTNEED = 4;
pub const FREE = 5;
pub const ZERO_WIRED_PAGES = 6;
pub const FREE_REUSABLE = 7;
pub const FREE_REUSE = 8;
pub const CAN_REUSE = 9;
pub const PAGEOUT = 10;
pub const ZERO = 11;
},
.freebsd => struct {
pub const NORMAL = 0;
pub const RANDOM = 1;
pub const SEQUENTIAL = 2;
pub const WILLNEED = 3;
pub const DONTNEED = 4;
pub const FREE = 5;
pub const NOSYNC = 6;
pub const AUTOSYNC = 7;
pub const NOCORE = 8;
pub const CORE = 9;
pub const PROTECT = 10;
},
.solaris, .illumos => struct {
/// no further special treatment
pub const NORMAL = 0;
/// expect random page references
pub const RANDOM = 1;
/// expect sequential page references
pub const SEQUENTIAL = 2;
/// will need these pages
pub const WILLNEED = 3;
/// don't need these pages
pub const DONTNEED = 4;
/// contents can be freed
pub const FREE = 5;
/// default access
pub const ACCESS_DEFAULT = 6;
/// next LWP to access heavily
pub const ACCESS_LWP = 7;
/// many processes to access heavily
pub const ACCESS_MANY = 8;
/// contents will be purged
pub const PURGE = 9;
},
.dragonfly => struct {
pub const SEQUENTIAL = 2;
pub const CONTROL_END = SETMAP;
pub const DONTNEED = 4;
pub const RANDOM = 1;
pub const WILLNEED = 3;
pub const NORMAL = 0;
pub const CONTROL_START = INVAL;
pub const FREE = 5;
pub const NOSYNC = 6;
pub const AUTOSYNC = 7;
pub const NOCORE = 8;
pub const CORE = 9;
pub const INVAL = 10;
pub const SETMAP = 11;
},
// https://github.com/SerenityOS/serenity/blob/6d59d4d3d9e76e39112842ec487840828f1c9bfe/Kernel/API/POSIX/sys/mman.h#L35-L41
.serenity => struct {
pub const NORMAL = 0x0;
pub const SET_VOLATILE = 0x1;
pub const SET_NONVOLATILE = 0x2;
pub const DONTNEED = 0x3;
pub const WILLNEED = 0x4;
pub const SEQUENTIAL = 0x5;
pub const RANDOM = 0x6;
},
else => void,
}