⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zddebug2.c

📁 ZYDAS zd1211b driver for Linux2.4
💻 C
字号:
#ifndef _ZD_DEBUG2_C_#define _ZD_DEBUG2_C_#ifdef ZDCONF_MENUDBG#include "zddebug2.h"#include "menu_drv_macro.h"extern zd_80211Obj_t dot11Obj;//for debug message showextern U8 mDynKeyMode;extern U8 mKeyFormat;struct zd1205_private *lmacp;extern  struct net_device *g_dev;#define CNT_MAX	64static u32 CNT_TBL[CNT_MAX];static void copy_cnt_tally(void){        struct zd1205_private *macp = (struct zd1205_private *)g_dev->priv;        memset(CNT_TBL,0,sizeof(CNT_TBL));        CNT_TBL[T_bcnCnt]=macp->bcnCnt;        CNT_TBL[T_txCmpCnt]=macp->txCmpCnt;        CNT_TBL[T_dtimCnt]=macp->dtimCnt;        CNT_TBL[T_rxCnt]=macp->rxCnt;        CNT_TBL[T_retryFailCnt]=macp->retryFailCnt;        CNT_TBL[T_txCnt]=macp->txCnt;}static void acquire_ctrl_of_phy_req(void *regp){        u32 tmpValue;        tmpValue = zd_readl(CtlReg1);        tmpValue &= ~0x80;        zd_writel(tmpValue, CtlReg1);}static void release_ctrl_of_phy_req(void *regp){        u32 tmpValue;        tmpValue = zd_readl(CtlReg1);        tmpValue |= 0x80;        zd_writel(tmpValue, CtlReg1);}int zd1205_zd_dbg2_ioctl(struct zd1205_private *macp, struct zdap_ioctl *zdreq, u32 *ret){        void *regp = macp->regp;        u16 zd_cmd;        u32 tmp_value;        u32 tmp_addr;        u32 CRn;        *ret=0;        zd_cmd = zdreq->cmd;        switch(zd_cmd)        {        case RDCNT:                copy_cnt_tally();                if(zdreq->addr < CNT_MAX-1)                        *ret = CNT_TBL[zdreq->addr];                break;        case RDMAC:                acquire_ctrl_of_phy_req(regp);                tmp_value = zd_readl(zdreq->addr);                release_ctrl_of_phy_req(regp);                zdreq->value = tmp_value;                *ret =  tmp_value;                //if (copy_to_user(ifr->ifr_data, &zdreq, sizeof (zdreq)))                //return -EFAULT;                break;        case WRMAC:                acquire_ctrl_of_phy_req(regp);                zd_writel(zdreq->value, zdreq->addr);                release_ctrl_of_phy_req(regp);                if (zdreq->addr == RX_OFFSET_BYTE)                        macp->rxOffset = zdreq->value;                break;        case RDPhy:        case WRPhy:                acquire_ctrl_of_phy_req(regp);                tmp_addr = zdreq->addr;                CRn=    ((tmp_addr & 0xF00)>>8)*100+                        ((tmp_addr & 0xF0)>>4)*10+                        (tmp_addr & 0xF);                if (CRn >= 4 && CRn <= 8)//Special handling for CR4 to CR8                {                        u8 cnvtbl1[]={0x20, 0x10, 0x14, 0x18, 0x1c};                        tmp_addr = cnvtbl1[CRn-4];                } else {                        tmp_addr = CRn*4;                }                if (zd_cmd == RDPhy) {                        zdreq->value = zd_readl(tmp_addr);                        *ret =  zdreq->value;                } else {// ZD_IOCTL_WRITE_PHY                        zd_writel(zdreq->value, tmp_addr);                }                release_ctrl_of_phy_req(regp);                break;        default :                printk(KERN_ERR "zd1205: error command = %x\n", zd_cmd);                break;        }        return 0;}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -