staging: csr: remove CsrMutexLock function
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / csr / csr_framework_ext.h
CommitLineData
635d2b00
GKH
1#ifndef CSR_FRAMEWORK_EXT_H__
2#define CSR_FRAMEWORK_EXT_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
635d2b00
GKH
13#include "csr_result.h"
14#include "csr_framework_ext_types.h"
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20/* Result codes */
21#define CSR_FE_RESULT_NO_MORE_EVENTS ((CsrResult) 0x0001)
22#define CSR_FE_RESULT_INVALID_POINTER ((CsrResult) 0x0002)
23#define CSR_FE_RESULT_INVALID_HANDLE ((CsrResult) 0x0003)
24#define CSR_FE_RESULT_NO_MORE_MUTEXES ((CsrResult) 0x0004)
25#define CSR_FE_RESULT_TIMEOUT ((CsrResult) 0x0005)
26#define CSR_FE_RESULT_NO_MORE_THREADS ((CsrResult) 0x0006)
27
28/* Thread priorities */
8c87f69a
GKH
29#define CSR_THREAD_PRIORITY_HIGHEST ((u16) 0)
30#define CSR_THREAD_PRIORITY_HIGH ((u16) 1)
31#define CSR_THREAD_PRIORITY_NORMAL ((u16) 2)
32#define CSR_THREAD_PRIORITY_LOW ((u16) 3)
33#define CSR_THREAD_PRIORITY_LOWEST ((u16) 4)
635d2b00 34
8c87f69a 35#define CSR_EVENT_WAIT_INFINITE ((u16) 0xFFFF)
635d2b00
GKH
36
37/*----------------------------------------------------------------------------*
38 * NAME
39 * CsrEventCreate
40 *
41 * DESCRIPTION
42 * Creates an event and returns a handle to the created event.
43 *
44 * RETURNS
45 * Possible values:
46 * CSR_RESULT_SUCCESS in case of success
47 * CSR_FE_RESULT_NO_MORE_EVENTS in case of out of event resources
48 * CSR_FE_RESULT_INVALID_POINTER in case the eventHandle pointer is invalid
49 *
50 *----------------------------------------------------------------------------*/
51CsrResult CsrEventCreate(CsrEventHandle *eventHandle);
52
53/*----------------------------------------------------------------------------*
54 * NAME
55 * CsrEventWait
56 *
57 * DESCRIPTION
58 * Wait fore one or more of the event bits to be set.
59 *
60 * RETURNS
61 * Possible values:
62 * CSR_RESULT_SUCCESS in case of success
63 * CSR_FE_RESULT_TIMEOUT in case of timeout
64 * CSR_FE_RESULT_INVALID_HANDLE in case the eventHandle is invalid
65 * CSR_FE_RESULT_INVALID_POINTER in case the eventBits pointer is invalid
66 *
67 *----------------------------------------------------------------------------*/
26a6b2e1 68CsrResult CsrEventWait(CsrEventHandle *eventHandle, u16 timeoutInMs, u32 *eventBits);
635d2b00
GKH
69
70/*----------------------------------------------------------------------------*
71 * NAME
72 * CsrEventSet
73 *
74 * DESCRIPTION
75 * Set an event.
76 *
77 * RETURNS
78 * Possible values:
79 * CSR_RESULT_SUCCESS in case of success
80 * CSR_FE_RESULT_INVALID_HANDLE in case the eventHandle is invalid
81 *
82 *----------------------------------------------------------------------------*/
26a6b2e1 83CsrResult CsrEventSet(CsrEventHandle *eventHandle, u32 eventBits);
635d2b00
GKH
84
85/*----------------------------------------------------------------------------*
86 * NAME
87 * CsrEventDestroy
88 *
89 * DESCRIPTION
90 * Destroy the event associated.
91 *
92 * RETURNS
93 * void
94 *
95 *----------------------------------------------------------------------------*/
96void CsrEventDestroy(CsrEventHandle *eventHandle);
97
98/*----------------------------------------------------------------------------*
99 * NAME
100 * CsrMutexCreate
101 *
102 * DESCRIPTION
103 * Create a mutex and return a handle to the created mutex.
104 *
105 * RETURNS
106 * Possible values:
107 * CSR_RESULT_SUCCESS in case of success
108 * CSR_FE_RESULT_NO_MORE_MUTEXES in case of out of mutex resources
109 * CSR_FE_RESULT_INVALID_POINTER in case the mutexHandle pointer is invalid
110 *
111 *----------------------------------------------------------------------------*/
112CsrResult CsrMutexCreate(CsrMutexHandle *mutexHandle);
113
635d2b00
GKH
114/*----------------------------------------------------------------------------*
115 * NAME
116 * CsrMutexUnlock
117 *
118 * DESCRIPTION
119 * Unlock the mutex refered to by the provided handle.
120 *
121 * RETURNS
122 * Possible values:
123 * CSR_RESULT_SUCCESS in case of success
124 * CSR_FE_RESULT_INVALID_HANDLE in case the mutexHandle is invalid
125 *
126 *----------------------------------------------------------------------------*/
127CsrResult CsrMutexUnlock(CsrMutexHandle *mutexHandle);
128
129/*----------------------------------------------------------------------------*
130 * NAME
131 * CsrMutexDestroy
132 *
133 * DESCRIPTION
134 * Destroy the previously created mutex.
135 *
136 * RETURNS
137 * void
138 *
139 *----------------------------------------------------------------------------*/
140void CsrMutexDestroy(CsrMutexHandle *mutexHandle);
141
142/*----------------------------------------------------------------------------*
143 * NAME
144 * CsrGlobalMutexLock
145 *
146 * DESCRIPTION
147 * Lock the global mutex. The global mutex is a single pre-initialised
148 * shared mutex, spinlock or similar that does not need to be created prior
149 * to use. The limitation is that there is only one single lock shared
150 * between all code. Consequently, it must only be used very briefly to
151 * either protect simple one-time initialisation or to protect the creation
152 * of a dedicated mutex by calling CsrMutexCreate.
153 *
154 *----------------------------------------------------------------------------*/
155void CsrGlobalMutexLock(void);
156
157/*----------------------------------------------------------------------------*
158 * NAME
159 * CsrGlobalMutexUnlock
160 *
161 * DESCRIPTION
162 * Unlock the global mutex.
163 *
164 *----------------------------------------------------------------------------*/
165void CsrGlobalMutexUnlock(void);
166
635d2b00
GKH
167/*----------------------------------------------------------------------------*
168 * NAME
169 * CsrThreadSleep
170 *
171 * DESCRIPTION
172 * Sleep for a given period.
173 *
174 * RETURNS
175 * void
176 *
177 *----------------------------------------------------------------------------*/
8c87f69a 178void CsrThreadSleep(u16 sleepTimeInMs);
635d2b00 179
635d2b00
GKH
180#ifdef __cplusplus
181}
182#endif
183
184#endif