📄 wt_mgt.c
字号:
/* Copyright (C) 2005 LHWT Inc. */#include "wtprecomp.h" /****************************************************************************** Global variable definition section******************************************************************************///int pc_debug = VERBOSE;//module_param(pc_debug, int, 0);/****************************************************************************** Driver general functions******************************************************************************/ void wt4_write_reg(WT_ADAPTER *priv, unsigned int value, unsigned int offset, Op_Mode mode){ int t_width[3]={8,16,32}; WT_ADAPTER *Adapter = priv; // base0 = priv->MainMemAddress; printk(" write value (bitwidth %d) to reg 0x%x is 0x%x \n",t_width[mode],offset, value); switch ( mode ) { case BYTE_OP_TYPE: WRITE_WT4( offset, value, BYTE_OP); // *((volatile unsigned char *)((unsigned char *)(base0) + offset ) ) = value; break; case WORD_OP_TYPE: WRITE_WT4( offset, value, WORD_OP); // *((volatile unsigned short *)((unsigned char *)(base0) + offset ) ) = value; break; case DWORD_OP_TYPE: WRITE_WT4( offset, value, DWORD_OP); // *((volatile unsigned long *)((unsigned char *)(base0) + offset ) ) = value; break; default: printk("operation mode is wrong \n"); break; } }int wt4_read_reg(WT_ADAPTER *priv, unsigned int offset, Op_Mode mode){ int *base0; unsigned char t_char; unsigned short t_short; unsigned int t_long; base0 = (int *)priv->MainMemAddress; printk("base0=0x%08x \n " ,((unsigned int)base0)); switch (mode) { case BYTE_OP_TYPE: t_char = *((volatile unsigned char *)((unsigned char *)(base0) + offset ) ); printk("The value of reg 0x%08x is 0x%02x \n",offset, t_char); return t_char; break; case WORD_OP_TYPE: t_short = *((volatile unsigned short *)((unsigned char *)(base0) + offset ) ); printk("The value of reg 0x%08x is 0x%04x \n",offset, t_short ); return t_short; break; case DWORD_OP_TYPE: t_long = *((volatile unsigned long *)((unsigned char *)(base0) + offset ) ); printk("The value of reg 0x%08x is 0x%08x \n",offset, t_long ); return t_long; break; default: printk("operation mode is wrong \n"); return 0xFFFFFFFF; break; } return 0; }void wt4_fetch_block(WT_ADAPTER *priv,int t_offset,int t_length,long *t_buffer){ int i; PWTWLAN_MAINMEM base0; base0 = priv->MainMemAddress; for (i=0;i<t_length;i+=4) { *t_buffer = *(long*)((char *)base0 + t_offset + i); t_buffer++; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -