#pragma once #include 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 cpu_relax(void); void spin_lock(spinlock_t *l);