From 3fb93fc8f2d3e755492a495fa69f65ae6615cab6 Mon Sep 17 00:00:00 2001 From: David CARLIER Date: Wed, 26 Apr 2023 22:04:55 +0100 Subject: [PATCH] std.c: freebsd add procctl exclusive x86_64 flags --- lib/std/c/freebsd.zig | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index d3fa8f51c7..e5cdc0e715 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2172,6 +2172,30 @@ pub const PROC = struct { pub const WX_MAPPINGS_PERMIT = 0x0001; pub const WX_MAPPINGS_DISALLOW_EXEC = 0x0002; pub const WX_MAPPINGS_ENFORCE = 0x80000000; + pub const PROCCTL_MD_MIN = 0x10000000; + // x86_64-only constants + pub const KPTI = switch (builtin.cpu.arch) { + .x86_64 => struct { + pub const CTL = PROC.PROCCTL_MD_MIND; + pub const STATUS = PROC.PROCCTL_MD_MIND + 1; + pub const CTL_ENABLE_ON_EXEC = 1; + pub const CTL_DISABLE_ON_EXEC = 2; + pub const STATUS_ACTIVE = 0x80000000; + }, + else => void, + }; + pub const LA = switch (builtin.cpu.arch) { + .x86_64 => struct { + pub const CTL = PROC.PROCCTL_MD_MIND + 2; + pub const STATUS = PROC.PROCCTL_MD_MIND + 3; + pub const CTL_LA48_ON_EXEC = 1; + pub const CTL_LA57_ON_EXEC = 2; + pub const CTL_DEFAULT_ON_EXEC = 3; + pub const STATUS_LA48 = 0x01000000; + pub const STATUS_LA57 = 0x02000000; + }, + else => void, + }; }; pub const PPROT = struct {