linux/net/mac80211/debugfs_netdev.c
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2006   Jiri Benc <jbenc@suse.cz>
   3 * Copyright 2007       Johannes Berg <johannes@sipsolutions.net>
   4 *
   5 * This program is free software; you can redistribute it and/or modify
   6 * it under the terms of the GNU General Public License version 2 as
   7 * published by the Free Software Foundation.
   8 */
   9
  10#include <linux/kernel.h>
  11#include <linux/device.h>
  12#include <linux/if.h>
  13#include <linux/interrupt.h>
  14#include <linux/netdevice.h>
  15#include <linux/rtnetlink.h>
  16#include <linux/slab.h>
  17#include <linux/notifier.h>
  18#include <net/mac80211.h>
  19#include <net/cfg80211.h>
  20#include "ieee80211_i.h"
  21#include "rate.h"
  22#include "debugfs.h"
  23#include "debugfs_netdev.h"
  24#include "driver-ops.h"
  25
  26static ssize_t ieee80211_if_read(
  27        struct ieee80211_sub_if_data *sdata,
  28        char __user *userbuf,
  29        size_t count, loff_t *ppos,
  30        ssize_t (*format)(const struct ieee80211_sub_if_data *, char *, int))
  31{
  32        char buf[70];
  33        ssize_t ret = -EINVAL;
  34
  35        read_lock(&dev_base_lock);
  36        if (sdata->dev->reg_state == NETREG_REGISTERED)
  37                ret = (*format)(sdata, buf, sizeof(buf));
  38        read_unlock(&dev_base_lock);
  39
  40        if (ret >= 0)
  41                ret = simple_read_from_buffer(userbuf, count, ppos, buf, ret);
  42
  43        return ret;
  44}
  45
  46static ssize_t ieee80211_if_write(
  47        struct ieee80211_sub_if_data *sdata,
  48        const char __user *userbuf,
  49        size_t count, loff_t *ppos,
  50        ssize_t (*write)(struct ieee80211_sub_if_data *, const char *, int))
  51{
  52        char buf[64];
  53        ssize_t ret;
  54
  55        if (count >= sizeof(buf))
  56                return -E2BIG;
  57
  58        if (copy_from_user(buf, userbuf, count))
  59                return -EFAULT;
  60        buf[count] = '\0';
  61
  62        ret = -ENODEV;
  63        rtnl_lock();
  64        if (sdata->dev->reg_state == NETREG_REGISTERED)
  65                ret = (*write)(sdata, buf, count);
  66        rtnl_unlock();
  67
  68        return ret;
  69}
  70
  71#define IEEE80211_IF_FMT(name, field, format_string)                    \
  72static ssize_t ieee80211_if_fmt_##name(                                 \
  73        const struct ieee80211_sub_if_data *sdata, char *buf,           \
  74        int buflen)                                                     \
  75{                                                                       \
  76        return scnprintf(buf, buflen, format_string, sdata->field);     \
  77}
  78#define IEEE80211_IF_FMT_DEC(name, field)                               \
  79                IEEE80211_IF_FMT(name, field, "%d\n")
  80#define IEEE80211_IF_FMT_HEX(name, field)                               \
  81                IEEE80211_IF_FMT(name, field, "%#x\n")
  82#define IEEE80211_IF_FMT_LHEX(name, field)                              \
  83                IEEE80211_IF_FMT(name, field, "%#lx\n")
  84#define IEEE80211_IF_FMT_SIZE(name, field)                              \
  85                IEEE80211_IF_FMT(name, field, "%zd\n")
  86
  87#define IEEE80211_IF_FMT_HEXARRAY(name, field)                          \
  88static ssize_t ieee80211_if_fmt_##name(                                 \
  89        const struct ieee80211_sub_if_data *sdata,                      \
  90        char *buf, int buflen)                                          \
  91{                                                                       \
  92        char *p = buf;                                                  \
  93        int i;                                                          \
  94        for (i = 0; i < sizeof(sdata->field); i++) {                    \
  95                p += scnprintf(p, buflen + buf - p, "%.2x ",            \
  96                                 sdata->field[i]);                      \
  97        }                                                               \
  98        p += scnprintf(p, buflen + buf - p, "\n");                      \
  99        return p - buf;                                                 \
 100}
 101
 102#define IEEE80211_IF_FMT_ATOMIC(name, field)                            \
 103static ssize_t ieee80211_if_fmt_##name(                                 \
 104        const struct ieee80211_sub_if_data *sdata,                      \
 105        char *buf, int buflen)                                          \
 106{                                                                       \
 107        return scnprintf(buf, buflen, "%d\n", atomic_read(&sdata->field));\
 108}
 109
 110#define IEEE80211_IF_FMT_MAC(name, field)                               \
 111static ssize_t ieee80211_if_fmt_##name(                                 \
 112        const struct ieee80211_sub_if_data *sdata, char *buf,           \
 113        int buflen)                                                     \
 114{                                                                       \
 115        return scnprintf(buf, buflen, "%pM\n", sdata->field);           \
 116}
 117
 118#define IEEE80211_IF_FMT_DEC_DIV_16(name, field)                        \
 119static ssize_t ieee80211_if_fmt_##name(                                 \
 120        const struct ieee80211_sub_if_data *sdata,                      \
 121        char *buf, int buflen)                                          \
 122{                                                                       \
 123        return scnprintf(buf, buflen, "%d\n", sdata->field / 16);       \
 124}
 125
 126#define __IEEE80211_IF_FILE(name, _write)                               \
 127static ssize_t ieee80211_if_read_##name(struct file *file,              \
 128                                        char __user *userbuf,           \
 1ltbugfs_netdev.c#L4>64t="L49">  49        size_t)                             char loff)                                          \
userbuf,           \
ret = simple_read_from_buffer(  12#include <     3" class="sref">field<>userbuf,           \
 >buflen + 1etlass="sref">i]);                      \
_w#name(                      headioperf="nee_read_from_buffheadioperf="needev.c#L129" id="L19"="L126" class="line" name="##iops =f(read_lock(&1; 12  const struct name>reg_state ==  126#define b1f, sizeof(.#L129" id="L19"ope123        rope1me="\
        rline" nope1      const struct read_unlock(&1;, sizeof(.#L129" id="L19"llsee"sref">countllsee"me="\
countga hric_headillsee"      const struct ;                                             0" class=1"line" name="L40">  40   14.c#L100" id="L100" class="line" name="L100"> 10">ppos, 
 121       ebugfs_netdev.c#L122" id="L122" class="linele" name=";
field)                            \
 127static ssize_t 144 class="sref">field<>userbuf,             href="+code=sdata" class="sref">sdata,
 1ltbugfs_netdev.c#L4>64t="L49">  49        size_t)    ebugfs_netdev.c#L122" id="L122" class="linel}
ssize_t ret = ieee802111_sub_14ef="+code=file" class="sref">file, class="sref">simple_read_from_buffer( >buflenebugfs_netdev.c#L106" id="L106" class="linec__user" ccode=__user" class="sref1">__u1erlass="sref">i]);                      \
loff"L125" class="line" name="L125"> 125
 126#dedebugfs_netdeIEEE8L127" id="L127" class="line" IEEE8L"L127"> 12 href="+code=name" class="sref">name, 1href="+co1de=ieee80211_sub_if_data1" cla15.c#L100" id="L100" class="line" name="L100"> 10 *, int))1
buf,   5121      117" id="L117" class="line" name="L11> 125
 126#de/a>#define field<"L117" class="line" name="L117">a href="net/mac80211/debugfs_net"L127"+="L37="L118" class="line" name="L118"> 118#define IEebugfs_netdev.c#L122" id="L122" class="line/   \
i++) { ine" name="L125"> 125
 126#deNULe="L33">  33NULeDIV_1bugfs_netdev.c#L122" id="L122" class="line/}
co1unt, "%zd\n&quo1="line" n1ame="L56">  56      1     15terms of the GNU General Pu/* eneron atac80211sFree Software Foundation.
 126#dedrop_unencrypteIEEE80211_IF_FMTdrop_unencrypteIme="L126"> 126#de">  77}
u1erbuf<"L117" class="line" name="L11> 125
 126#de"c_f="nidx_mask.c#L26" id="L26"c_f="nidx_maskme="6">  96     et/mac8021BAND_2GHZ25
count<1line" nam1e="L59">  59        1     1  return -i++) { t;)
[cou"L117" class="line" name="L11> 125
 126#de"c_f="nidx_mask.c#L26" id="L26"c_f="nidx_maskme="6">  96     et/mac8021BAND_5GHZ25
count<1l*, int))1;
uef">i++) { t;)
1et"L117" class="line" name="L11> 125
#ine" name="L63">  631     164 class="sref">field<>utdev.c#L126" idrc_f="nidx_mcs_mask.c#L26" id="L26"c_f="nidx_mcs_maskme="6">  96     et/mac8021BAND_2GHZ25
i++) { t;<  86
reg_state == }
"tdev.c#L126" idrc_f="nidx_mcs_mask.c#L26" id="L26"c_f="nidx_mcs_maskme="6">  96     et/mac8021BAND_5GHZ25
i++) { t;<  86
  66    1    <1 href="+code=rtnl_unlock" class="sref">rtnl_unl1ock()1;
#define )
 1 68 125
  64          64        )
ret;1
        channel_typ ef="a href="+code=bufvi"+code=ret" clasvi"ef=".#L129" id="L19"bss_con.c#L123" id="L123ss_con.ef=".#L129" id="L19"channel_typ  64        channel_typ ef="a href="+code=buf">  77}
  691}
 10f">field<1/a>, 
ieee17t"L117" class="line" name="L11> 125

  13#ta" class="sref">sdata, c1ar *  77}
   \
bu1flen<17e=NET"L117" class="line" name="L11> 125
t_beacon="L49">  49 a>t_beacon             \
t_beacon_signal="L49">  49 a>t_beacon_signal             \
  77}
}
  75{         1     1      "L117" class="line" name="L11> 125
  49ave_beacon             \
  49ave_beacon_signal             \
 7
"line" n1=sdata" class="sref">sda1tartnl_unl1>);     \1
 120       "+code=rtnl_unlock" class="sref">rtnl_unl1>a href="1name, fieldfi1ldf">ieee80211_sub_if_data *, const char1s="sref">1name,   49          local id="L120" class="linlocal="L49">  49local id="
buf,   49local id=ac80211/debugfs_netdev.c#L66" id="L66" cla1fie18netdev.c#L31"                   er">sdata,
name, #code=field" class="sref"1>fiel18   49local id=ef="+code=buflen" clhw="L49">  49hwef=".#L129" id="L19"olage_read_from_buffhlagea>#d len" <"L117" class="line" name=HW_SUPPORTS_STATIC_SMPS25
name, fi#L129" id="L19" mpe_m   "net/mac80211/ddmpe_m   dev.+code=sdata" class=et/mac8021SMPS_STATIC25
fie18 >= sizeof(  33fINVAe id=ac80211/debugfs_netdev.c#L66" id="L66" cla1<"line" n1)
rtnl_unl1 class="s1ref">name, 
ieee10211_if_fmt_  49local id=ef="+code=buflen" clhw="L49">  49hwef=".#L129" id="L19"olage_read_from_buffhlagea>#d len" <"L117" class="line" name=HW_SUPPORTS_DYNAMIC_SMPS25
ieee802111_sub_if_data *
="sref">1href="+code=buflen" clas1s="sr19 class="sref">fieltdev.c#L126" id6mpe_m   "net/mac80211/ddmpe_m   dev.+code=sdata" class=et/mac8021SMPS_AUTOMATIC25
  91{         1     19netdev.c#L31"s="sref"="+code=buf" class="srefINVAe="L33">  33fINVAe id=ac80211/debugfs_netdev.c#L66" id="L66" cla1> = b19" clac80211/debugfs_netdev.c#L66" id="L66" cla1i<1/a>; 1               of the GNU General Pu/* supported only on managed    erfaces     nowFree Software Foundation.
field);1 rtnl_lock();
        typ ef=" !ode=sdata" class="Lac80211/TYPE_STATION 64        "Lac80211/TYPE_STATIONdev.1bugfs_netdev.c#L122" id="L122" class="lineef="+code1=p" class="sref">p, 1"&="+code=buf" class="srefOPNOTSUPP="L33">  33fOPNOTSUPP id=ac80211/debugfs_netdev.c#L66" id="L66" cla1>"line" n1" class="sref">field1[rtnl_unl1ne" name=1"L97">  97        } 1     1                             mutexclass="sref">ENODEVbuflen, "%d\n&quo +code=ret" classef=".#L129" id="L19"mgIEEE80211_IF_FMTmgIef=".#L129" id="L19"mtxEEE80211_IF_FMTmtx" idmac80211/debugfs_netdev.c#L66" id="L66" cla1+code=p" 1class="sref">p, &qu               er">sdata,
  65                 - buf200                           mutexclass="sref">countmutexclass="fs_nelen" class="sref">buflen, "%d\n&quo +code=ret" classef=".#L129" id="L19"mgIEEE80211_IF_FMTmgIef=".#L129" id="L19"mtxEEE80211_IF_FMTmtx" idmac80211/debugfs_netdev.c#L66" id="L66" cla2    \
 120}
sdata,
i2ee80221_if_f                                         2=5eee80212_lass="sref">field);2"+cod20_netdref">_w#name("sref">sdata,    dmpe_m   e_read_from_buffdmpe_m   eme="6">  96     et/mac8021SMPS_NUM_MODES25
p, 2sref"20lass="string"6">  96     et/mac8021SMPS_AUTOMATIC25
field2     2              6">  96     et/mac8021SMPS_OFF25
  97        } 2ata  96     et/mac8021SMPS_STATIC25
_nprintf(p,   96     et/mac8021SMPS_DYNAMIC25
n2me,  12=ieee80212_if_fmt_" class="sref">i2ee80221_if_fclass="sref">field)                        \
 120       00" id="L100" class="line" name="L100"> 12=ss="sref2" class="sref">sdata2 char2*sdata,                      \
 12=ieee80212uflen" class="sref">bufl2n2       00" id="L100" class="line" name="L100"> 12=5eee8021214"> 114{           2     21f="+code=i" cde=rtnl_lock" class="sref">rtnl_lock();
        typ ef=" !ode=sdata" class="Lac80211/TYPE_STATION 64        "Lac80211/TYPE_STATIONdev.1bugfs_netdev.c#L122" id="L name="L100"> 12=6eee80212class="sref">sdata-&2t;"&="+code=buf" class="srefOPNOTSUPP="L33">  33fOPNOTSUPP id=ac80211/debugfs_netdev.c#L66" id="L66" cla2    \
 126}
 123        return (name, fieldsdata,    dmpe_m   e_read_from_buffdmpe_m   eme="6">  96     flen, "%d\n&quo +code=ret" classef=".#L129" id="L19"mgIEEE80211_IF_FMTmgIef=".#L129" id="L19"req#smpe_read_from_buffreq#smpedev.]a                                         2=ieee80212_if_fmt_" class="sref">i2ee80222 return -  96     flen, "%d\n&quo +code=ret" classef=".#L129" id="L19"mgIEEE80211_IF_FMTmgIef=".#L129" id="L19"ap#smpe_read_from_buffap#smpedev.]mac80211/debugfs_netdev.c#L66" id="L66" cla2ieee802112sub_if_data *buf,  122{           2     22 class="sref">field)                            \
 120       "+code=rtnl_unlock" class="sref">rtnl_unl2e=sdata" 2lass="sref">sdata-&g2;field<>userbuf,          #name("sref">sdata,                      \
 12    \
 124}
,  12="+code=f2le" class="sref">file  96     et/mac8021SMPS_NUM_MODES25
 12=9eee80212lass="sref">__user *2a hre2="+code=userbuf" classde=rtnl_lock" class=trncm                =trncm ac80211/debugfs_netdev.c#L123" id="L123" class="line" name="L1dmpe_m   e_read_from_buffdmpe_m   eme="6">  96     m   "net/mac80211/dm   dev.] uef">i++) { gfs_netdev.c#L121" id="L121" clas=\
 12/a>, sdata,
  65                fielrbuf" classde=r!               er">sdata,
 12cint userbuf,                         gfs_netdev.c#L121" id="L121" clac80211/debugfs_netdev.c#L66" id="L66" cla2c name="L2LL12">  12#include &2t    23" class="sref">field<>userbuf                      er">sdata,
234 class="sref">field<                                          2c   \
}
read_lock(&2;, "%zd\n&quo2cref">nam2>reg_state ==   33fINVAe id=ac80211/debugfs_netdev.c#L66" id="L66" cla2c"+code=f2ef="+code=buf" class="sr2ef">b23->fieldread_unlock(&2; 12lock)2;
 1_W25
  40   24.c#L100" id="L100" class="line" name="L100"> 12">ppos, field)                        \
 12" name="L2;
 120       ("sref">sdata,                      \
 12l  132iinclude <24      00" id="L100" class="line" name="L100"> 12l   \
  33fOPNOTSUPP id=ac80211/debugfs_netdev.c#L66" id="L66" cla2l}
field);      2class="sr2ef">ssize_t  12c"+code=f2" class="sref">ieee802112_sub_24ield" class=                   hwaddr_aton="L49">  49hwaddr_atonfs_ne#name("sref">sdata,    tx                tx        12l__user" 2code=__user" class="sref2">__u2er 00" id="L100" class="line" name="L100"> 12/a>,  12 *, int))2
  96     ETH_ALEN 64        ETH_ALENme="a href="net/mac80 "net/mac80211/de id=zeof(16" id="L116" class="line" name="L116"> 12"L52" cla2ss="line" name="L52">  52225" class="sref">field<                   ame="L120"> 120<       2href="+code=ssize_t" cla2ss="s25_if_f                                         2/   \
i++) { ame="L120"> 120<     \
  49hex_to_binfs_ne">sdata,    tx                tx     zeoac80211/debugfs_netdev.c#L66" id="L66" cla2h}
co2unt"&de=rtnl_lock" classame="L120"> 120<     \94" i0a00" id="L100" class="line" name="L100"> 12="line" n2ame="L56">  56      2     257ass="string">"&ode=i" c="+code=1ac80211/debugfs_netdev.c#L66" id="L66" cla2h"+code=f2;
  49hex_to_binfs_ne">sdata,    tx                tx     zeoac80211/debugfs_netdev.c#L66" id="L66" cla2h__user" 2+code=userbuf" class="sr2ef">u25"+code=userbuf" classde=rtnl_lock" classbtdev.c#L121" id= id=\94" i0a00" id="L100" class="line" name="L100"> 12line" nam2e="L59">  59        2     2  return -[fielrbuL120" class="linaddr_read_from_buffaddr" cl++ref=26"> 126#deame="L120"> 120<     \94" 94" i4) | sdata,    tx                tx     ++r!=ff="+code=scnprintf" cl#39;:l#39;f( 12lL52" cla2ref="+code=ret" class="s2ref">26" class="sref">field<>userbuf       =1ac80211/debugfs_netdev.c#L66" id="L66" cla2u  132ine" name="L63">  632     264 class="srefcode=field" class="sref">field);      2u   \
reg_state ==  12u}
  66    2    <2 href=code=field" class="sref">field);      2u"+code=f2;
field);      2u__user" 2lass="line" name="L68"> 2 68field)                        \
 12>ret;2
 120       ("name("sref">sdata,                      \
 12>  692}
 12f">field<2/a>,   49          local id="L120" class="linlocal="L49">  49local id="
buf,   49local id=ac80211/debugfs_netdev.c#L66" id="L66" cla2e=ieee802211_if_fmt_" class="sref"2>ieee27" class="sref  96     ETH_ALEN 64        ETH_ALENme="]ac80211/debugfs_netdev.c#L66" id="L66" cla2e  132ta" class="sref">sdata, c274return -bu2flen<275return -}
  75{         2     276 class="srefsda2tartnl_unl2>);     \2
a href="2name, fielrbuL Assume("nlon-delimited MAC address with po   ble white of cee Software Foundation.
fi2ld of the GNU General Pu">fielrbuL followtf".e Software Foundation.
fielrbuLee Software Foundation.
fie28netdev.c#L31" e=rtnl_lock" classbfs_netdev.c#L121" id="L121" cl 94" i3uL ">  96     ETH_ALEN 64        ETH_ALENme=" - 1a00" id="L100" class="line" name="L100"> 12<=ieee8022>name, field<       =buf" class="srefINVAe="L33">  33fINVAe id=ac80211/debugfs_netdev.c#L66" id="L66" cla2<  132code=field" class="sref"2>fiel28   49hwaddr_atonfs_ne11/debugfs_netdev.c#L123" id="L123" class="line" name="L1addr_read_from_buffaddr" cla\94" i0a00" id="L100" class="line" name="L100"> 12<   \
name, field<       =buf" class="srefINVAe="L33">  33fINVAe id=ac80211/debugfs_netdev.c#L66" id="L66" cla2<}
fie28, "%zd\n&quo2<"line" n2)
, <_runntf" net/mac80211/debugfs_netd>, <_runntf"fs_netdev.c#L126" id6"L65">  65              11bugfs_netdev.c#L122" id="L122" class="lin2 class="s2ref">name, ieee28.c#L108" id="L108" class="line" name="L108"> 12>ieee802121_sub_if_data *  49local id=ef="+code=buflen" clhw="L49">  49hwef=".#L129" id="L19"extra_tx_headroom>sdata,
="sref">2href="+code=buflen" clas2s="sr29 class="sref"de=r!               ekbtdev.c#L121" idekb id=1bugfs_netdev.c#L122" id="L122" class="lin2ne" name=2"L91">  91{         2     29netdev.c#L31"s="sref"="+code=buf" class="srefNOMEM 64        ENOMEM id=ac80211/debugfs_netdev.c#L66" id="L66" cla2> = b29" class="sref  49local id=ef="+code=buflen" clhw="L49">  49hwef=".#L129" id="L19"extra_tx_headroom>sdata,
  132+code=i" class="sref">i<2/a>; 29_if_f                                         2e=field" 2class="sref">field);2 }
p, 2"line" n2" class="sref">field2[class="s2"L97">  97        } 2     29_netdode=field" class="sref">field);      2+code=p" 2class="sref">p, &quswitch=rtnl_lock" class="sref">rtnl_lock();
        typ ef="of(16" id="L116" class="line" name="L116"> 13> - buf300            casd="L117" class="l"Lac80211/TYPE_AP="L33">  33"Lac80211/TYPE_AP    :16" id="L116" class="line" name="L116"> 13>1- fielrbu
}

name, field<i<3ee802304 class="sref">field<"L117" class="lmemcpy               memcpyfs_netdev.c#L126" idhdr_read_from_buffhdr id=ref="net/mac80211/deaddr2_read_from_buffaddr2" cls="line" name="L1="sref">rtnl_lock();
field);3"+cod30f="+code=i" class="sref">i++) { memcpy               memcpyfs_netdev.c#L126" idhdr_read_from_buffhdr id=ref="net/mac80211/deaddr3_read_from_buffaddr3" cls="line" name="L1="sref">rtnl_lock();
p, 3sref"30lass="string">"&breakac80211/debugfs_netdev.c#L66" id="L66" cla307s="sref3> class="sref">field3     3              casd="L117" class="l"Lac80211/TYPE_STATION 64        "Lac80211/TYPE_STATIONdev.:16" id="L116" class="line" name="L116"> 13>8s="sref3>L97">  97        } 3ata
p, 
rtnl_lock();
  33NULeDIV_1f(16" id="L116" class="line" name="L116"> 13="sref">n3me, fielrbuf" classa href="net/mac108_kfree_ekbtdev.c#L121" id108_kfree_ekbfs_netdev.c#L126" id6kbtdev.c#L121" idekb id=oac80211/debugfs_netdev.c#L66" id="L66" cla3=ieee80213_if_fmt_" class="sref">i3ee80231netdev.c#L31"s="sref">userbuf       =buf" class="srefNOTCONN 64        ENOTCONN id=ac80211/debugfs_netdev.c#L66" id="L66" cla3=ss="sref3" class="sref">sdata3 char3*field);      3=ieee80213uflen" class="sref">bufl3n314 class="sref">field<"L117" class="lmemcpy               memcpyfs_netdev.c#L126" idhdr_read_from_buffhdr id=ref="net/mac80211/deaddr1_read_from_buffaddr1class="line" name="L1="sref">rtnl_lock();
 114{           3     31f="+code=i" class="sref">i++) { memcpy               memcpyfs_netdev.c#L126" idhdr_read_from_buffhdr id=ref="net/mac80211/deaddr2_read_from_buffaddr2" cls="line" name="L1="sref">rtnl_lock();
sdata-&3t;"&ef">i++) { memcpy               memcpyfs_netdev.c#L126" idhdr_read_from_buffhdr id=ref="net/mac80211/deaddr3_read_from_buffaddr3" cls="line" name="L1addr_read_from_buffaddr" cls="line" name="L1ETH_ALEN 64        ETH_ALENme="oac80211/debugfs_netdev.c#L66" id="L66" cla3=7s="sref3ref="net/mac80211/debugf3_netd317ass="string">"&breakac80211/debugfs_netdev.c#L66" id="L66" cla36}
 1389eee80213ref">name, fieldi3ee80232 return -  33fOPNOTSUPP id=ac80211/debugfs_netdev.c#L66" id="L66" cla3ieee802113sub_if_data *field);      3 int   49frcla_control id="
 122{           3     32" clac80211/debugfs_netdev.c#L66" id="L66" cla3e=sdata" 3lass="sref">sdata-&g3;
fielrbuL Add some length to the tes  frcla to make it look bit more valid.e Software Foundation.
fielrbuL The exact("natal s does not matter since the recipial  is requirede Software Foundation.
, fielrbuL to drop this because of the Michael MIC failure.e Software Foundation.
filefielrbuLee Software Foundation.
__user *3a hre32="string">&qu               memse                memse fs_netdev.c#L126" idekb_pu                 kb_pu fs_netdev.c#L126" id6kbtdev.c#L121" idekb id=lt50), 0lt50oac80211/debugfs_netdev.c#L66" id="L66" cla3/a>, #d |
buf,   12#include &3t    33" class="sref  65                33_if_f                                         3c   \
}
read_lock(&3;field);      3cref">nam3>reg_state == rtnl_unl3c"+code=f3ef="+code=buf" class="sr3ef">b33->#L129" id="L19"ine" name="L125"> 1_W25
read_unlock(&3; 13lock)3;
field)                        \
 13leee802113"line" name="L40">  40   34 class="sref"#name(                                 \
 120       ("sref">sdata,                      \
 13lint ,  13" name="L3;
buflen, "%d\n&quo +code=ret" classef=".#L129" id="L19"mgIEEE80211_IF_FMTmgIef="ac80211/debugfs_netdev.c#L66" id="L66" cla3l  133iinclude <34_if_f                                         3l   \
buf               \
 123        return (}
field);      3class="sr3ef">ssize_t  13c"+code=f3" class="sref">ieee802113_sub_34ield" class=sref">field)                        \
 13l9eee80213code=__user" class="sref3">__u34="string">&qus                                \
 120       ("name("sref">sdata,                      \
 13/a>,  13href="+co3de=ieee80211_sub_if_data3" cla351"string">&qus                               c#Lmanaged_read_from_buffdebugfs_netdemanaged id="L120" class="linifmgIEEE80211_IF_FMTifmgI id="
buflen, "%d\n&quo +code=ret" classef=".#L129" id="L19"mgIEEE80211_IF_FMTmgIef="ac80211/debugfs_netdev.c#L66"ame="L116"> 13hint   49val id=ac80211/debugfs_netdev.c#L66" id="L66" cla3"L52" cla3ss="line" name="L52">  53235" class="sref="net/mac80211/debure                re fs_nac80211/debugfs_netdev.c#L66" id="L66" cla3"  133href="+code=ssize_t" cla3ss="s35_if_f                                         3/   \
buval="L49">  49val id=oac80211/debugfs_netdev.c#L66" id="L66" cla3h}
co3unt 13/lass="sr3ame="L56">  56      3     357ass="string">"&="+codeclass="sref">bure                re fs_nac80211/debugfs_netdev.c#L66" id="L66" cla3""+code=f3;
field);      3h__user" 3+code=userbuf" class="sr3ef">u35"+code=userbude=rtnl_lock" classval="L49">  49val id= 13line" nam3e="L59">  59        3     3  return -[ 13l*, int))3;
  49val id=ac80211/debugfs_netdev.c#L66" id="L66" cla3lL52" cla3ref="+code=ret" class="s3ref">36" clac80211/debugfs_netdev.c#L66" id="L66" cla3u  133ine" name="L63">  633     364 class="sref="+code#L129" id="L19"bfs_netdev.c#L121" id="L121" clac80211/debugfs_netdev.c#L66" id="L66" cla3u   \
reg_state == field);      3u}
 1_W25
  66    3    <36.c#L116" id="L116" class="line" name="L116"> 13u"+code=f3;
field)                        \
 13u__user" 3lass="line" name="L68"> 3 68 120       ("sref">sdata,                      \
 13>ret;3
 13>  693}
buflen, "%d\n&quo +code=ret" classef=".#L129" id="L19"mgIEEE80211_IF_FMTmgIef="ac80211/debugfs_netdev.c#L66"ame="L116"> 13>*, int))3/a>, buf, ieee37" class="sref="+codeclass="sref">buf               \
 123        return (3ta" class="sref">sdata, c374retucode=field" class="sref">field);      3e   \
bu3flen<37.c#L124" id="L124" class="line" name="L124"> 13e}
  75{         3     376 cla class=sref">field)                        \
 13e"line" n3=sdata" class="sref">sda3ta 120       ("name("sref">sdata,                      \
 13>);     \3
 13>__user" 3name, &qus                               c#Lmanaged_read_from_buffdebugfs_netdemanaged id="L120" class="linifmgIEEE80211_IF_FMTifmgI id="
buflen, "%d\n&quo +code=ret" classef=".#L129" id="L19"mgIEEE80211_IF_FMTmgIef="ac80211/debugfs_netdev.c#L66"ame="L116"> 13 fi38 return -  49val id=ac80211/debugfs_netdev.c#L66" id="L66" cla3   693name, fie38ref">buf, name,   49ks  toulac80211/debugfs_netdev.c#L123" id="L123" class=0,buval="L49">  49val id=oac80211/debugfs_netdev.c#L66" id="L66" cla3<  133code=field" class="sref"3>fiel38  13<   \
name, field<       =buf" class="srefINVAe="L33">  33fINVAe id=ac80211/debugfs_netdev.c#L66" id="L66" cla3<}
fie38, "%zd\n&quo3<"line" n3)
  49val id= 13<);     \3ref">name, ieee38.c#L108" id="L108" class="line" name="L108"> 13>ieee802131_sub_if_data *"%d26" id apsd_max_sp__netdev.c#L121" iduapsd_max_sp__nefs_n"
  49val id=ac80211/debugfs_netdev.c#L66" id="L66" cla3>="sref">3href="+code=buflen" clas3s="sr39.c#L100" id="L100" class="line" name="L100"> 13ne" name=3"L91">  91{         3     39netdev.c#L31"="+code#L129" id="L19"bfs_netdev.c#L121" id="L121" clac80211/debugfs_netdev.c#L66" id="L66" cla3> = b39" clacode=field" class="sref">field);      3>  133+code=i" class="sref">i<3/a>; 39_if_f#L129" id="L19"ine" name="L125"> 1_W25
field);3  13>}
p, 3
field3[, ,   97        } 3     39->#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" idnum_sn<_pe_read_from_buffnum_sn<_peclass="line" name="L1 +code=ret" classef=".#L129" id="L19"a                apef=".#L129" id="L19"num_sn<_pe_read_from_buffnum_sn<_peclass="line" name="L1ATOMIC/a>, p,  - buf40 retuc80211/debugfs_netdev.c#L66" id="L66" cla4>1- field)                        \
 140}
 120       ("sref">sdata,                      \
 1403/a>}
 1404s="sref4>code=i" class="sref">i<4ee802404 class="sref="+code#L129" id="L19"sc               \
 123        return ( 1405s="sref4>lass="sref">field);4"+cod40f="+code=i" class="srrrrrrrrrr#L129" id="L19"skb_queu __netdev.c#L121" idskb_queu __neac802len" class="sref">buflen, "%d\n&quo +code=ret" classef=".#L129" id="L19"a                apef=".#L129" id="L19"ps_bc_ev.c#L123" id="L12ps_bc_ev." claoac80211/debugfs_netdev.c#L66" id="L66" cla4>6s="sref4>p" class="sref">p, 4sref"40ef="+code=field" class="sref">field);      407s="sref4> class="sref">field4     407 claa href="net/mac"net/mac80211/debug25
  33NULeDIV_1ac80211/debugfs_netdev.c#L66" id="L66" cla4>8s="sref4>L97">  97        } 4atafield);      409s="sref4>lass="sref">p, 
loffclass="sref">field)                        \
 14="sref">n4me,  120       ("sref">sdata,                      \
 14=}
i4ee80241_if_f(16" id="L116" class="line" name="L116"> 14=ss="sref4" class="sref">sdata4 char4*  49          local id="L120" class="linlocal="L49">  49local id="
buf,   49local id=ac80211/debugfs_netdev.c#L66" id="L66" cla4=ieee80214uflen" class="sref">bufl4n414 class="srefot;%d\n&quo ine" name="" class64 clasot;%d\n"s.c#L123" id="L12ts.fs_nac80211/debugfs_netdev.c#L66" id="L66" cla4=5s="sref414"> 114{           4     41.c#L124" id="L124" class="line" name="L124"> 14=6eee80214class="sref">sdata-&4t;  49local id=,f=                                 \
buf,  146}
 123        return (name, field);      4=ieee80214_if_fmt_" class="sref">i4ee80242 retuc80211/debugfs_netdev.c#L66" id="L66" cla4ieee802114sub_if_data *field)                        \
 14 int  120       ("name("sref">sdata,                      \
 14" name="L422"> 122{           4     42" cla(16" id="L116" class="line" name="L116"> 14e=sdata" 4lass="sref">sdata-&g4;  49          local id="L120" class="linlocal="L49">  49local id="
buf,   49local id=ac80211/debugfs_netdev.c#L66" id="L66" cla4    \
}
buf}
filefield);      4=9eee80214lass="sref">__user *4a hre42"+code=userbude=rtnl_lock" class   ncm                   ncm ac80211/debugfs_netdev.c#L123" id="L123" class="="+code=scnprintf" class="resetnprintf( 14/a>,   49local id=ef="+code=buflen" clope_read_from_buffopeclasef="+code=buflen" clresetLts.c#L123" id="L12resetLts." claf(16" id="L116" class="line" name="L116"> 14/eee802114f="+code=ieee80211_sub_i4f_dat43 class="sref"ass="srrrrrrrrrr#L129" id="L19"1rv_resetLts.c#L123" id="L121rv_resetLts.fs_netdev.c#L126" idlocal="L49">  49local id=,fa href="net/macl class="sref">buf, userbufa href="net/macwiphy_infoss="sref">buf  49local id=ef="+code=buflen" clhw="L49">  49hwef=".#L129" id="L19"wiphyss="sref">buf(<1ac80211/debugfs_netdev.c#L66" id="L66" cla4c name="L4LL12">  12#include &4t    43field);      4c=sdata" 4ref="+code=ret" class="s4ref">43             } elsef(16" id="L116" class="line" name="L116"> 14/   \
(<1f(16" id="L116" class="line" name="L116"> 14/}
read_lock(&4;"&lass="sr e=rtnl_lock" classbfsc#L123" id="L123" clas[0]+code="+code=scnprintf" cl#39;+l#39;f(<116" id="L116" class="line" name="L116"> 14/7s="sref4>reg_state == "&s="sref">userbufa href="net/macts._is_dellass="sref">buf}
b43ef="+code=file" classsssssssselsef e=rtnl_lock" classbfsc#L123" id="L123" clas[0]+code="+code=scnprintf" cl#39;-l#39;f(<116" id="L116" class="line" name="L116"> 14/9eee80214ef">read_unlock(&4;fielduserbufa href="net/macts._is_dellass="sref">buf)4;
  40   44 class="sref"ass="srrrrrrrrrrrrrrrrrr       =buf" class="srefINVAe="L33">  33fINVAe id=ac80211/debugfs_netdev.c#L66" id="L66" cla4lint , userbufa href="net/macbfsc#L123" id="L123" clas += 2ac80211/debugfs_netdev.c#L66" id="L66" cla4l name="L4;
field);      4l  134iinclude <444 class="sref">field<"L117" class="lre                re fs_n"
  49ks  toullac80211/debugfs_netdev.c#L123" id="L123" class=10,buts.c#L123" id="L12ts.fs_n1ac80211/debugfs_netdev.c#L66" id="L66" cla4l   \
 14l}
"&lass="sr       =buf" class="srefINVAe="L33">  33fINVAe id=ac80211/debugfs_netdev.c#L66" id="L66" cla4l7s="sref4ef">ssize_t "& e=rtnl_lock" classts._is_dellass="sref">buf 14l}
ieee802114_sub_44ef="+code=file" classssssssssot;%d\n"s.c#L123" id="L12ts.fs_n"
  49local id=,fa href="net/macl class="sref">buf, buf__u44 class="sref">field  49local id=ef="+code=buflen" clope_read_from_buffopeclasef="+code=buflen" clsetLts.c#L123" id="L12setLts." claf(16" id="L116" class="line" name="L116"> 14/a>,   49local id=,fa href="net/macl class="sref">buf, buf  49local id=ef="+code=buflen" clhw="L49">  49hwef=".#L129" id="L19"wiphyss="sref">bufuserbufsrrrrrrrrrr#="+code=scnprintf" class="#L66" i set TSF to sref"#018llx\nnprintf(  54245field);      4"  134href="+code=ssize_t" cla4ss="s45             }ode=field" class="sref">field);      4"   \
 14h}
co4unt  56      4     457ass=}ode=field" class="sref">field);      4"}
 1_W25
