summaryrefslogtreecommitdiff
path: root/include/linux/mvf_sema4.h
blob: 7a93551e4905d71f7442cefebaeefd5239e0d768 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef __MVF_SEMA4__
#define __MVF_SEMA4__

#include <linux/sched.h>

#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)

typedef struct mvf_sema4_handle_struct {
	int gate_num;
	int use_interrupts;
	wait_queue_head_t wait_queue;
	// stats
	unsigned long attempts;
	unsigned long interrupts;
	struct dentry *debugfs_file;
} MVF_SEMA4;

int mvf_sema4_assign(int gate_num, bool use_interrupts, MVF_SEMA4** sema4_p);
int mvf_sema4_deassign(MVF_SEMA4 *sema4);
int mvf_sema4_lock(MVF_SEMA4 *sema4, unsigned int timeout_us);
int mvf_sema4_unlock(MVF_SEMA4 *sema4);

#endif