#include #include #include #ifndef SPINLOCK_H #define SPINLOCK_H struct mutex { atomic_flag lock; bool locked; struct thread *holder; }; void acquire_spinlock(atomic_flag *lock); void free_spinlock(atomic_flag *lock); struct mutex *init_mutex(); kstatus acquire_mutex(struct mutex *mut); void free_mutex(struct mutex *mut); kstatus try_mutex(struct mutex *mut); #endif