diff options
| author | Daiqian Hu <[email protected]> | 2016-11-21 08:54:24 +0800 |
|---|---|---|
| committer | Daiqian Hu <[email protected]> | 2016-11-21 08:54:24 +0800 |
| commit | a95eaad088f61aa55da9d73015cf1ed86e64a67e (patch) | |
| tree | 15b498a08a4aee4b7f8b1627d39c965b3aa3ba98 /network/wlan/WDI/HEADER/Object.h | |
| parent | 1aa0338ec5418345ea0c383e92b4fa19f7c98425 (diff) | |
Re-submit for WDI sample driver to GitHub
Submit WDI sample driver to GitHub for RS1.
Diffstat (limited to 'network/wlan/WDI/HEADER/Object.h')
| -rw-r--r-- | network/wlan/WDI/HEADER/Object.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/network/wlan/WDI/HEADER/Object.h b/network/wlan/WDI/HEADER/Object.h new file mode 100644 index 00000000..e630c339 --- /dev/null +++ b/network/wlan/WDI/HEADER/Object.h @@ -0,0 +1,43 @@ +#ifndef __INC_OBJECT_H +#define __INC_OBJECT_H + + +typedef struct _RT_OBJECT{ + RT_LIST_ENTRY ListEntry; + void* pStartVa; + unsigned int SizeAlloc; +}RT_OBJECT, *PRT_OBJECT; + +#define DECLARE_RT_OBJECT(__DATA_TYPE) RT_OBJECT __Object + +#define INIT_RT_OBJECT_LIST(__pObjectList) RTInitializeListHead(__pObjectList); + + +#define ADD_RT_OBJECT(__pObjectList, __pPtr, __DATA_TYPE) \ + { \ + PRT_OBJECT pObject = &(((__DATA_TYPE *)(__pPtr))->__Object); \ + pObject->pStartVa = (__pPtr); \ + pObject->SizeAlloc = sizeof(__DATA_TYPE); \ + RTInsertTailList(__pObjectList, &(pObject->ListEntry) ); \ + } + +#define REMOVE_RT_OBJECT(__pObjectList) RTRemoveHeadList(__pObjectList) + +#define HAS_RT_OBJECT(__pObjectList) RTIsListNotEmpty(__pObjectList) + +#define ALLOC_RT_OBJECT(__pAdapter, __pObjectList, __ppOutPtr, __DATA_TYPE) \ + { \ + *(__ppOutPtr) = NULL; \ + if( RT_STATUS_SUCCESS == PlatformAllocateMemory((__pAdapter), (__ppOutPtr), sizeof(__DATA_TYPE)) ) { \ + PlatformZeroMemory(*(__ppOutPtr), sizeof(__DATA_TYPE)); \ + ADD_RT_OBJECT(__pObjectList, *(__ppOutPtr), __DATA_TYPE); \ + } \ + } + +#define FREE_RT_OBJECT(__pObjectList) \ + { \ + PRT_OBJECT __pObject = (PRT_OBJECT)REMOVE_RT_OBJECT(__pObjectList); \ + PlatformFreeMemory((__pObject)->pStartVa, (__pObject)->SizeAlloc); \ + } + +#endif |
