mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 10:19:47 +00:00
![Greg Kroah-Hartman](/assets/img/avatar_default.png)
It's just a call to kmalloc(, GFP_KERNEL | GFP_DMA); But, all memory allocated by kmalloc can be DMAed, and that's not what GFP_DMA means, so remove that flag, and just call kmalloc(, GFP_KERNEL); Cc: Mikko Virkkilä <mikko.virkkila@bluegiga.com> Cc: Lauri Hintsala <Lauri.Hintsala@bluegiga.com> Cc: Riku Mettälä <riku.mettala@bluegiga.com> Cc: Veli-Pekka Peltola <veli-pekka.peltola@bluegiga.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
248 lines
8.3 KiB
C
248 lines
8.3 KiB
C
#ifndef CSR_FRAMEWORK_EXT_H__
|
|
#define CSR_FRAMEWORK_EXT_H__
|
|
/*****************************************************************************
|
|
|
|
(c) Cambridge Silicon Radio Limited 2010
|
|
All rights reserved and confidential information of CSR
|
|
|
|
Refer to LICENSE.txt included with this source for details
|
|
on the license terms.
|
|
|
|
*****************************************************************************/
|
|
|
|
#include "csr_result.h"
|
|
#include "csr_framework_ext_types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Result codes */
|
|
#define CSR_FE_RESULT_NO_MORE_EVENTS ((CsrResult) 0x0001)
|
|
#define CSR_FE_RESULT_INVALID_POINTER ((CsrResult) 0x0002)
|
|
#define CSR_FE_RESULT_INVALID_HANDLE ((CsrResult) 0x0003)
|
|
#define CSR_FE_RESULT_NO_MORE_MUTEXES ((CsrResult) 0x0004)
|
|
#define CSR_FE_RESULT_TIMEOUT ((CsrResult) 0x0005)
|
|
#define CSR_FE_RESULT_NO_MORE_THREADS ((CsrResult) 0x0006)
|
|
|
|
/* Thread priorities */
|
|
#define CSR_THREAD_PRIORITY_HIGHEST ((u16) 0)
|
|
#define CSR_THREAD_PRIORITY_HIGH ((u16) 1)
|
|
#define CSR_THREAD_PRIORITY_NORMAL ((u16) 2)
|
|
#define CSR_THREAD_PRIORITY_LOW ((u16) 3)
|
|
#define CSR_THREAD_PRIORITY_LOWEST ((u16) 4)
|
|
|
|
#define CSR_EVENT_WAIT_INFINITE ((u16) 0xFFFF)
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrEventCreate
|
|
*
|
|
* DESCRIPTION
|
|
* Creates an event and returns a handle to the created event.
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case of success
|
|
* CSR_FE_RESULT_NO_MORE_EVENTS in case of out of event resources
|
|
* CSR_FE_RESULT_INVALID_POINTER in case the eventHandle pointer is invalid
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrEventCreate(CsrEventHandle *eventHandle);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrEventWait
|
|
*
|
|
* DESCRIPTION
|
|
* Wait fore one or more of the event bits to be set.
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case of success
|
|
* CSR_FE_RESULT_TIMEOUT in case of timeout
|
|
* CSR_FE_RESULT_INVALID_HANDLE in case the eventHandle is invalid
|
|
* CSR_FE_RESULT_INVALID_POINTER in case the eventBits pointer is invalid
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrEventWait(CsrEventHandle *eventHandle, u16 timeoutInMs, u32 *eventBits);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrEventSet
|
|
*
|
|
* DESCRIPTION
|
|
* Set an event.
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case of success
|
|
* CSR_FE_RESULT_INVALID_HANDLE in case the eventHandle is invalid
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrEventSet(CsrEventHandle *eventHandle, u32 eventBits);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrEventDestroy
|
|
*
|
|
* DESCRIPTION
|
|
* Destroy the event associated.
|
|
*
|
|
* RETURNS
|
|
* void
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
void CsrEventDestroy(CsrEventHandle *eventHandle);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrMutexCreate
|
|
*
|
|
* DESCRIPTION
|
|
* Create a mutex and return a handle to the created mutex.
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case of success
|
|
* CSR_FE_RESULT_NO_MORE_MUTEXES in case of out of mutex resources
|
|
* CSR_FE_RESULT_INVALID_POINTER in case the mutexHandle pointer is invalid
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrMutexCreate(CsrMutexHandle *mutexHandle);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrMutexLock
|
|
*
|
|
* DESCRIPTION
|
|
* Lock the mutex refered to by the provided handle.
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case of success
|
|
* CSR_FE_RESULT_INVALID_HANDLE in case the mutexHandle is invalid
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrMutexLock(CsrMutexHandle *mutexHandle);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrMutexUnlock
|
|
*
|
|
* DESCRIPTION
|
|
* Unlock the mutex refered to by the provided handle.
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case of success
|
|
* CSR_FE_RESULT_INVALID_HANDLE in case the mutexHandle is invalid
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrMutexUnlock(CsrMutexHandle *mutexHandle);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrMutexDestroy
|
|
*
|
|
* DESCRIPTION
|
|
* Destroy the previously created mutex.
|
|
*
|
|
* RETURNS
|
|
* void
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
void CsrMutexDestroy(CsrMutexHandle *mutexHandle);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrGlobalMutexLock
|
|
*
|
|
* DESCRIPTION
|
|
* Lock the global mutex. The global mutex is a single pre-initialised
|
|
* shared mutex, spinlock or similar that does not need to be created prior
|
|
* to use. The limitation is that there is only one single lock shared
|
|
* between all code. Consequently, it must only be used very briefly to
|
|
* either protect simple one-time initialisation or to protect the creation
|
|
* of a dedicated mutex by calling CsrMutexCreate.
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
void CsrGlobalMutexLock(void);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrGlobalMutexUnlock
|
|
*
|
|
* DESCRIPTION
|
|
* Unlock the global mutex.
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
void CsrGlobalMutexUnlock(void);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrThreadCreate
|
|
*
|
|
* DESCRIPTION
|
|
* Create thread function and return a handle to the created thread.
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case of success
|
|
* CSR_FE_RESULT_NO_MORE_THREADS in case of out of thread resources
|
|
* CSR_FE_RESULT_INVALID_POINTER in case one of the supplied pointers is invalid
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrThreadCreate(void (*threadFunction)(void *pointer), void *pointer,
|
|
u32 stackSize, u16 priority,
|
|
const char *threadName, CsrThreadHandle *threadHandle);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrThreadGetHandle
|
|
*
|
|
* DESCRIPTION
|
|
* Return thread handle of calling thread.
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case of success
|
|
* CSR_FE_RESULT_INVALID_POINTER in case the threadHandle pointer is invalid
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrThreadGetHandle(CsrThreadHandle *threadHandle);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrThreadEqual
|
|
*
|
|
* DESCRIPTION
|
|
* Compare thread handles
|
|
*
|
|
* RETURNS
|
|
* Possible values:
|
|
* CSR_RESULT_SUCCESS in case thread handles are identical
|
|
* CSR_FE_RESULT_INVALID_POINTER in case either threadHandle pointer is invalid
|
|
* CSR_RESULT_FAILURE otherwise
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
CsrResult CsrThreadEqual(CsrThreadHandle *threadHandle1, CsrThreadHandle *threadHandle2);
|
|
|
|
/*----------------------------------------------------------------------------*
|
|
* NAME
|
|
* CsrThreadSleep
|
|
*
|
|
* DESCRIPTION
|
|
* Sleep for a given period.
|
|
*
|
|
* RETURNS
|
|
* void
|
|
*
|
|
*----------------------------------------------------------------------------*/
|
|
void CsrThreadSleep(u16 sleepTimeInMs);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|