A_STATUS BMIGetTargetInfo(HIF_DEVICE *device, struct bmi_target_info *targ_info, struct ol_ath_softc_net80211 *scn) { #ifndef HIF_MESSAGE_BASED #else A_STATUS status; A_UCHAR *pBMICmdBuf = scn->pBMICmdBuf; A_UCHAR *pBMIRspBuf = scn->pBMIRspBuf; #endif if (scn->bmiDone) { AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("BMI Get Target Info Command disallowed\n")); return A_ERROR; } #ifndef HIF_MESSAGE_BASED /* getting the target ID requires special handling because of the variable length * message */ return HIFRegBasedGetTargetInfo(device,targ_info); #else { A_UINT32 cid; A_UINT32 length; cid = BMI_GET_TARGET_INFO; A_MEMCPY(pBMICmdBuf,&cid,sizeof(cid)); length = sizeof(struct bmi_target_info); status = HIFExchangeBMIMsg(device, pBMICmdBuf, sizeof(cid), (A_UINT8 *)pBMIRspBuf, &length, BMI_EXCHANGE_TIMEOUT_MS); if (status != A_OK) { AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("Unable to get target information from the device\n")); return A_ERROR; } A_MEMCPY(targ_info, pBMIRspBuf, length); return status; } #endif }
A_STATUS BMIGetTargetInfo(HIF_DEVICE *device, struct bmi_target_info *targ_info) { if (bmiDone) { AR_DEBUG_PRINTF(ATH_DEBUG_ERR, ("BMI Get Target Info Command disallowed\n")); return A_ERROR; } #ifndef HIF_MESSAGE_BASED /* getting the target ID requires special handling because of the variable length * message */ return HIFRegBasedGetTargetInfo(device,targ_info); #else /* TODO */ return A_ERROR; #endif }