PatchworkOS
Loading...
Searching...
No Matches
futex.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
kernel/sched/wait.h
>
4
#include <
kernel/utils/map.h
>
5
6
#include <
sys/proc.h
>
7
23
typedef
struct
24
{
25
map_entry_t
entry
;
26
wait_queue_t
queue
;
27
}
futex_t
;
28
33
typedef
struct
34
{
35
map_t
futexes
;
36
lock_t
lock
;
37
}
futex_ctx_t
;
38
44
void
futex_ctx_init
(
futex_ctx_t
* ctx);
45
51
void
futex_ctx_deinit
(
futex_ctx_t
* ctx);
52
futex_ctx_deinit
void futex_ctx_deinit(futex_ctx_t *ctx)
Deinitialize a per-process futex context. *.
Definition
futex.c:21
futex_ctx_init
void futex_ctx_init(futex_ctx_t *ctx)
Initialize a per-process futex context.
Definition
futex.c:15
map.h
proc.h
futex_ctx_t
Per-process futex context.
Definition
futex.h:34
futex_ctx_t::lock
lock_t lock
Definition
futex.h:36
futex_ctx_t::futexes
map_t futexes
Definition
futex.h:35
futex_t
Futex structure.
Definition
futex.h:24
futex_t::entry
map_entry_t entry
Definition
futex.h:25
futex_t::queue
wait_queue_t queue
Definition
futex.h:26
lock_t
A simple ticket lock implementation.
Definition
lock.h:43
map_entry_t
Map entry structure.
Definition
map.h:57
map_t
Hash map structure.
Definition
map.h:76
wait_queue_t
Wait queue structure.
Definition
wait.h:166
wait.h
include
kernel
sync
futex.h
Generated by
1.9.8