Getting the value of bitrate from a wireless devic

2019-09-05 04:31发布

I'm writing a kernel module that needs to read the value of bitrate from this union:

union   iwreq_data
{==
    .......
    struct iw_param bitrate;    /* default bit rate */

     ....
}

This code is form wireless.h Does anyone know how I can access it's value? (I'm using linux kernel 2.6.35)

1条回答
再贱就再见
2楼-- · 2019-09-05 05:10

There's no way to do that, unfortunately ...

taking a closer look at the iw_param struct we find

struct  iw_param
{
  __s32     value;      /* The value of the parameter itself */
  __u8      fixed;      /* Hardware should not use auto select */
  __u8      disabled;   /* Disable the feature */
  __u16     flags;      /* Various specifc flags (if any) */
};

now, here's what the code looks like in wireless.h

union   iwreq_data
{
    /* Config - generic */
    char        name[IFNAMSIZ];
    /* Name : used to verify the presence of  wireless extensions.
     * Name of the protocol/provider... */

    struct iw_point essid;      /* Extended network name */
    struct iw_param nwid;       /* network id (or domain - the cell) */
    struct iw_freq  freq;       /* frequency or channel :
                     * 0-1000 = channel
                     * > 1000 = frequency in Hz */

    struct iw_param sens;       /* signal level threshold */
    struct iw_param bitrate;    /* default bit rate */
    struct iw_param txpower;    /* default transmit power */
    struct iw_param rts;        /* RTS threshold threshold */
    struct iw_param frag;       /* Fragmentation threshold */
    __u32       mode;       /* Operation mode */
    struct iw_param retry;      /* Retry limits & lifetime */

    struct iw_point encoding;   /* Encoding stuff : tokens */
    struct iw_param power;      /* PM duration/timeout */
    struct iw_quality qual;     /* Quality part of statistics */

    struct sockaddr ap_addr;    /* Access point address */
    struct sockaddr addr;       /* Destination address (hw/mac) */

    struct iw_param param;      /* Other small parameters */
    struct iw_point data;       /* Other large parameters */
};

I cannot think of a way to access it other than bitrate->value

查看更多
登录 后发表回答