neptune/kern/ispinlock.h
2025-09-01 22:22:35 +02:00

11 lines
252 B
C

#pragma once
#include <stdint.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);