net: wireless: rockchip: add rtl8822be pcie wifi driver
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8822be / include / osdep_service_ce.h
diff --git a/drivers/net/wireless/rockchip_wlan/rtl8822be/include/osdep_service_ce.h b/drivers/net/wireless/rockchip_wlan/rtl8822be/include/osdep_service_ce.h
new file mode 100644 (file)
index 0000000..04c5b18
--- /dev/null
@@ -0,0 +1,192 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
+ *                                        
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ *
+ ******************************************************************************/\r
+\r
+#ifndef __OSDEP_CE_SERVICE_H_\r
+#define __OSDEP_CE_SERVICE_H_\r
+\r
+\r
+#include <ndis.h>\r
+#include <ntddndis.h>\r
+\r
+#ifdef CONFIG_SDIO_HCI\r
+#include "SDCardDDK.h"\r
+#endif\r
+\r
+#ifdef CONFIG_USB_HCI\r
+#include <usbdi.h>\r
+#endif\r
+\r
+typedef HANDLE         _sema;\r
+typedef        LIST_ENTRY      _list;\r
+typedef NDIS_STATUS _OS_STATUS;\r
+\r
+typedef NDIS_SPIN_LOCK _lock;\r
+\r
+typedef HANDLE                 _rwlock; //Mutex\r
+\r
+typedef u32    _irqL;\r
+\r
+typedef NDIS_HANDLE  _nic_hdl;\r
+\r
+\r
+typedef NDIS_MINIPORT_TIMER    _timer;\r
+\r
+struct __queue {\r
+       LIST_ENTRY      queue;\r
+       _lock   lock;\r
+};\r
+\r
+typedef        NDIS_PACKET     _pkt;\r
+typedef NDIS_BUFFER    _buffer;\r
+typedef struct __queue _queue;\r
+\r
+typedef HANDLE         _thread_hdl_;\r
+typedef DWORD thread_return;\r
+typedef void*  thread_context;\r
+typedef NDIS_WORK_ITEM _workitem;\r
+\r
+#define thread_exit() ExitThread(STATUS_SUCCESS); return 0;\r
+\r
+\r
+#define SEMA_UPBND     (0x7FFFFFFF)   //8192\r
+\r
+__inline static _list *get_prev(_list  *list)\r
+{\r
+       return list->Blink;\r
+}\r
+       \r
+__inline static _list *get_next(_list  *list)\r
+{\r
+       return list->Flink;\r
+}\r
+\r
+__inline static _list  *get_list_head(_queue   *queue)\r
+{\r
+       return (&(queue->queue));\r
+}\r
+\r
+#define LIST_CONTAINOR(ptr, type, member) CONTAINING_RECORD(ptr, type, member)\r
+\r
+__inline static void _enter_critical(_lock *plock, _irqL *pirqL)\r
+{\r
+       NdisAcquireSpinLock(plock);\r
+}\r
+\r
+__inline static void _exit_critical(_lock *plock, _irqL *pirqL)\r
+{\r
+       NdisReleaseSpinLock(plock);\r
+}\r
+\r
+__inline static _enter_critical_ex(_lock *plock, _irqL *pirqL)\r
+{\r
+       NdisDprAcquireSpinLock(plock);  \r
+}\r
+\r
+__inline static _exit_critical_ex(_lock *plock, _irqL *pirqL)\r
+{\r
+       NdisDprReleaseSpinLock(plock);  \r
+}\r
+\r
+\r
+__inline static void _enter_hwio_critical(_rwlock *prwlock, _irqL *pirqL)\r
+{\r
+       WaitForSingleObject(*prwlock, INFINITE );\r
+\r
+}\r
+\r
+__inline static void _exit_hwio_critical(_rwlock *prwlock, _irqL *pirqL)\r
+{\r
+       ReleaseMutex(*prwlock);\r
+}\r
+\r
+__inline static void rtw_list_delete(_list *plist)\r
+{\r
+       RemoveEntryList(plist);\r
+       InitializeListHead(plist);\r
+}\r
+\r
+#define RTW_TIMER_HDL_ARGS IN PVOID SystemSpecific1, IN PVOID FunctionContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3\r
+\r
+__inline static void _init_timer(_timer *ptimer,_nic_hdl nic_hdl,void *pfunc,PVOID cntx)\r
+{\r
+       NdisMInitializeTimer(ptimer, nic_hdl, pfunc, cntx);\r
+}\r
+\r
+__inline static void _set_timer(_timer *ptimer,u32 delay_time)\r
+{\r
+       NdisMSetTimer(ptimer,delay_time);\r
+}\r
+\r
+__inline static void _cancel_timer(_timer *ptimer,u8 *bcancelled)\r
+{\r
+       NdisMCancelTimer(ptimer,bcancelled);\r
+}\r
+\r
+__inline static void _init_workitem(_workitem *pwork, void *pfunc, PVOID cntx)\r
+{\r
+\r
+       NdisInitializeWorkItem(pwork, pfunc, cntx);\r
+}\r
+\r
+__inline static void _set_workitem(_workitem *pwork)\r
+{\r
+       NdisScheduleWorkItem(pwork);\r
+}\r
+\r
+#define ATOMIC_INIT(i)  { (i) }\r
+\r
+//\r
+// Global Mutex: can only be used at PASSIVE level.\r
+//\r
+\r
+#define ACQUIRE_GLOBAL_MUTEX(_MutexCounter)                              \\r
+{                                                               \\r
+    while (NdisInterlockedIncrement((PULONG)&(_MutexCounter)) != 1)\\r
+    {                                                           \\r
+        NdisInterlockedDecrement((PULONG)&(_MutexCounter));        \\r
+        NdisMSleep(10000);                          \\r
+    }                                                           \\r
+}\r
+\r
+#define RELEASE_GLOBAL_MUTEX(_MutexCounter)                              \\r
+{                                                               \\r
+    NdisInterlockedDecrement((PULONG)&(_MutexCounter));              \\r
+}\r
+\r
+// limitation of path length\r
+#define PATH_LENGTH_MAX MAX_PATH\r
+\r
+//Atomic integer operations\r
+#define ATOMIC_T LONG\r
+\r
+#define NDEV_FMT "%s"\r
+#define NDEV_ARG(ndev) ""\r
+#define ADPT_FMT "%s"\r
+#define ADPT_ARG(adapter) ""\r
+#define FUNC_NDEV_FMT "%s"\r
+#define FUNC_NDEV_ARG(ndev) __func__\r
+#define FUNC_ADPT_FMT "%s"\r
+#define FUNC_ADPT_ARG(adapter) __func__\r
+\r
+#define STRUCT_PACKED\r
+\r
+\r
+#endif\r
+\r