summaryrefslogtreecommitdiff
path: root/network/wlan/WDI/HEADER/Object.h
diff options
context:
space:
mode:
authorDaiqian Hu <[email protected]>2016-11-21 08:54:24 +0800
committerDaiqian Hu <[email protected]>2016-11-21 08:54:24 +0800
commita95eaad088f61aa55da9d73015cf1ed86e64a67e (patch)
tree15b498a08a4aee4b7f8b1627d39c965b3aa3ba98 /network/wlan/WDI/HEADER/Object.h
parent1aa0338ec5418345ea0c383e92b4fa19f7c98425 (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.h43
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