wstats
priv->wstats.status = status;
priv->wstats.discard.misc++;
priv->wstats.discard.misc++;
priv->wstats.discard.misc++;
struct iw_statistics *wstats;
wstats = &priv->wstats;
wstats->miss.beacon = 0;
wstats->discard.retries = 0;
wstats->qual.qual = 0;
wstats->qual.level = 0;
wstats->qual.noise = 0;
wstats->qual.updated = 7;
wstats->qual.updated |= IW_QUAL_NOISE_INVALID |
return wstats;
wstats->qual.qual = 0;
wstats->qual.level = 0;
wstats->qual.level = rssi + IPW2100_RSSI_TO_DBM;
wstats->qual.qual = quality;
wstats->qual.level = rssi + IPW2100_RSSI_TO_DBM;
wstats->qual.noise = 0;
wstats->qual.updated = 7;
wstats->qual.updated |= IW_QUAL_NOISE_INVALID;
wstats->miss.beacon = missed_beacons;
wstats->discard.retries = tx_failures;
return wstats;
struct iw_statistics wstats;
priv->wstats.discard.misc++;
priv->wstats.discard.misc++;
priv->wstats.discard.misc++;
priv->wstats.discard.misc++;
priv->wstats.discard.misc++;
priv->wstats.discard.misc++;
struct iw_statistics *wstats;
wstats = &priv->wstats;
wstats->miss.beacon = 0;
wstats->discard.retries = 0;
wstats->qual.qual = 0;
wstats->qual.level = 0;
wstats->qual.noise = 0;
wstats->qual.updated = 7;
wstats->qual.updated |= IW_QUAL_NOISE_INVALID |
return wstats;
wstats->qual.qual = priv->quality;
wstats->qual.level = priv->exp_avg_rssi;
wstats->qual.noise = priv->exp_avg_noise;
wstats->qual.updated = IW_QUAL_QUAL_UPDATED | IW_QUAL_LEVEL_UPDATED |
wstats->miss.beacon = average_value(&priv->average_missed_beacons);
wstats->discard.retries = priv->last_tx_failures;
wstats->discard.code = priv->ieee->ieee_stats.rx_discards_undecryptable;
return wstats;
struct iw_statistics wstats;
struct iw_quality *wstats);
struct iw_quality wstats;
wstats.updated = 0;
wstats.level = rx_stats->signal;
wstats.updated |= IW_QUAL_LEVEL_UPDATED;
wstats.updated |= IW_QUAL_LEVEL_INVALID;
wstats.noise = rx_stats->noise;
wstats.updated |= IW_QUAL_NOISE_UPDATED;
wstats.updated |= IW_QUAL_NOISE_INVALID;
wstats.qual = rx_stats->signal;
wstats.updated |= IW_QUAL_QUAL_UPDATED;
wstats.updated |= IW_QUAL_QUAL_INVALID;
libipw_spy_update(ieee->dev, hdr->addr2, &wstats);
struct iw_quality * wstats)
threshold.qual = *wstats;
struct iw_quality * wstats)
memcpy(&(spydata->spy_stat[i]), wstats,
if (wstats->level > spydata->spy_thr_high.level) {
address, wstats);
if (wstats->level < spydata->spy_thr_low.level) {
address, wstats);
static struct iw_statistics wstats;
memset(&wstats, 0, sizeof(wstats));
wstats.qual.updated |= IW_QUAL_LEVEL_UPDATED;
wstats.qual.updated |= IW_QUAL_QUAL_UPDATED;
wstats.qual.updated |= IW_QUAL_DBM;
wstats.qual.level = sig;
wstats.qual.qual = sig + 110;
wstats.qual.updated |= IW_QUAL_LEVEL_UPDATED;
wstats.qual.updated |= IW_QUAL_QUAL_UPDATED;
wstats.qual.level = sinfo.signal;
wstats.qual.qual = sinfo.signal;
wstats.qual.updated |= IW_QUAL_LEVEL_INVALID;
wstats.qual.updated |= IW_QUAL_QUAL_INVALID;
wstats.qual.updated |= IW_QUAL_NOISE_INVALID;
wstats.discard.misc = sinfo.rx_dropped_misc;
wstats.discard.retries = sinfo.tx_failed;
return &wstats;
static void aggregate_wstats(struct wstats *all, int nw,
static void summarize(struct wstats *all, int nw, int nr)
static int alloc_thread_bufs(struct wstats *ws, int nw,
static void free_thread_bufs(struct wstats *ws, int nw,
static int start_writers(pthread_t *wt, struct wstats *ws, int nw,
struct wstats *ws = NULL;
struct wstats *s = arg;