Index: target/linux/package/wlcompat/wlcompat.c =================================================================== --- target/linux/package/wlcompat/wlcompat.c (révision 4632) +++ target/linux/package/wlcompat/wlcompat.c (copie de travail) @@ -37,6 +37,10 @@ static struct iw_statistics wstats; char buf[WLC_IOCTL_MAXLEN]; +/* Association list declarations */ +#define ASSOCLIST_BUFFERSIZE 512 +struct wl_assoc_mac * assoclist; + /* The frequency of each channel in MHz */ const long channel_frequency[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442, @@ -759,6 +763,8 @@ #define WLCOMPAT_GET_TXANT SIOCIWFIRSTPRIV + 7 #define WLCOMPAT_SET_BSS_FORCE SIOCIWFIRSTPRIV + 8 #define WLCOMPAT_GET_BSS_FORCE SIOCIWFIRSTPRIV + 9 +#define WLCOMPAT_GET_RSSI SIOCIWFIRSTPRIV + 10 +#define WLCOMPAT_GET_ASSOCLIST SIOCIWFIRSTPRIV + 11 static int wlcompat_private_ioctl(struct net_device *dev, @@ -848,6 +854,18 @@ *extra = (int) bss_force; break; } + case WLCOMPAT_GET_RSSI: + { + if (wl_ioctl(dev, WLC_GET_RSSI, extra, sizeof(int)) <0) + return -EINVAL; + break; + } + case WLCOMPAT_GET_ASSOCLIST: + { + //if (wl_ioctl(dev, WLC_GET_ASSOCLIST, extra, sizeof(struct wl_assoc_mac)) <0) + return -EINVAL; + break; + } default: { return -EINVAL; @@ -909,6 +927,12 @@ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "get_bss_force" }, + { + WLCOMPAT_GET_RSSI, + 0, + IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, + "get_rssi" + }, };