kernel: add futex definitions
This commit is contained in:
26
include/kernel/futex.h
Normal file
26
include/kernel/futex.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef KERNEL_FUTEX_H_
|
||||
#define KERNEL_FUTEX_H_
|
||||
|
||||
#include <kernel/btree.h>
|
||||
#include <kernel/wait.h>
|
||||
#include <mango/types.h>
|
||||
|
||||
struct address_space;
|
||||
|
||||
typedef phys_addr_t futex_key_t;
|
||||
|
||||
struct futex {
|
||||
struct btree_node f_node;
|
||||
futex_key_t f_key;
|
||||
struct waitqueue f_waiters;
|
||||
};
|
||||
|
||||
extern kern_status_t futex_init(void);
|
||||
extern kern_status_t futex_get(
|
||||
struct address_space *space,
|
||||
kern_futex_t *futex,
|
||||
futex_key_t *out);
|
||||
extern kern_status_t futex_wait(futex_key_t futex, kern_futex_t new_val);
|
||||
extern kern_status_t futex_wake(futex_key_t futex, size_t nwaiters);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user