User`s guide

Aironet Wireless Communications, Inc. 7-45 Confidential and Proprietary
TxCtlHDr.MaxShortRetry = numer of retries desired;
if (bap0_setup(TxFid, 0x0000) != SUCCESS) return ERROR;
bap0_write(&TxCtlHDr, sizeof(TxCtlHDr));
// write the 802.11 header
bap0_write(p802Hdr, sizeof(*p802Hdr));
// write the gap
bap0_write(&gapForTx802_11, sizeof(gapForTx802_11));
// write the payload
if (lenPayload != 0) bap0_write(pPayload, lenPayload);
// issue the transmit command
Cmd.Command = CMD_TRANSMIT;
Cmd.Param0 = TxFid;
if (issuecommand(&cmd, &rsp) != SUCCESS) return ERROR;
if ( (rsp.Status & 0xFF00) != 0) return ERROR;
// -- the following may be executed later in interrupt context
// wait for the transmit to complete
while ( ( (EvStat = IN4500(EVSTAT)) & (EV_TX|EV_TXEXC)) == 0) ;
// get the allocated fid and acknowledge
TxFid = IN4500(TXCOMPLFID);
// optionally read the return status
if (EvStat & EV_TXEXC) {
if (bap0_setup(TxFid, 0x0004) != SUCCESS) return ERROR;
bap0_read(&Status, sizeof(Status));
}
// acknowledge handling of the tx completion
OUT4500(EVACK, EvStat & (EV_TX|EV_TXEXC));
}