]> Pileus Git - ~andy/linux/blob - drivers/staging/csr/csr_framework_ext_types.h
2bf854af78c5709ec9b183fbcc7e28dc31672419
[~andy/linux] / drivers / staging / csr / csr_framework_ext_types.h
1 #ifndef CSR_FRAMEWORK_EXT_TYPES_H__
2 #define CSR_FRAMEWORK_EXT_TYPES_H__
3 /*****************************************************************************
4
5         (c) Cambridge Silicon Radio Limited 2010
6         All rights reserved and confidential information of CSR
7
8         Refer to LICENSE.txt included with this source for details
9         on the license terms.
10
11 *****************************************************************************/
12
13 #ifdef __KERNEL__
14 #include <linux/kthread.h>
15 #include <linux/semaphore.h>
16 #else
17 #include <pthread.h>
18 #endif
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
24
25 #ifdef __KERNEL__
26
27 struct CsrEvent {
28         /* wait_queue for waking the kernel thread */
29         wait_queue_head_t wakeup_q;
30         unsigned int      wakeup_flag;
31 };
32
33 typedef struct CsrEvent CsrEventHandle;
34 typedef struct semaphore CsrMutexHandle;
35 typedef struct CsrThread CsrThreadHandle;
36
37 #else /* __KERNEL __ */
38
39 struct CsrEvent {
40         pthread_cond_t  event;
41         pthread_mutex_t mutex;
42         u32       eventBits;
43 };
44
45 typedef struct CsrEvent CsrEventHandle;
46 typedef pthread_mutex_t CsrMutexHandle;
47 typedef pthread_t CsrThreadHandle;
48
49 #endif /* __KERNEL__ */
50
51 #ifdef __cplusplus
52 }
53 #endif
54
55 #endif