Files

35 lines
623 B
C
Raw Permalink Normal View History

2026-03-15 22:22:58 +00:00
#ifndef KERNEL_FUTEX_H_
#define KERNEL_FUTEX_H_
#include <kernel/btree.h>
#include <kernel/wait.h>
#include <mango/types.h>
struct task;
2026-03-15 22:22:58 +00:00
struct address_space;
typedef uintptr_t futex_key_t;
2026-03-15 22:22:58 +00:00
struct futex {
struct btree_node f_node;
2026-03-15 22:22:58 +00:00
futex_key_t f_key;
struct waitqueue f_waiters;
};
extern kern_status_t futex_init(void);
extern kern_status_t futex_get(
kern_futex_t *futex,
futex_key_t *out,
unsigned int flags);
extern kern_status_t futex_wait(
futex_key_t futex,
kern_futex_t new_val,
unsigned int flags);
extern kern_status_t futex_wake(
futex_key_t futex,
size_t nwaiters,
unsigned int flags);
2026-03-15 22:22:58 +00:00
#endif