1 #ifndef __LINUX_RWSEM_H__ 2 #define __LINUX_RWSEM_H__ 3 4 // eCos does not have the concept of a read/write semaphore. So just 5 // map them onto normal semaphores and hope we don't deadlock 6 // somewhere. 7 8 #include <asm/semaphore.h> 9 10 struct rw_semaphore; 11 12 #define down_read(sem) cyg_drv_mutex_lock((cyg_drv_mutex_t *)sem) 13 #define down_read_trylock(sem) cyg_drv_mutex_trylock((cyg_drv_mutex_t *)sem) 14 #define down_write(sem) cyg_drv_mutex_lock((cyg_drv_mutex_t *)sem) 15 #define down_write_trylock(sem) cyg_drv_mutex_trylock((cyg_drv_mutex_t *)sem) 16 #define up_read(sem) cyg_drv_mutex_unlock((cyg_drv_mutex_t *)sem) 17 #define up_write(sem) cyg_drv_mutex_unlock((cyg_drv_mutex_t *)sem) 18 #define downgrade_write(sem) 19 20 #endif // __LINUX_RWSEM_H__ 21