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

📄 prism2mib.c

📁 uClinux2.6上兼容PRISM2.0芯片组的USB设备驱动程序.
💻 C
📖 第 1 页 / 共 5 页
字号:
*       parm1    Prism2 RID value.*       parm2    Number of bytes of RID data.*       parm3    Not used.** Arguments:*       mib      MIB record.*       isget    MIBGET/MIBSET flag.*       wlandev  wlan device structure.*       priv     "priv" structure.*       hw       "hw" structure.*       msg      Message structure.*       data     Data buffer.** Returns: *       0   - Success.*       ~0  - Error.*----------------------------------------------------------------*/static int prism2mib_bytestr2pstr(mibrec_t                     *mib,int                          isget,wlandevice_t                 *wlandev,hfa384x_t                    *hw,p80211msg_dot11req_mibset_t  *msg,void                         *data){	int                result;	p80211pstrd_t      *pstr = (p80211pstrd_t*) data;	UINT8              bytebuf[MIB_TMP_MAXLEN];	hfa384x_bytestr_t  *p2bytestr = (hfa384x_bytestr_t*) bytebuf;	DBFENTER;	if (isget) {		result = hfa384x_drvr_getconfig(hw, mib->parm1, bytebuf, mib->parm2);		prism2mgmt_bytestr2pstr(p2bytestr, pstr);	} else {		memset(bytebuf, 0, mib->parm2);		prism2mgmt_pstr2bytestr(p2bytestr, pstr);		result = hfa384x_drvr_setconfig(hw, mib->parm1, bytebuf, mib->parm2);	}	DBFEXIT;	return(result);}/*----------------------------------------------------------------* prism2mib_bytearea2pstr** Get/set pstr data to/from a byte area.** MIB record parameters:*       parm1    Prism2 RID value.*       parm2    Number of bytes of RID data.*       parm3    Not used.** Arguments:*       mib      MIB record.*       isget    MIBGET/MIBSET flag.*       wlandev  wlan device structure.*       priv     "priv" structure.*       hw       "hw" structure.*       msg      Message structure.*       data     Data buffer.** Returns: *       0   - Success.*       ~0  - Error.*----------------------------------------------------------------*/static int prism2mib_bytearea2pstr(mibrec_t                     *mib,int                          isget,wlandevice_t                 *wlandev,hfa384x_t                    *hw,p80211msg_dot11req_mibset_t  *msg,void                         *data){	int            result;	p80211pstrd_t  *pstr = (p80211pstrd_t*) data;	UINT8          bytebuf[MIB_TMP_MAXLEN];	DBFENTER;	if (isget) {		result = hfa384x_drvr_getconfig(hw, mib->parm1, bytebuf, mib->parm2);		prism2mgmt_bytearea2pstr(bytebuf, pstr,	mib->parm2);	} else {		memset(bytebuf, 0, mib->parm2);		prism2mgmt_pstr2bytearea(bytebuf, pstr);		result = hfa384x_drvr_setconfig(hw, mib->parm1, bytebuf, mib->parm2);	}	DBFEXIT;	return(result);}/*----------------------------------------------------------------* prism2mib_uint32** Get/set uint32 data.** MIB record parameters:*       parm1    Prism2 RID value.*       parm2    Not used.*       parm3    Not used.** Arguments:*       mib      MIB record.*       isget    MIBGET/MIBSET flag.*       wlandev  wlan device structure.*       priv     "priv" structure.*       hw       "hw" structure.*       msg      Message structure.*       data     Data buffer.** Returns: *       0   - Success.*       ~0  - Error.*----------------------------------------------------------------*/static int prism2mib_uint32(mibrec_t                     *mib,int                          isget,wlandevice_t                 *wlandev,hfa384x_t                    *hw,p80211msg_dot11req_mibset_t  *msg,void                         *data){	int     result;	UINT32  *uint32 = (UINT32*) data;	UINT8   bytebuf[MIB_TMP_MAXLEN];	UINT16  *wordbuf = (UINT16*) bytebuf;	DBFENTER;	if (isget) {		result = hfa384x_drvr_getconfig16(hw, mib->parm1, wordbuf);		*uint32 = *wordbuf;		/* [MSM] Removed, getconfig16 returns the value in host order.		 * prism2mgmt_prism2int2p80211int(wordbuf, uint32);		 */	} else {		/* [MSM] Removed, setconfig16 expects host order.		 * prism2mgmt_p80211int2prism2int(wordbuf, uint32);		 */		*wordbuf = *uint32;		result = hfa384x_drvr_setconfig16(hw, mib->parm1, *wordbuf);	}	DBFEXIT;	return(result);}/*----------------------------------------------------------------* prism2mib_uint32array** Get/set an array of uint32 data.** MIB record parameters:*       parm1    Prism2 RID value.*       parm2    Number of bytes of RID data.*       parm3    Not used.** Arguments:*       mib      MIB record.*       isget    MIBGET/MIBSET flag.*       wlandev  wlan device structure.*       priv     "priv" structure.*       hw       "hw" structure.*       msg      Message structure.*       data     Data buffer.** Returns: *       0   - Success.*       ~0  - Error.*----------------------------------------------------------------*/static int prism2mib_uint32array(mibrec_t                     *mib,int                          isget,wlandevice_t                 *wlandev,hfa384x_t                    *hw,p80211msg_dot11req_mibset_t  *msg,void                         *data){	int     result;	UINT32  *uint32 = (UINT32 *) data;	UINT8   bytebuf[MIB_TMP_MAXLEN];	UINT16  *wordbuf = (UINT16*) bytebuf;	int     i, cnt;	DBFENTER;	cnt = mib->parm2 / sizeof(UINT16);	if (isget) {		result = hfa384x_drvr_getconfig(hw, mib->parm1, wordbuf, mib->parm2);		for (i = 0; i < cnt; i++)			prism2mgmt_prism2int2p80211int(wordbuf+i, uint32+i);	} else {		for (i = 0; i < cnt; i++)			prism2mgmt_p80211int2prism2int(wordbuf+i, uint32+i);		result = hfa384x_drvr_setconfig(hw, mib->parm1, wordbuf, mib->parm2);		}	DBFEXIT;	return(result);}/*----------------------------------------------------------------* prism2mib_uint32offset** Get/set a single element in an array of uint32 data.** MIB record parameters:*       parm1    Prism2 RID value.*       parm2    Number of bytes of RID data.*       parm3    Element index.** Arguments:*       mib      MIB record.*       isget    MIBGET/MIBSET flag.*       wlandev  wlan device structure.*       priv     "priv" structure.*       hw       "hw" structure.*       msg      Message structure.*       data     Data buffer.** Returns: *       0   - Success.*       ~0  - Error.*----------------------------------------------------------------*/static int prism2mib_uint32offset(mibrec_t                     *mib,int                          isget,wlandevice_t                 *wlandev,hfa384x_t                    *hw,p80211msg_dot11req_mibset_t  *msg,void                         *data){	int     result;	UINT32  *uint32 = (UINT32*) data;	UINT8   bytebuf[MIB_TMP_MAXLEN];	UINT16  *wordbuf = (UINT16*) bytebuf;	UINT16  cnt;	DBFENTER;	cnt = mib->parm2 / sizeof(UINT16);	result = hfa384x_drvr_getconfig(hw, mib->parm1, wordbuf, mib->parm2);	if (result == 0) {		if (isget) {			if (mib->parm3 < cnt)				prism2mgmt_prism2int2p80211int(wordbuf+mib->parm3, uint32);			else				*uint32 = 0;		} else {			if (mib->parm3 < cnt) {				prism2mgmt_p80211int2prism2int(wordbuf+mib->parm3, uint32);				result = hfa384x_drvr_setconfig(hw, mib->parm1, wordbuf, mib->parm2);			}		}	}	DBFEXIT;	return(result);}/*----------------------------------------------------------------* prism2mib_truth** Get/set truth data.** MIB record parameters:*       parm1    Prism2 RID value.*       parm2    Not used.*       parm3    Not used.** Arguments:*       mib      MIB record.*       isget    MIBGET/MIBSET flag.*       wlandev  wlan device structure.*       priv     "priv" structure.*       hw       "hw" structure.*       msg      Message structure.*       data     Data buffer.** Returns: *       0   - Success.*       ~0  - Error.*----------------------------------------------------------------*/static int prism2mib_truth(mibrec_t                     *mib,int                          isget,wlandevice_t                 *wlandev,hfa384x_t                    *hw,p80211msg_dot11req_mibset_t  *msg,void                         *data){	int     result;	UINT32  *uint32 = (UINT32*) data;	UINT8   bytebuf[MIB_TMP_MAXLEN];	UINT16  *wordbuf = (UINT16*) bytebuf;	DBFENTER;	if (isget) {		result = hfa384x_drvr_getconfig16(hw, mib->parm1, wordbuf);		*uint32 = (*wordbuf) ?				P80211ENUM_truth_true : P80211ENUM_truth_false;	} else {		*wordbuf = ((*uint32) == P80211ENUM_truth_true) ? 1 : 0;		result = hfa384x_drvr_setconfig16(hw, mib->parm1, *wordbuf);	}	DBFEXIT;	return(result);}/*----------------------------------------------------------------* prism2mib_flag** Get/set a flag.** MIB record parameters:*       parm1    Prism2 RID value.*       parm2    Bit to get/set.*       parm3    Not used.** Arguments:*       mib      MIB record.*       isget    MIBGET/MIBSET flag.*       wlandev  wlan device structure.*       priv     "priv" structure.*       hw       "hw" structure.*       msg      Message structure.*       data     Data buffer.** Returns: *       0   - Success.*       ~0  - Error.*----------------------------------------------------------------*/static int prism2mib_flag(mibrec_t                     *mib,int                          isget,wlandevice_t                 *wlandev,hfa384x_t                    *hw,p80211msg_dot11req_mibset_t  *msg,void                         *data){	int     result;	UINT32  *uint32 = (UINT32*) data;	UINT8   bytebuf[MIB_TMP_MAXLEN];	UINT16  *wordbuf = (UINT16*) bytebuf;	UINT32  flags;	DBFENTER;	result = hfa384x_drvr_getconfig16(hw, mib->parm1, wordbuf);	if (result == 0) {		/* [MSM] Removed, getconfig16 returns the value in host order.		 * prism2mgmt_prism2int2p80211

⌨️ 快捷键说明

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