?? wmicallback.cpp
字號:
return;
}
extern "C" void
ar6000_bitrate_rx(
void *Context,
A_INT32 rateKbps)
{
CAR6KMini *Adapter = (CAR6KMini *)Context;
Adapter->WMIBitrateIndication(rateKbps);
}
extern "C" void
ar6000_channelList_rx(
void *Context,
A_INT8 numChan,
A_UINT16 *chanList)
{
CAR6KMini *Adapter = (CAR6KMini *)Context;
Adapter->WMIChannelListIndication(chanList, numChan);
}
extern "C" void
ar6000_ready_event(
void *Context,
A_UINT8 *macAddr,
A_UINT8 phyCap)
//
// This function is called by WMI when the device sends
// a WMI_READY packet. In addition to letting us know
// that the device is ready to receive WMI requests,
// it contains the MAC address of the device.
//
{
CAR6KMini *Adapter = (CAR6KMini *)Context;
Adapter->WMIReadyIndication(macAddr);
}
extern "C" A_UINT8
ar6000_iphdr_to_tos(A_UINT8 *pkt)
//
// This function is called by WMI to extract the
// type of service (TOS) field from an IP packet header.
//
{
return 1;
}
extern "C" void
ar6000_connect_event(
void *Context,
A_UINT16 channel,
A_UINT8 *bssid,
A_UINT16 listenInterval,
A_UINT8 assocReqLen,
A_UINT8 assocRespLen,
A_UINT8 *assocInfo,
A_UINT8 beaconIeLen)
//
// This function is called by WMI after receiving a
// WMI_CONNECT event packet from the device.
//
{
CAR6KMini *Adapter = (CAR6KMini *)Context;
NDIS_DEBUG_PRINTF(ATH_LOG_INF, "Connect EVENT from target\n");
Adapter->WMIConnectIndication(channel, bssid, listenInterval,
assocReqLen, assocRespLen,
assocInfo, beaconIeLen);
}
extern "C" void
ar6000_disconnect_event(
void *Context,
A_UINT8 reason,
A_UINT8 *bssid, A_UINT8 assocRespLen,
A_UINT8 *assocInfo)
//
// This function is called by WMI after receiving a
// WMI_DISCONNECT event packet from the device.
//
{
CAR6KMini *Adapter = (CAR6KMini *)Context;
NDIS_DEBUG_PRINTF(ATH_LOG_INF, "DisConnect EVENT from target\n");
Adapter->WMIDisconnectIndication();
}
extern "C" A_STATUS
ar6000_control_tx(
void *Context,
void *osbuf,
int endPt)
//
// This function is called by WMI to send a control
// packet to the device.
//
{
CAR6KMini *Adapter = (CAR6KMini *)Context;
return Adapter->WMISendControlPacket(osbuf, (HTC_ENDPOINT_ID)endPt);
}
extern "C" void
ar6000_dset_open_req(
void *context,
A_UINT32 id,
A_UINT32 targHandle,
A_UINT32 targReplyFn,
A_UINT32 targReplyArg)
{
CAR6KMini *Adapter = (CAR6KMini *)context;
Adapter->WMIDsetOpenReq(id, targHandle, targReplyFn, targReplyArg);
}
extern "C" void
ar6000_dset_close(
void *context,
A_UINT32 access_cookie)
{
return;
}
extern "C" void
ar6000_dset_data_req(
void *context,
A_UINT32 accessCookie,
A_UINT32 offset,
A_UINT32 length,
A_UINT32 targBuf,
A_UINT32 targReplyFn,
A_UINT32 targReplyArg)
{
CAR6KMini *Adapter = (CAR6KMini *)context;
Adapter->WMIDsetDataReq(accessCookie, offset, length, targBuf, targReplyFn, targReplyArg);
}
extern "C" void
ar6000_scanComplete_event(
void *context)
{
return;
}
extern "C" void
ar6000_targetStats_event(
void *context, WMI_TARGET_STATS *pStats)
{
CAR6KMini *Adapter = (CAR6KMini *)context;
Adapter->WMITargetStatsEvent(pStats);
return;
}
extern "C" void
ar6000_rssiThreshold_event(
void *context)
{
return;
}
extern "C" void
ar6000_reportError_event(
void *context, WMI_TARGET_ERROR_VAL errorVal)
{
char *errString[] = {
"",
"WMI_TARGET_PM_ERR_FAIL", //0x0001
"WMI_TARGET_KEY_NOT_FOUND", //0x0002
"",
"WMI_TARGET_DECRYPTION_ERR", //0x0004
"",
"",
"",
"WMI_TARGET_BMISS", //0x0008
"",
"",
"",
"",
"",
"",
"",
"WMI_PSDISABLE_NODE_JOIN" //0x0010
};
WMI_DEBUG_PRINTF(ATH_LOG_ERR,
"AR6000 Error on Target. Error = 0x%x\n",
errorVal);
/* One error is reported at a time, and errorval is a bitmask */
if (errorVal & (errorVal - 1)) {
return;
}
WMI_DEBUG_PRINTF(ATH_LOG_ERR, "AR6000 Error type = ");
switch(errorVal) {
case WMI_TARGET_PM_ERR_FAIL:
case WMI_TARGET_KEY_NOT_FOUND:
case WMI_TARGET_DECRYPTION_ERR:
case WMI_TARGET_BMISS:
case WMI_PSDISABLE_NODE_JOIN:
WMI_DEBUG_PRINTF(ATH_LOG_ERR, "%s\n", errString[errorVal]);
break;
default:
WMI_DEBUG_PRINTF(ATH_LOG_ERR, "INVALID\n");
break;
}
}
extern "C" void
ar6000_gpio_intr_rx(A_UINT32 intr_mask, A_UINT32 input_values)
{
return;
}
extern "C" void
ar6000_gpio_data_rx(A_UINT32 reg_id, A_UINT32 value)
{
return;
}
extern "C" void
ar6000_gpio_ack_rx(void)
{
return;
}
extern "C" A_UINT8
ar6000_trafficclass(A_UINT8 *pktHdr, A_UINT32 ndisUserPriority)
{
A_UINT8 trafficClass = WMM_AC_BE;
#ifdef WMM
A_UINT16 pMode,vMode;
A_UINT8 pClass,vClass;
struct iphdr *ipHdr = (struct iphdr *)pktHdr;
if(ipHdr) {
switch(ipHdr->ip_tos) {
case 0x08: /* Background */
pMode = WMM_AC_TO_TID(WMM_AC_BK);
pClass = WMM_AC_BK;
break;
case 0x28: /* Video */
case 0x80:
case 0xa0:
pMode = WMM_AC_TO_TID(WMM_AC_VI);
pClass = WMM_AC_VI;
break;
case 0x38: /* Voice */
case 0xc0:
case 0xe0:
pMode = WMM_AC_TO_TID(WMM_AC_VO);
pClass = WMM_AC_VO;
break;
case 0x00:
case 0x18:
default: /* All others / Best Effort */
pMode = WMM_AC_TO_TID(WMM_AC_BE);
pClass = WMM_AC_BE;
}
} else {
pMode = 0;
pClass = WMM_AC_BE;
}
vMode = ndisUserPriority & 0x7;
switch(vMode) {
case 0:
case 3: /* Best Effort */
vClass = WMM_AC_BE;
break;
case 1:
case 2: /* Background */
vClass = WMM_AC_BK;
break;
case 4:
case 5: /* video */
vClass = WMM_AC_VI;
break;
case 6:
case 7: /* Voice */
vClass = WMM_AC_VO;
break;
}
trafficClass = (pMode > vMode) ? pClass : vClass;
#endif //WMM
return trafficClass;
}
extern "C" void
ar6000_tkip_micerr_event(
void *context,
A_UINT8 keyid,
A_BOOL isMcast)
{
CAR6KMini *Adapter = (CAR6KMini *)context;
Adapter->WMIMicErrEvent(keyid, isMcast);
return;
}
extern "C" void
ar6000_set_numdataendpts(
void *context,
A_UINT32 num)
{
CAR6KMini *Adapter = (CAR6KMini *)context;
if (num <= (HTC_MAILBOX_NUM_MAX - 1)) {
return;
}
Adapter->WMISetNumDataEndpts(num);
return;
}
extern "C" void
ar6000_regDomain_event(
void *context,
A_UINT32 regCode)
{
CAR6KMini *Adapter = (CAR6KMini *)context;
Adapter->WMIRegDomainEvent(regCode);
return;
}
extern "C" void
ar6000_neighborReport_event(
void *context,
A_INT32 numAps,
WMI_NEIGHBOR_INFO *info)
{
CAR6KMini *Adapter = (CAR6KMini *)context;
Adapter->WMINeighborReportEvent(numAps, info);
return;
}
extern "C" void
ar6000_txPwr_rx(
void *context,
A_UINT8 txPwr)
{
CAR6KMini *Adapter = (CAR6KMini *)context;
Adapter->WMITxPwr(txPwr);
return;
}
extern "C" A_UINT32
a_copy_from_user(void *to, void *from, A_UINT32 n)
{
NdisMoveMemory(to, from, n);
return 0;
}
extern "C" void
ar6000_roam_tbl_event( void *devt, WMI_TARGET_ROAM_TBL *roamTbl )
{
}
extern "C" void
ar6000_roam_data_event( void *devt, WMI_TARGET_ROAM_DATA *roamDat )
{
}
extern "C" void
ar6000_cac_event( void *devt, A_UINT8 ac, A_UINT8 cac_ind,
A_UINT8 st, A_UINT8 *tspecSuggestion )
{
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -