--- ubuntu/rtl8192se/rtl_wx.c.orig 2012-08-08 16:22:57.828544309 +0200 +++ ubuntu/rtl8192se/rtl_wx.c 2012-08-08 17:07:07.382730520 +0200 @@ -2368,185 +2368,211 @@ * even : set (root access) * */ static const struct iw_priv_args r8192_private_args[] = { - { - SIOCIWFIRSTPRIV + 0x0, + { /* SET */ + SIOCIWFIRSTPRIV + 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_debugflag" - }, - { - SIOCIWFIRSTPRIV + 0x1, + }, + { /* SET */ + SIOCIWFIRSTPRIV + 2, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "activescan" }, - { - SIOCIWFIRSTPRIV + 0x2, + { /* SET */ + SIOCIWFIRSTPRIV + 4, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "rawtx" } , - { - SIOCIWFIRSTPRIV + 0x3, + { /* SET */ + SIOCIWFIRSTPRIV + 6, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "forcereset" } , - { - SIOCIWFIRSTPRIV + 0x4, + { /* SET */ + SIOCIWFIRSTPRIV + 8, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "force_mic_error" } , - { - SIOCIWFIRSTPRIV + 0x5, + { /* GET */ + SIOCIWFIRSTPRIV + 9, IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_INT|IW_PRIV_SIZE_FIXED|1, "firm_ver" } , - { - SIOCIWFIRSTPRIV + 0x6, + { /* SET */ + SIOCIWFIRSTPRIV + 10, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE, "set_power" } #ifdef _RTL8192_EXT_PATCH_ , - { - SIOCIWFIRSTPRIV + 0x7, + { /* GET */ + SIOCIWFIRSTPRIV + 11, IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|512, "print_reg" } , - { - SIOCIWFIRSTPRIV + 0x8, + { /* GET */ + SIOCIWFIRSTPRIV + 13, IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|64, "resume_firm" } #endif , - { - SIOCIWFIRSTPRIV + 0x9, + { /* SET */ + SIOCIWFIRSTPRIV + 14, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE, "radio" } , - { - SIOCIWFIRSTPRIV + 0xa, + { /* SET */ + SIOCIWFIRSTPRIV + 16, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE, "lps_interv" } , - { - SIOCIWFIRSTPRIV + 0xb, + { /* SET */ + SIOCIWFIRSTPRIV + 18, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE, "lps_force" } , - { - SIOCIWFIRSTPRIV + 0xc, + { /* GET */ + SIOCIWFIRSTPRIV + 19, 0, IW_PRIV_TYPE_CHAR|1024, "adhoc_peer_list" } #ifdef _RTL8192_EXT_PATCH_ , - { - SIOCIWFIRSTPRIV + 0xd, + { /* GET */ + SIOCIWFIRSTPRIV + 21, IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|64, "driverVer" } #endif #ifdef CONFIG_MP , - { - SIOCIWFIRSTPRIV + 0xe, + { /* SET */ + SIOCIWFIRSTPRIV + 22, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetChan" } , - { - SIOCIWFIRSTPRIV + 0xf, + { /* SET */ + SIOCIWFIRSTPRIV + 24, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetRate" } , - { - SIOCIWFIRSTPRIV + 0x10, + { /* SET */ + SIOCIWFIRSTPRIV + 26, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetTxPower" } , - { - SIOCIWFIRSTPRIV + 0x11, + { /* SET */ + SIOCIWFIRSTPRIV + 28, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetBW" } , - { - SIOCIWFIRSTPRIV + 0x12, + { /* SET */ + SIOCIWFIRSTPRIV + 30, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "TxStart" } , - { - SIOCIWFIRSTPRIV + 0x13, + { /* SET */ + SIOCIWFIRSTPRIV + 32, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,0, "SetSingleCarrier" } , - { - SIOCIWFIRSTPRIV + 0x14, + { /* SET */ + SIOCIWFIRSTPRIV + 34, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "WriteRF" } , - { - SIOCIWFIRSTPRIV + 0x15, + { /* SET */ + SIOCIWFIRSTPRIV + 36, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "WriteMAC" } #endif , - { - SIOCIWFIRSTPRIV + 0x16, + { /* SET */ + SIOCIWFIRSTPRIV + 38, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "setpromisc" } , - { - SIOCIWFIRSTPRIV + 0x17, + { /* GET */ + SIOCIWFIRSTPRIV + 39, 0,IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 45, "getpromisc" } }; static iw_handler r8192_private_handler[] = { - (iw_handler)r8192_wx_set_debugflag, /*SIOCIWSECONDPRIV*/ - (iw_handler)r8192_wx_set_scan_type, - (iw_handler)r8192_wx_set_rawtx, - (iw_handler)r8192_wx_force_reset, - (iw_handler)r8192_wx_force_mic_error, - (iw_handler)r8191se_wx_get_firm_version, - (iw_handler)r8192_wx_adapter_power_status, + (iw_handler)r8192_wx_set_debugflag, /*SIOCIWSECONDPRIV*/ /* SET */ + (iw_handler)NULL, /* GET, but get_debugflag does not exist */ + (iw_handler)r8192_wx_set_scan_type, /* SET */ + (iw_handler)NULL, /* GET, but get_scan_type does not exist */ + (iw_handler)r8192_wx_set_rawtx, /* SET */ + (iw_handler)NULL, /* GET, but get_rawtx does not exist */ + (iw_handler)r8192_wx_force_reset, /* SET */ + (iw_handler)NULL, /* no GET equivalent to wx_force_reset */ + (iw_handler)r8192_wx_force_mic_error, /* SET */ + (iw_handler)r8191se_wx_get_firm_version, /* GET */ + (iw_handler)r8192_wx_adapter_power_status, /* SET, set_power */ #ifdef _RTL8192_EXT_PATCH_ - (iw_handler)r8192_wx_print_reg, - (iw_handler)r8192_wx_resume_firm, + (iw_handler)r8192_wx_print_reg, /* GET */ + (iw_handler)NULL, /* no SET in this position */ + (iw_handler)r8192_wx_resume_firm, /* GET */ #else - (iw_handler)NULL, - (iw_handler)NULL, + (iw_handler)NULL, /* GET */ + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ #endif - (iw_handler)r8192se_wx_set_radio, - (iw_handler)r8192se_wx_set_lps_awake_interval, - (iw_handler)r8192se_wx_set_force_lps, - (iw_handler)r8192_wx_get_adhoc_peers, + (iw_handler)r8192se_wx_set_radio, /* SET */ + (iw_handler)NULL, /* GET, but get_radio does not exist */ + (iw_handler)r8192se_wx_set_lps_awake_interval, /* SET */ + (iw_handler)NULL, /* GET, but get_lps_awake_interval does not exist */ + (iw_handler)r8192se_wx_set_force_lps, /* SET */ + (iw_handler)r8192_wx_get_adhoc_peers, /* GET */ #ifdef _RTL8192_EXT_PATCH_ - (iw_handler)r8192_wx_get_drv_version, + (iw_handler)NULL, /* SET, but set_drv_version does not exist */ + (iw_handler)r8192_wx_get_drv_version, /* GET */ #else - (iw_handler)NULL, + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ #endif #ifdef CONFIG_MP - (iw_handler)r8192_wx_mp_set_chan, - (iw_handler)r8192_wx_mp_set_txrate, - (iw_handler)r8192_wx_mp_set_txpower, - (iw_handler)r8192_wx_mp_set_bw, - (iw_handler)r8192_wx_mp_set_txstart, - (iw_handler)r8192_wx_mp_set_singlecarrier, - (iw_handler)r8192_wx_mp_write_rf, - (iw_handler)r8192_wx_mp_write_mac, + (iw_handler)r8192_wx_mp_set_chan, /* SET */ + (iw_handler)NULL, /* GET, but get_chan does not exist */ + (iw_handler)r8192_wx_mp_set_txrate, /* SET */ + (iw_handler)NULL, /* GET, but get_txrate does not exist */ + (iw_handler)r8192_wx_mp_set_txpower, /* SET */ + (iw_handler)NULL, /* GET, but get_txpower does not exist */ + (iw_handler)r8192_wx_mp_set_bw, /* SET */ + (iw_handler)NULL, /* GET, but get_bw does not exist */ + (iw_handler)r8192_wx_mp_set_txstart, /* SET */ + (iw_handler)NULL, /* GET, but get_txstart does not exist */ + (iw_handler)r8192_wx_mp_set_singlecarrier, /* SET */ + (iw_handler)NULL, /* GET, but get_singlecarrier does not exist */ + (iw_handler)r8192_wx_mp_write_rf, /* SET */ + (iw_handler)NULL, /* GET, but read_rf does not exist */ + (iw_handler)r8192_wx_mp_write_mac, /* SET */ + (iw_handler)NULL, /* GET, but read_mac does not exist */ #else - (iw_handler)NULL, - (iw_handler)NULL, - (iw_handler)NULL, - (iw_handler)NULL, - (iw_handler)NULL, - (iw_handler)NULL, - (iw_handler)NULL, - (iw_handler)NULL, + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ + (iw_handler)NULL, /* SET */ + (iw_handler)NULL, /* GET */ #endif - (iw_handler)r8192_wx_set_PromiscuousMode, - (iw_handler)r8192_wx_get_PromiscuousMode, + (iw_handler)r8192_wx_set_PromiscuousMode, /* SET */ + (iw_handler)r8192_wx_get_PromiscuousMode, /* GET */ }; struct iw_statistics *r8192_get_wireless_stats(struct net_device *dev) @@ -2696,8 +2722,8 @@ .standard = r8192_wx_handlers, .num_standard = sizeof(r8192_wx_handlers) / sizeof(iw_handler), .private = r8192_private_handler, - .num_private = sizeof(r8192_private_handler) / sizeof(iw_handler), - .num_private_args = sizeof(r8192_private_args) / sizeof(struct iw_priv_args), + .num_private = ARRAY_SIZE(r8192_private_handler), + .num_private_args = ARRAY_SIZE(r8192_private_args), #if WIRELESS_EXT >= 17 .get_wireless_stats = r8192_get_wireless_stats, #endif