neptune/kern/ispinlock.h
2025-08-27 22:07:30 +02:00

11 lines
251 B
C

#pragma once
#include <types.h>
typedef struct {
volatile uint32_t v; // 0 = unlocked, 1 = locked
} spinlock_t;
void spinlock_init(spinlock_t *l);
bool spin_trylock(spinlock_t *l);
void spin_unlock(spinlock_t *l);
void spin_lock(spinlock_t *l);