Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
spinlock.h
Go to the documentation of this file.
1#ifndef __SPINLOCK_H__
2#define __SPINLOCK_H__
3
4#include <type.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10typedef struct {
11 uint16_t now_serving; /* tiket yang sedang dilayani */
12 uint16_t next_ticket; /* counter untuk waiter baru */
14
15#define SPINLOCK_INIT \
16 { .now_serving = 0, .next_ticket = 0 }
17
20bool spin_is_locked(const spinlock_t* lock);
21
22#ifdef __cplusplus
23}
24#endif
25
26#endif // __SPINLOCK_H__
uint8_t lock
Definition cache.h:1
void spin_acquire(spinlock_t *lock)
Definition spinlock.c:8
bool spin_is_locked(const spinlock_t *lock)
Definition spinlock.c:27
void spin_release(spinlock_t *lock)
Definition spinlock.c:19
uint16_t now_serving
Definition spinlock.h:11
uint16_t next_ticket
Definition spinlock.h:12
unsigned short uint16_t
Definition type.h:13