u45.c#L108" id="L108" class="line" name="L108"> 14line" nam4e="L59">  59        4     46 retuc80211/debugfs_netdev.c#L66" id="L66" cla4uf[46" clac80211/debugfs_netdev.c#L66" id="L66" cla4u  134ine" name="L63">  634     464 cla#ifdeffa href="net/macCONFIG_MACac8021MESH/a>, reg_state == }
  66    4    <467 claa href="net/macet/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" idfwded_unssas                fwded_unssas a hr,fa href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"msh clas+code=ret" clasmsh clasef=".#L129" id="L19"fwded_unssas                fwded_unssas a hr,fa href="net/macDEC/a>, }
 4 68  49dropped_frclae_ttla hr,fa href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"msh clas+code=ret" clasmsh clasef=".#L129" id="L19"dropped_frclae_ttl="L49">  49dropped_frclae_ttla hr,fa href="net/macDEC/a>, ret;4
  694}
*, int))4/a>, L52" cla411_if_fmt_" class="sref"4>ieee47  134ta" class="sref">sdata, c47_if_f#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" idestab_psreks+code=ret" clasestab_psreksa hr,fa href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"msh clas+code=ret" clasmsh clasef=".#L129" id="L19"estab_psreks+code=ret" clasestab_psreksa hr,fa href="net/macATOMIC/a>, bu4flen<47.c#L124" id="L124" class="line" name="L124"> 14e}
  75{         4     47lass= of the GNU General Pu/* Mesh parclatersuLee Software Foundation.
sda4ta}
9eee80214name, fi48 return -4name, fie48netdev.c#L31"s="sref">ua href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshConfirmTimeou                dot11MeshConfirmTimeou classfa href="net/macDEC/a>, name, 4code=field" class="sref"4>fiel484 class="sref">field<>ua href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshHoldingTimeou                dot11MeshHoldingTimeou classfa href="net/macDEC/a>, name,   33dot11MeshTTea hr,fa href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshTTe="L33">  33dot11MeshTTea hr,fa href="net/macDEC/a>, }
fie48lass=#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" ideleral _ttl="L49">  49eleral _ttla hr,fa href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"eleral _ttl="L49">  49eleral _ttla hr,fa href="net/macDEC/a>, }
name, ieee48 class="sref">fieldieee802141_sub_if_data *="sref">4href="+code=buflen" clas4s="sr49 class="sref"ass="srrrra href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshHWMPactivePathTimeou                dot11MeshHWMPactivePathTimeou classfa href="net/macDEC/a>, *, int))4"L91">  91{         4     49netdetdev.c#L126" idet/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" iddot11MeshHWMPpreqMinInterval="L49">  49dot11MeshHWMPpreqMinIntervalclassc80211/debugfs_netdev.c#L66" id="L66" cla4>L52" cla4ef="+code=buf" class="sr4ef">b49  49dot11MeshHWMPpreqMinIntervalclassfa href="net/macDEC/a>,   134+code=i" class="sref">i<4/a>; 49_if_f#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" iddot11MeshHWMPperrMinInterval="L49">  49dot11MeshHWMPperrMinIntervalclassc80211/debugfs_netdev.c#L66" id="L66" cla4>   \
field);4   49dot11MeshHWMPperrMinIntervalclassfa href="net/macDEC/a>, }
p, 4  49dot11MeshHWMP="LDiclaterTraversalTimeclassc80211/debugfs_netdev.c#L66" id="L66" cla4>"line" n4" class="sref">field4["&s=a href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshHWMP="LDiclaterTraversalTime="L49">  49dot11MeshHWMP="LDiclaterTraversalTimeclassfa href="net/macDEC/a>, }
  97        } 4     49->#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" iddot11MeshHWMPmaxPREQreintae_read_from_buffdot11MeshHWMPmaxPREQreintaeclassc80211/debugfs_netdev.c#L66" id="L66" cla4>9eee80214class="sref">p, field - buf50 retu#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" idpath_.c#resh_time="L49">  49path_.c#resh_timeclassc80211/debugfs_netdev.c#L66" id="L66" cla5>1-   49path_.c#resh_timeclassfa href="net/macDEC/a>, 2-   91{         5s_net50netdetdev.c#L126" idet/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" idmin_discovery_timeou                min_discovery_timeou classc80211/debugfs_netdev.c#L66" id="L66" cla5>3- 4- i<5ee80250_if_f#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" iddot11MeshHWMPRootM" i_read_from_buffdot11MeshHWMPRootM" iclassc80211/debugfs_netdev.c#L66" id="L66" cla5>5- field);5"+cod50f="+code=i" class="srrra href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshHWMPRootM" i_read_from_buffdot11MeshHWMPRootM" iclassfa href="net/macDEC/a>, 6- p, 5sref"50lass=#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" iddot11MeshGateAnnounceral Protocol="L49">  49dot11MeshGateAnnounceral Protocolclassc80211/debugfs_netdev.c#L66" id="L66" cla5>7- field5     507ass="string">"&s=a href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshGateAnnounceral Protocol="L49">  49dot11MeshGateAnnounceral Protocolclassfa href="net/macDEC/a>, 8-   97        } 5ata  49dot11MeshHWMPRannIntervalclassc80211/debugfs_netdev.c#L66" id="L66" cla5>9- p, field  49dot11MeshHWMPRannIntervalclassfa href="net/macDEC/a>, }
  49dot11MeshForwardinga hr,fa href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshForwarding="L49">  49dot11MeshForwardinga hr,fa href="net/macDEC/a>, , i5ee80251netdetdev.c#L126" idet/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" idht_opm" i_read_from_buffht_opm" ia hr,fa href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"ht_opm" i_read_from_buffht_opm" ia hr,fa href="net/macDEC/a>, sdata5 char51" cla#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" iddot11MeshHWMPactivePathToRootTimeou                dot11MeshHWMPactivePathToRootTimeou classc80211/debugfs_netdev.c#L66" id="L66" cla5=ieee80215uflen" class="sref">bufl5n514 class="sref">field<>ua href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshHWMPactivePathToRootTimeou                dot11MeshHWMPactivePathToRootTimeou classfa href="net/macDEC/a>,  114{           5     51" cla#L129" id="L19"et/mac80211/debuga href="net/macet/mac80211/debugfs_netdev.c#L126" iddot11MeshHWMProotInterval="L49">  49dot11MeshHWMProotIntervalclassc80211/debugfs_netdev.c#L66" id="L66" cla5=6- sdata-&5t;"&laa href="net/mac +code=ret" classef=".#L129" id="L19"mesh+code=ret" clasmeshef=".#L129" id="L19"mshcfg+code=ret" clasmshcfgef=".#L129" id="L19"dot11MeshHWMProotInterval="L49">  49dot11MeshHWMProotIntervalclassfa href="net/macDEC/a>,   49dot11MeshHWMPconfirmatioeIntervalclassc80211/debugfs_netdev.c#L66" id="L66" cla5=8-   49dot11MeshHWMPconfirmatioeIntervalclassfa href="net/macDEC/a>, name, i5ee80252 retuc80211/debugfs_netdev.c#L66" id="L66" cla5ieee802115sub_if_data *fa href="net/macDEBUGFS_ADD_MODga href="net/macDEBUGFS_ADD_MODgfs_netdev.c#L126" idbuf,  122{           5     52buf, busdata-&g5;fa href="net/macDEBUGFS_ADDa href="net/macDEBUGFS_ADDfs_netdev.c#L126" id 154}
 1547- ,  120      a00" id="L100" class="line" name="L100"> 1548- file 15=9eee80215lass="sref">__user *5a hre52"+code=userbua href="net/macDEBUGFS_ADDa href="net/macDEBUGFS_ADDfs_netdev.c#L126" iddrop_unencrypteIEEE80211_IF_FMTdrop_unencrypteIfs_noac80211/debugfs_netdev.c#L66" id="L66" cla5/a>,   12#include &5t    5353     }ode=field" class="sref">field);      5/   \
 15/}
read_lock(&5; 120      a00" id="L100" class="line" name="L100"> 15/7s="sref5>reg_state ==  15c}
b53ef="+code=fil#L129" id="L19"DEBUGFS_ADDa href="net/macDEBUGFS_ADDfs_netdev.c#L126" idbssiIEEE80211_IF_FMTbssiIfs_noac80211/debugfs_netdev.c#L66" id="L66" cla5/9eee80215ef">read_unlock(&5;)5;
  40   54 class="sref"a href="net/macDEBUGFS_ADDa href="net/macDEBUGFS_ADDfs_netdev.c#L126" idave_beacoetdev.c#L121" idave_beacoefs_noac80211/debugfs_netdev.c#L66" id="L66" cla5l2- , 544 class="sref#L129" id="L19"DEBUGFS_ADD_MODga href="net/macDEBUGFS_ADD_MODgfs_netdev.c#L126" iduapsd_queuis+code=ret" clasuapsd_queuisclassf0600aac80211/debugfs_netdev.c#L66" id="L66" cla5l   \
}
field);      5l7s="sref5ef">ssize_t  15l}
ieee802115_sub_54ef="+ class=voidf 120      a00" id="L100" class="line" name="L100"> 15l9eee80215code=__user" class="sref5">__u54 clas(16" id="L116" class="line" name="L116"> 15/a>,   55255field);      5h}
co5unt 15/lass="sr5ame="L56">  56      5     557ass= class=voidf 120      a00" id="L100" class="line" name="L100"> 15"}
 15h9eee80215+code=userbuf" class="sr5ef">u55"+code=userbua href="net/macDEBUGFS_ADD_MODga href="net/macDEBUGFS_ADD_MODgfs_netdev.c#L126" idts.c#L123" id="L12ts.fs_nsf0600aac80211/debugfs_netdev.c#L66" id="L66" cla5line" nam5e="L59">  59        5     56 retu}ode=field" class="sref">field);      5uf[field);      5u2-  120      a00" id="L100" class="line" name="L100"> 15lL52" cla5ref="+code=ret" class="s5ref">56" cla(16" id="L116" class="line" name="L116"> 15u  135ine" name="L63">  635     564 class="sref#L129" id="L19"DEBUGFS_ADDa href="net/macDEBUGFS_ADDfs_netdev.c#L126" idpeer_read_from_buffpeera hraac80211/debugfs_netdev.c#L66" id="L66" cla5l   \
reg_state == field);      5l}
 15u"line" n5 name="L66">  66    5    <567 cla#ifdeffa href="net/macCONFIG_MACac8021MESH/a>, }
 5 68 120      a00" id="L100" class="line" name="L100"> 15>ret;5
 15>  695}
*, int))5/a>, field);      5>L52" cla511_if_fmt_" class="sref"5>ieee57" clac80211/debugfs_netdev.c#L66" id="L66" cla5>  135ta" class="sref">sdata, c57_if_f class=voidf 120      a00" id="L100" class="line" name="L100"> 15>   \
bu5flen<57.c#L1(16" id="L116" class="line" name="L116"> 15>}
  75{         5     57lass="string"                      dentryss="sref">buf 15>"line" n5=sdata" class="sref">sda5ta"&s===============================120" class="line" name="L120"> 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hraac80211/debugfs_netdev.c#L66" id="L66" cla5>}
fa href="net/macMESHSTATS_ADDa href="net/macMESHSTATS_ADDfs_netdev.c#L126" id9eee80215name,  120      ,flen" class="sref">bufi58 retuc80211/debugfs_netdev.c#L66" id="L66" cla5   695name, fie58netdev.c#L31"#L129" id="L19"MESHSTATS_ADDa href="net/macMESHSTATS_ADDfs_netdev.c#L126" idfwded_unssas                fwded_unssas a hroac80211/debugfs_netdev.c#L66" id="L66" cla5 L52" cla5>name, 5code=field" class="sref"5>fiel584 class="sref#L129" id="L19"MESHSTATS_ADDa href="net/macMESHSTATS_ADDfs_netdev.c#L126" iddropped_frclae_ttl="L49">  49dropped_frclae_ttla hroac80211/debugfs_netdev.c#L66" id="L66" cla5    \
name, }
fie586="+code=i" c#L129" id="L19"MESHSTATS_ADDa href="net/macMESHSTATS_ADDfs_netdev.c#L126" iddropped_frclae_congestioetdev.c#L121" iddropped_frclae_congestioeclasoac80211/debugfs_netdev.c#L66" id="L66" cla5 "line" n5)
}
name, ieee58 clas}ode=field" class="sref">field);      5>ieee802151_sub_if_data *="sref">5href="+code=buflen" clas5s="sr59 clas class=voidf 120      a00" id="L100" class="line" name="L100"> 15>*, int))5"L91">  91{         5     59netde(16" id="L116" class="line" name="L116"> 15>L52" cla5ef="+code=buf" class="sr5ef">b59buf 15>  135+code=i" class="sref">i<5/a>; 594 class="sref">field<>u==============================120" class="line" name="L120"> 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hraac80211/debugfs_netdev.c#L66" id="L66" cla5>   \
field);5  15>}
p, 5fa href="net/macMESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" id"line" n5" class="sref">field5[ 120      ,flen" class="sref">bu}
  97        } 5     59->c80211/debugfs_netdev.c#L66" id="L66" cla5>9eee80215class="sref">p,  - buf60 return -1- 2-   91{         6s_net60netdev.c#L31"#L129" id="L19"MESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" iddot11MeshHoldingTimeou                dot11MeshHoldingTimeou clasoac80211/debugfs_netdev.c#L66" id="L66" cla6>3-   33dot11MeshTTea hroac80211/debugfs_netdev.c#L66" id="L66" cla6>4- i<6ee802604 class="sref#L129" id="L19"MESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" ideleral _ttl="L49">  49eleral _ttla hroac80211/debugfs_netdev.c#L66" id="L66" cla6>5- field);6"+cod60f="+code=i" c#L129" id="L19"MESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" idauto_open_psreks+code=ret" clasauto_open_psreksa hroac80211/debugfs_netdev.c#L66" id="L66" cla6>6- p, 6sref"606="+code=i" c#L129" id="L19"MESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" iddot11MeshMaxPeerLreks+code=ret" clasdot11MeshMaxPeerLreksclasoac80211/debugfs_netdev.c#L66" id="L66" cla6>7- field6     607="+code=i" c#L129" id="L19"MESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" iddot11MeshHWMPactivePathTimeou                dot11MeshHWMPactivePathTimeou clasoac80211/debugfs_netdev.c#L66" id="L66" cla6>8-   97        } 6ata  49dot11MeshHWMPpreqMinIntervalclasoac80211/debugfs_netdev.c#L66" id="L66" cla6>9- p,   49dot11MeshHWMPperrMinIntervalclasoac80211/debugfs_netdev.c#L66" id="L66" cla68}
  49dot11MeshHWMP="LDiclaterTraversalTimeclasoac80211/debugfs_netdev.c#L66" id="L66" cla681- , i6ee80261netdev.c#L31"#L129" id="L19"MESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" idpath_.c#resh_time="L49">  49path_.c#resh_timeclasoac80211/debugfs_netdev.c#L66" id="L66" cla683- sdata6 char61bufl6n614 class="sref#L129" id="L19"MESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" iddot11MeshHWMPRootM" i_read_from_buffdot11MeshHWMPRootM" iclasoac80211/debugfs_netdev.c#L66" id="L66" cla685-  114{           6     61f="+code=i" c#L129" id="L19"MESHPARAMS_ADDa href="net/macMESHPARAMS_ADDfs_netdev.c#L126" iddot11MeshHWMPRannInterval="L49">  49dot11MeshHWMPRannIntervalclasoac80211/debugfs_netdev.c#L66" id="L66" cla686- sdata-&6t;  49dot11MeshForwardinga hroac80211/debugfs_netdev.c#L66" id="L66" cla687-   49dot11MeshGateAnnounceral Protocolclasoac80211/debugfs_netdev.c#L66" id="L66" cla688- name, i6ee80262 return - *  49dot11MeshHWMProotIntervalclasoac80211/debugfs_netdev.c#L66" id="L66" cla6=2-   49dot11MeshHWMPconfirmatioeIntervalclasoac80211/debugfs_netdev.c#L66" id="L66" cla6=3-  122{           6     62sdata-&g6;field);      6e5- }
 1647- ,  120      a00" id="L100" class="line" name="L100"> 1648- file 16=9eee80216lass="sref">__user *6a hre62"+code=userbuif (!120" class="line" name="L120"> 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hra16" id="L116" class="line" name="L116"> 16/a>, field);      6/2-   12#include &6t    63634 class="sref#L129" id="L19"DEBUGFS_ADDa href="net/macDEBUGFS_ADDfs_netdev.c#L126" idchannel_typi_read_from_buffchannel_typiclasoac80211/debugfs_netdev.c#L66" id="L66" cla6/5-  16/}
read_lock(&6; 120      ef="+code=buflen" clvi.c#L123" id="L12vi.ef=".#L129" id="L19"typi_read_from_bufftypiclas !
 16/7- reg_state == "& 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6/8- b63->c80211/debugfs_netdev.c#L66" id="L66" cla6/9eee80216ef">read_unlock(&6; 120      ef="+code=buflen" clvi.c#L123" id="L12vi.ef=".#L129" id="L19"typi_read_from_bufftypiclas) (16" id="L116" class="line" name="L116"> 16lock)6;
 16leee802116"line" name="L40">  40   64 clas#ifdeffa href="net/macCONFIG_MACac8021MESH/a>, , "& 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6l3- "& 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6l4- 644 class="sref>"& 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6l5- }
"&breakac80211/debugfs_netdev.c#L66" id="L66" cla6l7- ssize_t fa href="net/macNLfs_netIFTYPE_STATION_read_from_buffNLfs_netIFTYPE_STATIONretu:16" id="L116" class="line" name="L116"> 16l8- ieee802116_sub_64ef="+code=file" class 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6l9eee80216code=__user" class="sref6">__u64 class="sref">field, ,  16href="+co6de=ieee80211_sub_if_data6" cla65 class="sref"e" class 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6h2- "&breakac80211/debugfs_netdev.c#L66" id="L66" cla6/3-   56265,  16h4- "& 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6h5- }
co6untfa href="net/macNLfs_netIFTYPE_WDS/a>,  16h7-   56      6     657ass="string">"& 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6h8- u65"+code=userbudefault:16" id="L116" class="line" name="L116"> 16line" nam6e="L59">  59        6     66 return -[field);      6u2- field);      6lL52" cla6ref="+code=ret" class="s6ref">66" clac80211/debugfs_netdev.c#L66" id="L66" cla6u  136ine" name="L63">  636     664 clavoidf 120      a00" id="L100" class="line" name="L100"> 16l   \
reg_state ==  16l}
  66    6    <66.c#L116" id="L116" class="line" name="L116"> 16u}
( 120      ef="+code=buflen" cl 6 68 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hr"
ret;6
 120      ef="+code=buflen" cllocal="L49">  49local    ef="+code=buflen" clhw_read_from_buffhwef=".#L129" id="L19"wiphyss="sref">buf  696}
 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hra16" id="L116" class="line" name="L116"> 16>*, int))6/a>, "& 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"devdir_ claione_read_from_buffsevdir_ claionea hr"
 16>L52" cla611_if_fmt_" class="sref"6>ieee67 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hraac80211/debugfs_netdev.c#L66" id="L66" cla6>  136ta" class="sref">sdata, c674 class="sref#L129" id="L19"add_filis+code=ret" clasadd_filisfs_ne120" class="line" name="L120"> 120      aac80211/debugfs_netdev.c#L66" id="L66" cla6>   \
bu6flen<67.c#L1}ode=field" class="sref">field);      6>}
  75{         6     67lass=00" id="L100" class="line" name="L100"> 16>"line" n6=sdata" class="sref">sda6ta 120      a00" id="L100" class="line" name="L100"> 16>}
 16>9eee80216name,  120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hra16" id="L116" class="line" name="L116"> 16 fi68 return -6name, field);      6 *, int))6+code=field" class="sref6">fie68netdev.c#L31"#L129" id="L19"#L66" idremove_recursivi_read_from_buffdL66" idremove_recursivifs_ne120" class="line" name="L120"> 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hraac80211/debugfs_netdev.c#L66" id="L66" cla6 L52" cla6>name,  120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hr"
  33NULea hrac80211/debugfs_netdev.c#L66" id="L66" cla6   136code=field" class="sref"6>fiel68     }ode=field" class="sref">field);      6    \
name,  16 }
fie686="+cvoidf 120      a00" id="L100" class="line" name="L100"> 16 "line" n6)
 16 }
name, bufieee68"+code=userbuchar                bu.c#L123" id="L12bu.a hr[10 +                IFNAMSIZc#L123" id="L12IFNAMSIZa hr]ac80211/debugfs_netdev.c#L66" id="L66" cla6>ieee802161_sub_if_data *="sref">6href="+code=buflen" clas6s="sr69 class="sref"a href="net/macdir_read_from_buffdira hr"
 120      ef="+code=buflen" cldL66" i_read_from_buffdL66" ief=".#L129" id="L19"dir_read_from_buffdira hrac80211/debugfs_netdev.c#L66" id="L66" cla6>*, int))6"L91">  91{         6     69netdec80211/debugfs_netdev.c#L66" id="L66" cla6>L52" cla6ef="+code=buf" class="sr6ef">b69 16>  136+code=i" class="sref">i<6/a>; 694 class="sref">field   \
field);6  16>}
p, 6( 120      ef="+code=buflen" cl 16>"line" n6" class="sref">field6[ 16>}
  97        } 6     69ef="+code=file" class 120      a16" id="L116" class="line" name="L116"> 16>9eee80216class="sref">p, field( 17> - buf70 return - 17>1- field);      7>2-   91{         7s_net70netde


91 The original LXR software by th>fa href="nhttp://sourceforge. claprojects/lxr">LXR enerunitya hr, this experiral al version by a href="nmailto:lxr@/a>ux.no">lxr@/a>ux.noef=".
91 lxr./a>ux.no kindly hosted by a href="nhttp://www.redpill-/a>pro.no">Redpill La>pro ASa hr, provider of La>ux ennsultsng and operlaione servicee since 1995.