From 3f5305bab713fe477d949b2499341dd3e8befd9d Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Thu, 16 Apr 2026 23:38:08 +0100 Subject: [PATCH] std.c: Fix serenity's futex() declaration Two mistakes I made when translating from the C header: - The timeout and userspace_address2 pointers should be nullable. - futex_wait() and futex_wake() are defined as static functions and therefore not available as exported symbols. They're just thin wrappers around futex() anyway so that's fine. --- lib/std/c.zig | 2 -- lib/std/c/serenity.zig | 4 +--- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/std/c.zig b/lib/std/c.zig index 945df32798..2a50107ed5 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -11451,8 +11451,6 @@ pub const disown = serenity.disown; pub const profiling_enable = serenity.profiling_enable; pub const profiling_disable = serenity.profiling_disable; pub const profiling_free_buffer = serenity.profiling_free_buffer; -pub const futex_wait = serenity.futex_wait; -pub const futex_wake = serenity.futex_wake; pub const purge = serenity.purge; pub const perf_event = serenity.perf_event; pub const perf_register_string = serenity.perf_register_string; diff --git a/lib/std/c/serenity.zig b/lib/std/c/serenity.zig index b69eb60299..4a0aa97cfa 100644 --- a/lib/std/c/serenity.zig +++ b/lib/std/c/serenity.zig @@ -53,9 +53,7 @@ pub extern "c" fn profiling_enable(pid: pid_t, event_mask: PERF_EVENT) c_int; pub extern "c" fn profiling_disable(pid: pid_t) c_int; pub extern "c" fn profiling_free_buffer(pid: pid_t) c_int; -pub extern "c" fn futex(userspace_address: *u32, futex_op: c_int, value: u32, timeout: *const timespec, userspace_address2: *u32, value3: u32) c_int; -pub extern "c" fn futex_wait(userspace_address: *u32, value: u32, abstime: *const timespec, clockid: clockid_t, process_shared: c_int) c_int; -pub extern "c" fn futex_wake(userspace_address: *u32, count: u32, process_shared: c_int) c_int; +pub extern "c" fn futex(userspace_address: *u32, futex_op: c_int, value: u32, timeout: ?*const timespec, userspace_address2: ?*u32, value3: u32) c_int; pub extern "c" fn purge(mode: c_int) c_int;