亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? common_atheros_sdiostack_ar6000_wlan.patch

?? ar6k 的WIFI驅動
?? PATCH
?? 第 1 頁 / 共 5 頁
字號:
+ *  published by the Free Software Foundation;+ *+ *  Software distributed under the License is distributed on an "AS+ *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or+ *  implied. See the License for the specific language governing+ *  rights and limitations under the License.+ *+ *+ * This file contains the definitions of the basic atheros data types.+ * It is used to map the data types in atheros files to a platform specific+ * type.+ *+ */++#ifndef _OSAPI_LINUX_H_+#define _OSAPI_LINUX_H_++#include <linux/version.h>+#include <linux/types.h>+#include <linux/kernel.h>+#include <linux/string.h>+#include <linux/skbuff.h>+#include <linux/netdevice.h>+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)+#include <linux/jiffies.h>+#endif+#include <linux/timer.h>+#include <linux/delay.h>+#include <linux/wait.h>+#ifdef KERNEL_2_4+#include <asm/arch/irq.h>+#include <asm/irq.h>+#endif++/*+ * Endianes macros+ */+#define A_BE2CPU8(x)       ntohb(x)+#define A_BE2CPU16(x)      ntohs(x)+#define A_BE2CPU32(x)      ntohl(x)++#define A_LE2CPU8(x)       (x)+#define A_LE2CPU16(x)      (x)+#define A_LE2CPU32(x)      (x)++#define A_CPU2BE8(x)       htonb(x)+#define A_CPU2BE16(x)      htons(x)+#define A_CPU2BE32(x)      htonl(x)++#define A_MEMCPY(dst, src, len)         memcpy((A_UINT8 *)(dst), (src), (len))+#define A_MEMZERO(addr, len)            memset(addr, 0, len)+#define A_MEMCMP(addr1, addr2, len)     memcmp((addr1), (addr2), (len))+#define A_MALLOC(size)                  kmalloc((size), GFP_KERNEL)+#define A_MALLOC_NOWAIT(size)           kmalloc((size), GFP_ATOMIC)+#define A_FREE(addr)                    kfree(addr)+#define A_PRINTF(args...)               printk(args)++/* Mutual Exclusion */+typedef spinlock_t                      A_MUTEX_T;+#define A_MUTEX_INIT(mutex)             spin_lock_init(mutex)+#define A_MUTEX_LOCK(mutex)             spin_lock_bh(mutex)+#define A_MUTEX_UNLOCK(mutex)           spin_unlock_bh(mutex)++/*+ * Timer Functions+ */+#define A_MDELAY(msecs)                 mdelay(msecs)+typedef struct timer_list               A_TIMER;++#define A_INIT_TIMER(pTimer, pFunction, pArg) do {              \+    init_timer(pTimer);                                         \+    (pTimer)->function = (pFunction);                           \+    (pTimer)->data	 = (unsigned long)(pArg);                   \+} while (0)++/*+ * Start a Timer that elapses after 'periodMSec' milli-seconds+ * Support is provided for a one-shot timer. The 'repeatFlag' is+ * ignored.+ */+#define A_TIMEOUT_MS(pTimer, periodMSec, repeatFlag) do {                   \+    if (repeatFlag) {                                                       \+        printk("\n" __FILE__ ":%d: Timer Repeat requested\n",__LINE__);     \+        panic("Timer Repeat");                                              \+    }                                                                       \+    mod_timer((pTimer), jiffies + HZ * (periodMSec) / 1000);                \+} while (0)++/*+ * Cancel the Timer.+ */+#define A_UNTIMEOUT(pTimer) do {                                \+    del_timer((pTimer));                                        \+} while (0)++#define A_DELETE_TIMER(pTimer) do {                             \+} while (0)++/*+ * Wait Queue related functions+ */+typedef wait_queue_head_t               A_WAITQUEUE_HEAD;+#define A_INIT_WAITQUEUE_HEAD(head)     init_waitqueue_head(head)+#ifdef mvlcee31_2_4_20_omap2420_gsm_gprs+#ifndef wait_event_interruptible_timeout+#define __wait_event_interruptible_timeout(wq, condition, ret)          \+do {                                                                    \+        wait_queue_t __wait;                                            \+        init_waitqueue_entry(&__wait, current);                         \+                                                                        \+        add_wait_queue(&wq, &__wait);                                   \+        for (;;) {                                                      \+                set_current_state(TASK_INTERRUPTIBLE);                  \+                if (condition)                                          \+                        break;                                          \+                if (!signal_pending(current)) {                         \+                        ret = schedule_timeout(ret);                    \+                        if (!ret)                                       \+                                break;                                  \+                        continue;                                       \+                }                                                       \+                ret = -ERESTARTSYS;                                     \+                break;                                                  \+        }                                                               \+        current->state = TASK_RUNNING;                                  \+        remove_wait_queue(&wq, &__wait);                                \+} while (0)++#define wait_event_interruptible_timeout(wq, condition, timeout)        \+({                                                                      \+        long __ret = timeout;                                           \+        if (!(condition))                                               \+                __wait_event_interruptible_timeout(wq, condition, __ret); \+        __ret;                                                          \+})+#endif /* wait_event_interruptible_timeout */++#define A_WAIT_EVENT_INTERRUPTIBLE_TIMEOUT(head, condition, timeout) do { \+    wait_event_interruptible_timeout(head, condition, timeout); \+} while (0)+#else+#define A_WAIT_EVENT_INTERRUPTIBLE_TIMEOUT(head, condition, timeout) do { \+    wait_event_interruptible_timeout(head, condition, timeout); \+} while (0)+#endif /* mvlcee31_2_4_20-omap2420_gsm_gprs */++#define A_WAKE_UP(head)                 wake_up(head)++#ifdef DEBUG+#define A_ASSERT(expr)  \+    if (!(expr)) {   \+        printk( "\n" __FILE__ ":%d: Assertion " #expr " failed!\n",__LINE__); \+        panic(#expr); \+    }++#else+#define A_ASSERT(expr)+#endif /* DEBUG */++#endif /* _OSAPI_LINUX_H_ */Index: linux-2.6.18/drivers/sdio/function/wlan/ar6000/include/wmi_host.h===================================================================--- /dev/null+++ linux-2.6.18/drivers/sdio/function/wlan/ar6000/include/wmi_host.h@@ -0,0 +1,75 @@+/*+ * Copyright (c) 2004-2006 Atheros Communications Inc.+ *+ *  Wireless Network driver for Atheros AR6001+ *+ *  This program is free software; you can redistribute it and/or modify+ *  it under the terms of the GNU General Public License version 2 as+ *  published by the Free Software Foundation;+ *+ *  Software distributed under the License is distributed on an "AS+ *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or+ *  implied. See the License for the specific language governing+ *  rights and limitations under the License.+ *+ *+ * This file contains local definitios for the wmi host module.+ *+ */++#ifndef _WMI_HOST_H_+#define _WMI_HOST_H_++#ifdef __cplusplus+extern "C" {+#endif++/*+ * IP QoS Field definitions according to 802.1p+ */+#define BEST_EFFORT_PRI         0+#define BACKGROUND_PRI          1+#define EXCELLENT_EFFORT_PRI    3+#define CONTROLLED_LOAD_PRI     4+#define VIDEO_PRI               5+#define VOICE_PRI               6+#define NETWORK_CONTROL_PRI     7++struct wmi_stats {+    A_UINT32    cmd_len_err;+    A_UINT32    cmd_id_err;+};++struct wmi_priority_state {+    A_UINT8     inUse;+    A_UINT8     mbox;+};++struct wmi_mbox_state {+    A_UINT8     trafficClass;+    A_INT8      priorityNum;+};++struct wmi_t {+    A_BOOL                          wmi_ready;+    A_BOOL                          wmi_numQoSStream;+    struct wmi_priority_state       wmi_priority[WMI_MAX_NUM_PRI_STREAMS];+    struct wmi_mbox_state           wmi_mboxMap[2][WMI_MBOX_COUNT];+    A_INT8                          wmi_trafficClassMap[2][WMM_NUM_AC];+    A_UINT8                         wmi_olderPriRxMbox;+    A_UINT8                         wmi_newerPriRxMbox;+    void                           *wmi_devt;+    struct wmi_stats                wmi_stats;+    struct ieee80211_node_table     wmi_scan_table;+    A_BOOL                          wmi_pstreamCmdInProgress[2][WMM_NUM_AC];+    A_BOOL                          wmi_cpstreamCmdInProgress;+    A_UINT8                         wmi_bssid[ATH_MAC_LEN];+    A_UINT8                         wmi_powerMode;+    A_UINT8                         wmi_phyMode;+};++#ifdef __cplusplus+}+#endif++#endif /* _WMI_HOST_H_ */Index: linux-2.6.18/drivers/sdio/function/wlan/ar6000/bmi/bmi_internal.h===================================================================--- /dev/null+++ linux-2.6.18/drivers/sdio/function/wlan/ar6000/bmi/bmi_internal.h@@ -0,0 +1,31 @@+/*+ * Copyright (c) 2004-2006 Atheros Communications Inc.+ *  Wireless Network driver for Atheros AR6001+ *+ *  This program is free software; you can redistribute it and/or modify+ *  it under the terms of the GNU General Public License version 2 as+ *  published by the Free Software Foundation;+ *+ *  Software distributed under the License is distributed on an "AS+ *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or+ *  implied. See the License for the specific language governing+ *  rights and limitations under the License.+ *+ */+#include "../include/athdefs.h"+#include "../include/athtypes.h"+#include "../include/osapi.h"+#include "../include/hw/mbox_host_reg.h"+#include "../include/AR6000_bmi.h"++#define BMI_COMMUNICATION_TIMEOUT       100000++A_STATUS+bmiBufferSend(HIF_DEVICE *device,+              A_UCHAR *buffer,+              A_UINT32 length);++A_STATUS+bmiBufferReceive(HIF_DEVICE *device,+                 A_UCHAR *buffer,+                 A_UINT32 length);Index: linux-2.6.18/drivers/sdio/function/wlan/ar6000/hif/hif.c===================================================================--- /dev/null+++ linux-2.6.18/drivers/sdio/function/wlan/ar6000/hif/hif.c@@ -0,0 +1,664 @@+/*+ * Copyright (c) 2004-2005 Atheros Communications Inc.+ *+ *  Wireless Network driver for Atheros AR6001+ *+ *  This program is free software; you can redistribute it and/or modify+ *  it under the terms of the GNU General Public License version 2 as+ *  published by the Free Software Foundation;+ *+ *  Software distributed under the License is distributed on an "AS+ *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or+ *  implied. See the License for the specific language governing+ *  rights and limitations under the License.+ *+ *+ * This file contains the routines handling the interaction with the SDIO+ * driver+ */+#include "hif_internal.h"++/* ------ Static Variables ------ */++/* ------ Global Variable Declarations ------- */+SD_PNP_INFO Ids[] = {+    {+        .SDIO_ManufacturerID = MANUFACTURER_ID_BASE | 0xB,+        .SDIO_ManufacturerCode = MANUFACTURER_CODE,+        .SDIO_FunctionClass = FUNCTION_CLASS,+        .SDIO_FunctionNo = 1+    },+    {+        .SDIO_ManufacturerID = MANUFACTURER_ID_BASE | 0xA,+        .SDIO_ManufacturerCode = MANUFACTURER_CODE,+        .SDIO_FunctionClass = FUNCTION_CLASS,+        .SDIO_FunctionNo = 1+    },+    {+        .SDIO_ManufacturerID = MANUFACTURER_ID_BASE | 0x9,+        .SDIO_ManufacturerCode = MANUFACTURER_CODE,+        .SDIO_FunctionClass = FUNCTION_CLASS,+        .SDIO_FunctionNo = 1+    },+    {+        .SDIO_ManufacturerID = MANUFACTURER_ID_BASE | 0x8,+        .SDIO_ManufacturerCode = MANUFACTURER_CODE,+        .SDIO_FunctionClass = FUNCTION_CLASS,+        .SDIO_FunctionNo = 1+    },+    {+    }                      //list is null termintaed+};++TARGET_FUNCTION_CONTEXT FunctionContext = {+    .function.Version    = CT_SDIO_STACK_VERSION_CODE,+    .function.pName      = "sdio_wlan",+    .function.MaxDevices = 1,+    .function.NumDevices = 0,+    .function.pIds       = Ids,+    .function.pProbe     = hifDeviceInserted,+    .function.pRemove    = hifDeviceRemoved,+    .function.pSuspend   = NULL,+    .function.pResume    = NULL,+    .function.pWake      = NULL,+    .function.pContext   = &FunctionContext,+};++HIF_DEVICE hifDevice[HIF_MAX_DEVICES];+HTC_CALLBACKS htcCallbacks;+BUS_REQUEST busRequest[BUS_REQUEST_MAX_NUM];+OS_CRITICALSECTION lock;+extern A_UINT32 onebitmode;+extern A_UINT32 busspeedlow;+extern A_UINT32 debughif;++#ifdef DEBUG+#define ATH_DEBUG_ERROR 1+#define ATH_DEBUG_WARN  2+#define ATH_DEBUG_TRACE 3+#define _AR_DEBUG_PRINTX_ARG(arg...) arg+#define AR_DEBUG_PRINTF(lvl, args)\+    {if (lvl <= debughif)\+        A_PRINTF(KERN_ALERT _AR_DEBUG_PRINTX_ARG args);\+    }+#else+#define AR_DEBUG_PRINTF(lvl, args)+#endif++/* ------ Functions ------ */+void+HIFRegisterCallbacks(HTC_CALLBACKS *callbacks)+{+    SDIO_STATUS status;+    DBG_ASSERT(callbacks != NULL);++    /* Store the callback and event handlers */+    htcCallbacks.deviceInsertedHandler = callbacks->deviceInsertedHandler;+    htcCallbacks.deviceRemovedHandler = callbacks->deviceRemovedHandler;+    htcCallbacks.deviceSuspendHandler = callbacks->deviceSuspendHandler;+    htcCallbacks.deviceResumeHandler = callbacks->deviceResumeHandler;+    htcCallbacks.deviceWakeupHandler = callbacks->deviceWakeupHandler;+    htcCallbacks.rwCompletionHandler = callbacks->rwCompletionHandler;+    htcCallbacks.dsrHandler = callbacks->dsrHandler;++    CriticalSectionInit(&lock);++    /* Register with bus driver core */+    status = SDIO_RegisterFunction(&FunctionContext.function);+    DBG_ASSERT(SDIO_SUCCESS(status));+}++A_STATUS+HIFReadWrite(HIF_DEVICE *device,+             A_UINT32 address,+             A_UCHAR *buffer,+             A_UINT32 length,+             HIF_REQUEST *request,+             void *context)+{+    A_UINT8 rw;+    A_UINT8 mode;+    A_UINT8 funcNo;+    A_UINT8 opcode;+    A_UINT16 count;+    SDREQUEST *sdrequest;+    SDIO_STATUS status;+    DBG_ASSERT(device != NULL);+    DBG_ASSERT(device->

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人美女视频在线观看| 亚洲一卡二卡三卡四卡| 欧美系列亚洲系列| 国产乱子伦一区二区三区国色天香 | fc2成人免费人成在线观看播放 | 中文字幕电影一区| 欧美一级片免费看| 91黄视频在线观看| 成人高清伦理免费影院在线观看| 亚洲精选一二三| 国产精品系列在线| 在线免费观看日本一区| 九九视频精品免费| 天堂在线一区二区| 亚洲欧美一区二区三区极速播放| 精品日韩在线观看| 欧美亚洲高清一区| 国产福利不卡视频| 亚洲国产日韩a在线播放| 国产日产亚洲精品系列| 欧美变态tickling挠脚心| 欧美中文字幕久久| eeuss鲁一区二区三区| 国产成人综合精品三级| 亚洲午夜一区二区| 依依成人精品视频| 樱花草国产18久久久久| 亚洲欧美另类小说| 国产精品久久久久影院老司| 久久伊人蜜桃av一区二区| 欧美不卡一区二区三区| 日韩午夜三级在线| 久久久久国产精品麻豆| 久久综合九色综合欧美就去吻| 欧美日本乱大交xxxxx| 91精品国产综合久久精品app| 欧美日韩中文字幕一区二区| 91在线看国产| 欧美日韩mp4| 欧美成人一区二区三区片免费| 日韩天堂在线观看| 国产女主播一区| 亚洲综合视频在线观看| 亚洲v日本v欧美v久久精品| 亚洲成人一二三| 国产精品资源站在线| 99国产精品国产精品久久| 在线观看日韩国产| 久久亚洲精华国产精华液 | 欧美精品一区二区三区很污很色的| 欧美videos中文字幕| 国产精品免费人成网站| 亚洲综合在线免费观看| 免费观看91视频大全| 国产**成人网毛片九色| 欧美日韩在线三级| 久久精品亚洲精品国产欧美| 国产精品久久久久久亚洲伦 | 久久国产福利国产秒拍| 久久精品国内一区二区三区| 国产精品77777| 色呦呦日韩精品| 91精品国产91久久久久久最新毛片| 日韩欧美精品在线视频| 国产精品福利电影一区二区三区四区| 自拍偷自拍亚洲精品播放| 免费欧美高清视频| 成人一区二区三区视频| 欧美一区二区三区男人的天堂| 亚洲蜜臀av乱码久久精品| 水野朝阳av一区二区三区| 91美女片黄在线| 精品少妇一区二区三区视频免付费| 亚洲高清不卡在线| 99久精品国产| 中文字幕亚洲电影| 国产伦精品一区二区三区视频青涩| 555www色欧美视频| 亚洲影视在线播放| 日本黄色一区二区| 一区二区三区视频在线观看| 91蝌蚪porny| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品一区二区不卡| 久久精品人人爽人人爽| 国产精品一区二区男女羞羞无遮挡| 日韩午夜在线影院| 国产一区激情在线| 国产日产精品一区| 美国三级日本三级久久99| 色婷婷综合久久久中文字幕| 亚洲在线中文字幕| 在线播放国产精品二区一二区四区| 午夜精品久久久久久久| 欧美日韩第一区日日骚| 精品一区二区国语对白| 久久精品人人做人人爽人人| 国产精品夜夜爽| 国产精品少妇自拍| 欧美视频在线一区二区三区| 亚洲一区免费视频| 久久久午夜电影| 国模少妇一区二区三区| 国产精品国产三级国产普通话蜜臀| 色综合天天做天天爱| 免费成人你懂的| 日韩欧美aaaaaa| 免费高清在线一区| 国产欧美日韩精品在线| 91视频.com| 国产精品1024久久| 亚洲超碰精品一区二区| 亚洲国产激情av| 日韩精品一区国产麻豆| 在线一区二区视频| 韩国一区二区在线观看| 亚洲va欧美va国产va天堂影院| 精品第一国产综合精品aⅴ| 91麻豆精东视频| 国产精品1024| 免费成人在线网站| 亚洲a一区二区| 亚洲精品乱码久久久久久日本蜜臀| 日韩亚洲国产中文字幕欧美| 欧美中文字幕不卡| 成人97人人超碰人人99| 国产精品香蕉一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲一区二区三区中文字幕在线| 久久精品夜色噜噜亚洲a∨| 欧美三日本三级三级在线播放| 成人99免费视频| av在线不卡免费看| 丁香婷婷综合网| 色婷婷av一区二区三区之一色屋| 国产伦精一区二区三区| 国产一区啦啦啦在线观看| 国产一区二区三区四区五区入口| 亚洲精品日日夜夜| 亚洲国产aⅴ成人精品无吗| 亚洲一二三四在线| 亚洲专区一二三| 亚洲一卡二卡三卡四卡五卡| 欧美国产一区二区在线观看| 久久综合九色综合欧美98| 在线观看亚洲精品| 91国偷自产一区二区开放时间| 国产精品一二三在| 99久久综合国产精品| 不卡av在线网| 欧美性猛片xxxx免费看久爱| 在线观看视频欧美| 7777精品伊人久久久大香线蕉| 日韩欧美成人激情| 中文字幕中文字幕一区二区| 一区二区三区精品在线观看| 亚洲成人精品一区| 国产精品资源在线观看| 日本亚洲一区二区| 色综合天天综合色综合av| 欧美日韩国产一二三| 国产激情一区二区三区四区 | 亚洲美女视频在线观看| 日本欧美一区二区三区| 日韩av电影天堂| 99久久久久免费精品国产 | 精品国产1区2区3区| 最新不卡av在线| 国产精品综合二区| 日韩欧美高清dvd碟片| 一区二区三区日韩精品视频| 国产乱色国产精品免费视频| 欧美日本精品一区二区三区| 国产精品天干天干在观线| 亚洲男人都懂的| 丁香六月久久综合狠狠色| 精品福利在线导航| 精品亚洲欧美一区| 成人免费视频app| 欧美一卡二卡在线观看| 亚洲一区精品在线| 在线免费av一区| 亚洲欧美激情小说另类| 一个色在线综合| 欧美性猛交xxxx黑人交| 精品国产乱子伦一区| 国产一区二区三区四区在线观看| 欧美一区二区三区免费在线看| 日韩电影免费一区| 日韩欧美不卡在线观看视频| 首页综合国产亚洲丝袜| 欧美在线视频你懂得| 一区二区三区 在线观看视频| 91高清视频在线| 午夜国产不卡在线观看视频| 911精品国产一区二区在线| 日韩精品一级中文字幕精品视频免费观看 | 综合久久国产九一剧情麻豆| 色综合天天综合网天天看片| 亚洲国产精品一区二区久久恐怖片|