X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-redboot.git;a=blobdiff_plain;f=packages%2Fcompat%2Flinux%2Fv2_0%2Finclude%2Fasm%2Fsemaphore.h;fp=packages%2Fcompat%2Flinux%2Fv2_0%2Finclude%2Fasm%2Fsemaphore.h;h=e81615548952625db2b886b9d57065bd2fe6ef3d;hp=0000000000000000000000000000000000000000;hb=47412fc4bd1aefc0d5498bcb3860a9d727196f16;hpb=29ac1edaf5f12d706179ec87816ee1506ba4c9a1 diff --git a/packages/compat/linux/v2_0/include/asm/semaphore.h b/packages/compat/linux/v2_0/include/asm/semaphore.h new file mode 100644 index 00000000..e8161554 --- /dev/null +++ b/packages/compat/linux/v2_0/include/asm/semaphore.h @@ -0,0 +1,20 @@ +#ifndef __ASM_SEMAPHORE_H__ +#define __ASM_SEMAPHORE_H__ + +#include + +struct semaphore { + cyg_drv_mutex_t x; +}; + +#define DECLARE_MUTEX(x) struct semaphore x = { { 0 } }; +#define DECLARE_MUTEX_LOCKED(x) struct semaphore x = { { 1 } }; + +#define init_MUTEX(sem) cyg_drv_mutex_init((cyg_drv_mutex_t *)sem) +#define init_MUTEX_LOCKED(sem) do { cyg_drv_mutex_init((cyg_drv_mutex_t *)sem); cyg_drv_mutex_lock((cyg_drv_mutex_t *)sem); } while(0) +#define down(sem) cyg_drv_mutex_lock((cyg_drv_mutex_t *)sem) +#define down_interruptible(sem) ({ cyg_drv_mutex_lock((cyg_drv_mutex_t *)sem), 0; }) +#define down_trylock(sem) cyg_drv_mutex_trylock((cyg_drv_mutex_t *)sem) +#define up(sem) cyg_drv_mutex_unlock((cyg_drv_mutex_t *)sem) + +#endif /* __ASM_SEMAPHORE_H__ */