📄 prism2mib.c
字号:
* 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 + -