#ifndef __KERN_SYNC_SEM_H__ #define __KERN_SYNC_SEM_H__ #include #include #include typedef struct { int value; wait_queue_t wait_queue; } semaphore_t; void sem_init(semaphore_t *sem, int value); void up(semaphore_t *sem); void down(semaphore_t *sem); bool try_down(semaphore_t *sem); #endif /* !__KERN_SYNC_SEM_H__ */