bool wlc_ps_allowed(struct wlc_info *wlc)
{
int idx;
- wlc_bsscfg_t *cfg;
+ struct wlc_bsscfg *cfg;
/* disallow PS when one of the following global conditions meets */
if (!wlc->pub->associated || !wlc->PMenabled || wlc->PM_override)
d11regs_t *regs;
chanspec_t chanspec;
int i;
- wlc_bsscfg_t *bsscfg;
+ struct wlc_bsscfg *bsscfg;
bool mute = false;
WL_TRACE("wl%d: wlc_init\n", wlc->pub->unit);
if (hps != ((tmp & MCTL_HPS) != 0)) {
int idx;
- wlc_bsscfg_t *cfg;
+ struct wlc_bsscfg *cfg;
WL_ERROR("wl%d: hps not sync, sw %d, maccontrol 0x%x\n",
wlc->pub->unit, hps, tmp);
FOREACH_BSS(wlc, idx, cfg) {
* Write this BSS config's MAC address to core.
* Updates RXE match engine.
*/
-int wlc_set_mac(wlc_bsscfg_t *cfg)
+int wlc_set_mac(struct wlc_bsscfg *cfg)
{
int err = 0;
struct wlc_info *wlc = cfg->wlc;
/* Write the BSS config's BSSID address to core (set_bssid in d11procs.tcl).
* Updates RXE match engine.
*/
-void wlc_set_bssid(wlc_bsscfg_t *cfg)
+void wlc_set_bssid(struct wlc_bsscfg *cfg)
{
struct wlc_info *wlc = cfg->wlc;
void wlc_switch_shortslot(struct wlc_info *wlc, bool shortslot)
{
int idx;
- wlc_bsscfg_t *cfg;
+ struct wlc_bsscfg *cfg;
ASSERT(wlc->band->gmode);
{
if (wlc->home_chanspec != chanspec) {
int idx;
- wlc_bsscfg_t *cfg;
+ struct wlc_bsscfg *cfg;
wlc->home_chanspec = chanspec;
static void WLBANDINITFN(wlc_setband) (struct wlc_info *wlc, uint bandunit)
{
int idx;
- wlc_bsscfg_t *cfg;
+ struct wlc_bsscfg *cfg;
ASSERT(NBANDS(wlc) > 1);
ASSERT(!wlc->bandlocked);
}
-void wlc_edcf_setparams(wlc_bsscfg_t *cfg, bool suspend)
+void wlc_edcf_setparams(struct wlc_bsscfg *cfg, bool suspend)
{
struct wlc_info *wlc = cfg->wlc;
uint aci, i, j;
{
struct wlc_info *wlc = (struct wlc_info *) arg;
int i;
- wlc_bsscfg_t *cfg;
+ struct wlc_bsscfg *cfg;
WL_TRACE("wl%d: wlc_watchdog\n", wlc->pub->unit);
if (!mboolisset
(wlc->pub->radio_disabled, WL_RADIO_HW_DISABLE)) {
int idx;
- wlc_bsscfg_t *bsscfg;
+ struct wlc_bsscfg *bsscfg;
mboolset(wlc->pub->radio_disabled,
WL_RADIO_HW_DISABLE);
bool ta_ok;
uint band;
rw_reg_t *r;
- wlc_bsscfg_t *bsscfg;
+ struct wlc_bsscfg *bsscfg;
wlc_bss_info_t *current_bss;
/* update bsscfg pointer */
int val_size, struct wlc_if *wlcif)
{
struct wlc_info *wlc = hdl;
- wlc_bsscfg_t *bsscfg;
+ struct wlc_bsscfg *bsscfg;
int err = 0;
s32 int_val = 0;
s32 int_val2 = 0;
* for MC frames so is used as part of the sequence number.
*/
static inline u16
-bcmc_fid_generate(struct wlc_info *wlc, wlc_bsscfg_t *bsscfg, d11txh_t *txh)
+bcmc_fid_generate(struct wlc_info *wlc, struct wlc_bsscfg *bsscfg,
+ d11txh_t *txh)
{
u16 frameid;
void wlc_tbtt(struct wlc_info *wlc, d11regs_t *regs)
{
- wlc_bsscfg_t *cfg = wlc->cfg;
+ struct wlc_bsscfg *cfg = wlc->cfg;
wlc->pub->_cnt->tbtt++;
/* delay the cleanup to wl_down in IBSS case */
if ((R_REG(®s->phydebug) & PDBG_RFD)) {
int idx;
- wlc_bsscfg_t *bsscfg;
+ struct wlc_bsscfg *bsscfg;
FOREACH_BSS(wlc, idx, bsscfg) {
if (!BSSCFG_STA(bsscfg) || !bsscfg->enable
|| !bsscfg->BSS)
*/
static void
wlc_bcn_prb_template(struct wlc_info *wlc, u16 type, ratespec_t bcn_rspec,
- wlc_bsscfg_t *cfg, u16 *buf, int *len)
+ struct wlc_bsscfg *cfg, u16 *buf, int *len)
{
static const u8 ether_bcast[ETH_ALEN] = {255, 255, 255, 255, 255, 255};
cck_phy_hdr_t *plcp;
* template updated.
* Otherwise, it updates the hardware template.
*/
-void wlc_bss_update_beacon(struct wlc_info *wlc, wlc_bsscfg_t *cfg)
+void wlc_bss_update_beacon(struct wlc_info *wlc, struct wlc_bsscfg *cfg)
{
int len = BCN_TMPL_LEN;
void wlc_update_beacon(struct wlc_info *wlc)
{
int idx;
- wlc_bsscfg_t *bsscfg;
+ struct wlc_bsscfg *bsscfg;
/* update AP or IBSS beacons */
FOREACH_BSS(wlc, idx, bsscfg) {
}
/* Write ssid into shared memory */
-void wlc_shm_ssid_upd(struct wlc_info *wlc, wlc_bsscfg_t *cfg)
+void wlc_shm_ssid_upd(struct wlc_info *wlc, struct wlc_bsscfg *cfg)
{
u8 *ssidptr = cfg->SSID;
u16 base = M_SSID;
void wlc_update_probe_resp(struct wlc_info *wlc, bool suspend)
{
int idx;
- wlc_bsscfg_t *bsscfg;
+ struct wlc_bsscfg *bsscfg;
/* update AP or IBSS probe responses */
FOREACH_BSS(wlc, idx, bsscfg) {
}
void
-wlc_bss_update_probe_resp(struct wlc_info *wlc, wlc_bsscfg_t *cfg, bool suspend)
+wlc_bss_update_probe_resp(struct wlc_info *wlc, struct wlc_bsscfg *cfg,
+ bool suspend)
{
u16 prb_resp[BCN_TMPL_LEN / 2];
int len = BCN_TMPL_LEN;
void wlc_reprate_init(struct wlc_info *wlc)
{
int i;
- wlc_bsscfg_t *bsscfg;
+ struct wlc_bsscfg *bsscfg;
FOREACH_BSS(wlc, i, bsscfg) {
wlc_bsscfg_reprate_init(bsscfg);
}
/* per bsscfg init tx reported rate mechanism */
-void wlc_bsscfg_reprate_init(wlc_bsscfg_t *bsscfg)
+void wlc_bsscfg_reprate_init(struct wlc_bsscfg *bsscfg)
{
bsscfg->txrspecidx = 0;
memset((char *)bsscfg->txrspec, 0, sizeof(bsscfg->txrspec));
u16 tx_prec_map; /* Precedence map based on HW FIFO space */
u16 fifo2prec_map[NFIFO]; /* pointer to fifo2_prec map based on WME */
- /* BSS Configurations */
- wlc_bsscfg_t *bsscfg[WLC_MAXBSSCFG]; /* set of BSS configurations, idx 0 is default and
- * always valid
- */
- wlc_bsscfg_t *cfg; /* the primary bsscfg (can be AP or STA) */
+ /*
+ * BSS Configurations set of BSS configurations, idx 0 is default and
+ * always valid
+ */
+ struct wlc_bsscfg *bsscfg[WLC_MAXBSSCFG];
+ struct wlc_bsscfg *cfg; /* the primary bsscfg (can be AP or STA) */
u8 stas_associated; /* count of ASSOCIATED STA bsscfgs */
u8 aps_associated; /* count of UP AP bsscfgs */
u8 block_datafifo; /* prohibit posting frames to data fifos */
extern void wlc_ap_upd(struct wlc_info *wlc);
/* helper functions */
-extern void wlc_shm_ssid_upd(struct wlc_info *wlc, wlc_bsscfg_t *cfg);
+extern void wlc_shm_ssid_upd(struct wlc_info *wlc, struct wlc_bsscfg *cfg);
extern int wlc_set_gmode(struct wlc_info *wlc, u8 gmode, bool config);
extern void wlc_mac_bcn_promisc_change(struct wlc_info *wlc, bool promisc);
extern bool wlc_ps_check(struct wlc_info *wlc);
extern void wlc_reprate_init(struct wlc_info *wlc);
-extern void wlc_bsscfg_reprate_init(wlc_bsscfg_t *bsscfg);
+extern void wlc_bsscfg_reprate_init(struct wlc_bsscfg *bsscfg);
extern void wlc_uint64_sub(u32 *a_high, u32 *a_low, u32 b_high,
u32 b_low);
extern u32 wlc_calc_tbtt_offset(u32 bi, u32 tsf_h, u32 tsf_l);
struct wlc_bsscfg *bsscfg);
extern void wlc_update_probe_resp(struct wlc_info *wlc, bool suspend);
-extern void wlc_bss_update_probe_resp(struct wlc_info *wlc, wlc_bsscfg_t *cfg,
- bool suspend);
+extern void wlc_bss_update_probe_resp(struct wlc_info *wlc,
+ struct wlc_bsscfg *cfg, bool suspend);
extern bool wlc_ismpc(struct wlc_info *wlc);
extern bool wlc_is_non_delay_mpc(struct wlc_info *wlc);
extern int wlc_set_nmode(struct wlc_info *wlc, s32 nmode);
extern void wlc_ht_mimops_cap_update(struct wlc_info *wlc, u8 mimops_mode);
extern void wlc_mimops_action_ht_send(struct wlc_info *wlc,
- wlc_bsscfg_t *bsscfg, u8 mimops_mode);
+ struct wlc_bsscfg *bsscfg,
+ u8 mimops_mode);
extern void wlc_switch_shortslot(struct wlc_info *wlc, bool shortslot);
-extern void wlc_set_bssid(wlc_bsscfg_t *cfg);
-extern void wlc_edcf_setparams(wlc_bsscfg_t *cfg, bool suspend);
+extern void wlc_set_bssid(struct wlc_bsscfg *cfg);
+extern void wlc_edcf_setparams(struct wlc_bsscfg *cfg, bool suspend);
extern void wlc_set_ratetable(struct wlc_info *wlc);
-extern int wlc_set_mac(wlc_bsscfg_t *cfg);
+extern int wlc_set_mac(struct wlc_bsscfg *cfg);
extern void wlc_beacon_phytxctl_txant_upd(struct wlc_info *wlc,
ratespec_t bcn_rate);
extern void wlc_mod_prb_rsp_rate_table(struct wlc_info *wlc, uint frame_len);