diff options
Diffstat (limited to 'include/linux/vf610_sema4.h')
-rw-r--r-- | include/linux/vf610_sema4.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/linux/vf610_sema4.h b/include/linux/vf610_sema4.h new file mode 100644 index 000000000000..d0587aaf370b --- /dev/null +++ b/include/linux/vf610_sema4.h @@ -0,0 +1,33 @@ +#ifndef __MVF_SEMA4__ +#define __MVF_SEMA4__ + +#define MVF_SHMEM_SEMAPHORE_NUMBER (1) +#define MVF_PRINTF_SEMAPHORE_NUMBER (2) +#define MVF_I2C_SEMAPHORE_NUMBER (3) +#define MVF_RESERVED1_SEMAPHORE_NUMBER (4) +#define MVF_RESERVED2_SEMAPHORE_NUMBER (5) + +#ifdef __KERNEL__ + +#include <linux/sched.h> + +typedef struct mvf_sema4_handle_struct { + int gate_num; + wait_queue_head_t wait_queue; + // stats + u32 attempts; + u32 interrupts; + u32 failures; + struct timeval request_time; + u64 total_latency_us; + u32 worst_latency_us; +} MVF_SEMA4; + +int mvf_sema4_assign(int gate_num, MVF_SEMA4** sema4_p); +int mvf_sema4_deassign(MVF_SEMA4 *sema4); +int mvf_sema4_lock(MVF_SEMA4 *sema4, unsigned int timeout_us, bool use_interrupts); +int mvf_sema4_unlock(MVF_SEMA4 *sema4); +int mvf_sema4_test(MVF_SEMA4 *sema4); + +#endif /* __KERNEL__ */ +#endif /* __MVF_SEMA4__ */ |