2011-07-20 13:35:12

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH 1/3] wireless: rtlwifi: throw away MAC_FMT and use %pM instead

Signed-off-by: Andy Shevchenko <[email protected]>
Cc: Larry Finger <[email protected]>
---
drivers/net/wireless/rtlwifi/base.c | 11 +++++------
drivers/net/wireless/rtlwifi/cam.c | 4 ++--
drivers/net/wireless/rtlwifi/core.c | 6 +++---
drivers/net/wireless/rtlwifi/debug.h | 5 -----
drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 2 +-
drivers/net/wireless/rtlwifi/rtl8192de/hw.c | 2 +-
drivers/net/wireless/rtlwifi/rtl8192se/hw.c | 2 +-
7 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c
index bc13533..5f46efd 100644
--- a/drivers/net/wireless/rtlwifi/base.c
+++ b/drivers/net/wireless/rtlwifi/base.c
@@ -756,18 +756,17 @@ bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx)
return false;

RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
- ("%s ACT_ADDBAREQ From :" MAC_FMT "\n",
- is_tx ? "Tx" : "Rx", MAC_ARG(hdr->addr2)));
+ ("%s ACT_ADDBAREQ From :%pM\n",
+ is_tx ? "Tx" : "Rx", hdr->addr2));
break;
case ACT_ADDBARSP:
RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
- ("%s ACT_ADDBARSP From :" MAC_FMT "\n",
- is_tx ? "Tx" : "Rx", MAC_ARG(hdr->addr2)));
+ ("%s ACT_ADDBARSP From :%pM\n",
+ is_tx ? "Tx" : "Rx", hdr->addr2));
break;
case ACT_DELBA:
RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
- ("ACT_ADDBADEL From :" MAC_FMT "\n",
- MAC_ARG(hdr->addr2)));
+ ("ACT_ADDBADEL From :%pM\n", hdr->addr2));
break;
}
break;
diff --git a/drivers/net/wireless/rtlwifi/cam.c b/drivers/net/wireless/rtlwifi/cam.c
index 7295af0..66588c2 100644
--- a/drivers/net/wireless/rtlwifi/cam.c
+++ b/drivers/net/wireless/rtlwifi/cam.c
@@ -131,9 +131,9 @@ u8 rtl_cam_add_one_entry(struct ieee80211_hw *hw, u8 *mac_addr,

RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
("EntryNo:%x, ulKeyId=%x, ulEncAlg=%x, "
- "ulUseDK=%x MacAddr" MAC_FMT "\n",
+ "ulUseDK=%x MacAddr %pM\n",
ul_entry_idx, ul_key_id, ul_enc_alg,
- ul_default_key, MAC_ARG(mac_addr)));
+ ul_default_key, mac_addr));

if (ul_key_id == TOTAL_CAM_ENTRY) {
RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c
index 03ce696..1bdc1aa 100644
--- a/drivers/net/wireless/rtlwifi/core.c
+++ b/drivers/net/wireless/rtlwifi/core.c
@@ -456,7 +456,7 @@ static int rtl_op_sta_add(struct ieee80211_hw *hw,
sta_entry->wireless_mode = WIRELESS_MODE_G;

RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
- ("Add sta addr is "MAC_FMT"\n", MAC_ARG(sta->addr)));
+ ("Add sta addr is %pM\n", sta->addr));
rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0);
}
return 0;
@@ -469,7 +469,7 @@ static int rtl_op_sta_remove(struct ieee80211_hw *hw,
struct rtl_sta_info *sta_entry;
if (sta) {
RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
- ("Remove sta addr is "MAC_FMT"\n", MAC_ARG(sta->addr)));
+ ("Remove sta addr is %pM\n", sta->addr));
sta_entry = (struct rtl_sta_info *) sta->drv_priv;
sta_entry->wireless_mode = 0;
sta_entry->ratr_index = 0;
@@ -678,7 +678,7 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
(u8 *) bss_conf->bssid);

RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
- (MAC_FMT "\n", MAC_ARG(bss_conf->bssid)));
+ ("%pM\n", bss_conf->bssid));

mac->vendor = PEER_UNKNOWN;
memcpy(mac->bssid, bss_conf->bssid, 6);
diff --git a/drivers/net/wireless/rtlwifi/debug.h b/drivers/net/wireless/rtlwifi/debug.h
index e4aa868..160dd06 100644
--- a/drivers/net/wireless/rtlwifi/debug.h
+++ b/drivers/net/wireless/rtlwifi/debug.h
@@ -204,10 +204,5 @@ enum dbgp_flag_e {
} \
} while (0);

-#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
-#define MAC_ARG(x) \
- ((u8 *)(x))[0], ((u8 *)(x))[1], ((u8 *)(x))[2],\
- ((u8 *)(x))[3], ((u8 *)(x))[4], ((u8 *)(x))[5]
-
void rtl_dbgp_flag_init(struct ieee80211_hw *hw);
#endif
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
index 9e2a9e3..a3deaef 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
@@ -1592,7 +1592,7 @@ static void _rtl92ce_read_adapter_info(struct ieee80211_hw *hw)
}

RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
- (MAC_FMT "\n", MAC_ARG(rtlefuse->dev_addr)));
+ ("%pM\n", rtlefuse->dev_addr));

_rtl92ce_read_txpower_info_from_hwpg(hw,
rtlefuse->autoload_failflag,
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/hw.c b/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
index 5a65bea..0073cf1 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
@@ -1829,7 +1829,7 @@ static void _rtl92de_read_adapter_info(struct ieee80211_hw *hw)
rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR,
rtlefuse->dev_addr);
RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
- (MAC_FMT "\n", MAC_ARG(rtlefuse->dev_addr)));
+ ("%pM\n", rtlefuse->dev_addr));
_rtl92de_read_txpower_info(hw, rtlefuse->autoload_failflag, hwinfo);

/* Read Channel Plan */
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/hw.c b/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
index b1d0213..fe2b0b9 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
@@ -1682,7 +1682,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
rtl_write_byte(rtlpriv, MACIDR0 + i, rtlefuse->dev_addr[i]);

RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
- (MAC_FMT "\n", MAC_ARG(rtlefuse->dev_addr)));
+ ("%pM\n", rtlefuse->dev_addr));

/* Get Tx Power Level by Channel */
/* Read Tx power of Channel 1 ~ 14 from EEPROM. */
--
1.7.5.4



2011-07-20 13:35:22

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH 2/3] wireless: ath9k: use %pM to print MAC

Signed-off-by: Andy Shevchenko <[email protected]>
Cc: "Luis R. Rodriguez" <[email protected]>
Cc: [email protected]
---
drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 7 ++-----
1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
index aa48b3a..d3ff33c 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
@@ -623,11 +623,8 @@ static ssize_t read_file_base_eeprom(struct file *file, char __user *user_buf,
pBase9287->openLoopPwrCntl);
}

- len += snprintf(buf + len, size - len,
- "%20s : %02X:%02X:%02X:%02X:%02X:%02X\n",
- "MacAddress",
- pBase->macAddr[0], pBase->macAddr[1], pBase->macAddr[2],
- pBase->macAddr[3], pBase->macAddr[4], pBase->macAddr[5]);
+ len += snprintf(buf + len, size - len, "%20s : %pM\n", "MacAddress",
+ pBase->macAddr);
if (len > size)
len = size;

--
1.7.5.4


2011-07-20 15:47:10

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 1/3] wireless: rtlwifi: throw away MAC_FMT and use %pM instead

On 07/20/2011 08:34 AM, Andy Shevchenko wrote:
> Signed-off-by: Andy Shevchenko<[email protected]>
> Cc: Larry Finger<[email protected]>
> ---
> drivers/net/wireless/rtlwifi/base.c | 11 +++++------
> drivers/net/wireless/rtlwifi/cam.c | 4 ++--
> drivers/net/wireless/rtlwifi/core.c | 6 +++---
> drivers/net/wireless/rtlwifi/debug.h | 5 -----
> drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 2 +-
> drivers/net/wireless/rtlwifi/rtl8192de/hw.c | 2 +-
> drivers/net/wireless/rtlwifi/rtl8192se/hw.c | 2 +-
> 7 files changed, 13 insertions(+), 19 deletions(-)

ACK. Thanks for the patch.

Larry

2011-07-20 16:02:43

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 1/3] wireless: rtlwifi: throw away MAC_FMT and use %pM instead

On Wed, 2011-07-20 at 10:47 -0500, Larry Finger wrote:
> Thanks for the patch.

Hey Larry.

rtlwifi has a CONFIG_BT_COEXIST which is currently
unused/undefined by Kconfig.

Are there plans to enable this or should the code
just be removed?

There may be a few dependencies in rtlwifi for
variables set in this block so it seems from
superficial reading that removal might be a bit
involved. I didn't look much more than that,
but struct btcoexist_priv doesn't seem to be
specified by the code anywhere.



2011-07-20 15:00:22

by Mohammed Shafi

[permalink] [raw]
Subject: Re: [PATCH 2/3] wireless: ath9k: use %pM to print MAC

On Wed, Jul 20, 2011 at 7:04 PM, Andy Shevchenko
<[email protected]> wrote:
> Signed-off-by: Andy Shevchenko <[email protected]>
> Cc: "Luis R. Rodriguez" <[email protected]>
> Cc: [email protected]
> ---
> ?drivers/net/wireless/ath/ath9k/htc_drv_debug.c | ? ?7 ++-----
> ?1 files changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
> index aa48b3a..d3ff33c 100644
> --- a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
> +++ b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
> @@ -623,11 +623,8 @@ static ssize_t read_file_base_eeprom(struct file *file, char __user *user_buf,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?pBase9287->openLoopPwrCntl);
> ? ? ? ?}
>
> - ? ? ? len += snprintf(buf + len, size - len,
> - ? ? ? ? ? ? ? ? ? ? ? "%20s : %02X:%02X:%02X:%02X:%02X:%02X\n",
> - ? ? ? ? ? ? ? ? ? ? ? "MacAddress",
> - ? ? ? ? ? ? ? ? ? ? ? pBase->macAddr[0], pBase->macAddr[1], pBase->macAddr[2],
> - ? ? ? ? ? ? ? ? ? ? ? pBase->macAddr[3], pBase->macAddr[4], pBase->macAddr[5]);
> + ? ? ? len += snprintf(buf + len, size - len, "%20s : %pM\n", "MacAddress",
> + ? ? ? ? ? ? ? ? ? ? ? pBase->macAddr);
> ? ? ? ?if (len > size)
> ? ? ? ? ? ? ? ?len = size;

thanks for the patch!

>
> --
> 1.7.5.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>



--
shafi

2011-07-20 21:54:42

by Bing Zhao

[permalink] [raw]
Subject: RE: [PATCH 3/3] wireless: mwifiex: print hw address via %pM

Hi Andy,

Thanks for the patch.

> -----Original Message-----
> From: Andy Shevchenko [mailto:[email protected]]
> Sent: Wednesday, July 20, 2011 6:35 AM
> To: [email protected]; [email protected]; John W. Linville; linux-
> [email protected]
> Cc: Andy Shevchenko; Bing Zhao
> Subject: [PATCH 3/3] wireless: mwifiex: print hw address via %pM
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> Cc: Bing Zhao <[email protected]>

Acked-by: Bing Zhao <[email protected]>

Thanks,
Bing

> ---
> drivers/net/wireless/mwifiex/debugfs.c | 33 +++++++------------------------
> 1 files changed, 8 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/net/wireless/mwifiex/debugfs.c b/drivers/net/wireless/mwifiex/debugfs.c
> index 1bcf9ea..d26a78b 100644
> --- a/drivers/net/wireless/mwifiex/debugfs.c
> +++ b/drivers/net/wireless/mwifiex/debugfs.c
> @@ -216,28 +216,19 @@ mwifiex_info_read(struct file *file, char __user *ubuf,
> p += sprintf(p, "bss_mode=\"%s\"\n", bss_modes[info.bss_mode]);
> p += sprintf(p, "media_state=\"%s\"\n",
> (!priv->media_connected ? "Disconnected" : "Connected"));
> - p += sprintf(p, "mac_address=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
> - netdev->dev_addr[0], netdev->dev_addr[1],
> - netdev->dev_addr[2], netdev->dev_addr[3],
> - netdev->dev_addr[4], netdev->dev_addr[5]);
> + p += sprintf(p, "mac_address=\"%pM\"\n", netdev->dev_addr);
>
> if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) {
> p += sprintf(p, "multicast_count=\"%d\"\n",
> netdev_mc_count(netdev));
> p += sprintf(p, "essid=\"%s\"\n", info.ssid.ssid);
> - p += sprintf(p, "bssid=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
> - info.bssid[0], info.bssid[1],
> - info.bssid[2], info.bssid[3],
> - info.bssid[4], info.bssid[5]);
> + p += sprintf(p, "bssid=\"%pM\"\n", info.bssid);
> p += sprintf(p, "channel=\"%d\"\n", (int) info.bss_chan);
> p += sprintf(p, "region_code = \"%02x\"\n", info.region_code);
>
> netdev_for_each_mc_addr(ha, netdev)
> - p += sprintf(p, "multicast_address[%d]="
> - "\"%02x:%02x:%02x:%02x:%02x:%02x\"\n", i++,
> - ha->addr[0], ha->addr[1],
> - ha->addr[2], ha->addr[3],
> - ha->addr[4], ha->addr[5]);
> + p += sprintf(p, "multicast_address[%d]=\"%pM\"\n",
> + i++, ha->addr);
> }
>
> p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
> @@ -451,26 +442,18 @@ mwifiex_debug_read(struct file *file, char __user *ubuf,
> if (info.tx_tbl_num) {
> p += sprintf(p, "Tx BA stream table:\n");
> for (i = 0; i < info.tx_tbl_num; i++)
> - p += sprintf(p, "tid = %d, "
> - "ra = %02x:%02x:%02x:%02x:%02x:%02x\n",
> - info.tx_tbl[i].tid, info.tx_tbl[i].ra[0],
> - info.tx_tbl[i].ra[1], info.tx_tbl[i].ra[2],
> - info.tx_tbl[i].ra[3], info.tx_tbl[i].ra[4],
> - info.tx_tbl[i].ra[5]);
> + p += sprintf(p, "tid = %d, ra = %pM\n",
> + info.tx_tbl[i].tid, info.tx_tbl[i].ra);
> }
>
> if (info.rx_tbl_num) {
> p += sprintf(p, "Rx reorder table:\n");
> for (i = 0; i < info.rx_tbl_num; i++) {
> -
> - p += sprintf(p, "tid = %d, "
> - "ta = %02x:%02x:%02x:%02x:%02x:%02x, "
> + p += sprintf(p, "tid = %d, ta = %pM, "
> "start_win = %d, "
> "win_size = %d, buffer: ",
> info.rx_tbl[i].tid,
> - info.rx_tbl[i].ta[0], info.rx_tbl[i].ta[1],
> - info.rx_tbl[i].ta[2], info.rx_tbl[i].ta[3],
> - info.rx_tbl[i].ta[4], info.rx_tbl[i].ta[5],
> + info.rx_tbl[i].ta,
> info.rx_tbl[i].start_win,
> info.rx_tbl[i].win_size);
>
> --
> 1.7.5.4


2011-07-20 16:31:10

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 1/3] wireless: rtlwifi: throw away MAC_FMT and use %pM instead

On 07/20/2011 11:02 AM, Joe Perches wrote:
> On Wed, 2011-07-20 at 10:47 -0500, Larry Finger wrote:
>> Thanks for the patch.
>
> Hey Larry.
>
> rtlwifi has a CONFIG_BT_COEXIST which is currently
> unused/undefined by Kconfig.
>
> Are there plans to enable this or should the code
> just be removed?
>
> There may be a few dependencies in rtlwifi for
> variables set in this block so it seems from
> superficial reading that removal might be a bit
> involved. I didn't look much more than that,
> but struct btcoexist_priv doesn't seem to be
> specified by the code anywhere.

I don't know the answer to that, but I have added Chaoming Li to the Cc. He will
know if Realtek has any plans for BT coexistence.

Larry

2011-07-20 13:35:30

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH 3/3] wireless: mwifiex: print hw address via %pM

Signed-off-by: Andy Shevchenko <[email protected]>
Cc: Bing Zhao <[email protected]>
---
drivers/net/wireless/mwifiex/debugfs.c | 33 +++++++------------------------
1 files changed, 8 insertions(+), 25 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/debugfs.c b/drivers/net/wireless/mwifiex/debugfs.c
index 1bcf9ea..d26a78b 100644
--- a/drivers/net/wireless/mwifiex/debugfs.c
+++ b/drivers/net/wireless/mwifiex/debugfs.c
@@ -216,28 +216,19 @@ mwifiex_info_read(struct file *file, char __user *ubuf,
p += sprintf(p, "bss_mode=\"%s\"\n", bss_modes[info.bss_mode]);
p += sprintf(p, "media_state=\"%s\"\n",
(!priv->media_connected ? "Disconnected" : "Connected"));
- p += sprintf(p, "mac_address=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
- netdev->dev_addr[0], netdev->dev_addr[1],
- netdev->dev_addr[2], netdev->dev_addr[3],
- netdev->dev_addr[4], netdev->dev_addr[5]);
+ p += sprintf(p, "mac_address=\"%pM\"\n", netdev->dev_addr);

if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) {
p += sprintf(p, "multicast_count=\"%d\"\n",
netdev_mc_count(netdev));
p += sprintf(p, "essid=\"%s\"\n", info.ssid.ssid);
- p += sprintf(p, "bssid=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
- info.bssid[0], info.bssid[1],
- info.bssid[2], info.bssid[3],
- info.bssid[4], info.bssid[5]);
+ p += sprintf(p, "bssid=\"%pM\"\n", info.bssid);
p += sprintf(p, "channel=\"%d\"\n", (int) info.bss_chan);
p += sprintf(p, "region_code = \"%02x\"\n", info.region_code);

netdev_for_each_mc_addr(ha, netdev)
- p += sprintf(p, "multicast_address[%d]="
- "\"%02x:%02x:%02x:%02x:%02x:%02x\"\n", i++,
- ha->addr[0], ha->addr[1],
- ha->addr[2], ha->addr[3],
- ha->addr[4], ha->addr[5]);
+ p += sprintf(p, "multicast_address[%d]=\"%pM\"\n",
+ i++, ha->addr);
}

p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
@@ -451,26 +442,18 @@ mwifiex_debug_read(struct file *file, char __user *ubuf,
if (info.tx_tbl_num) {
p += sprintf(p, "Tx BA stream table:\n");
for (i = 0; i < info.tx_tbl_num; i++)
- p += sprintf(p, "tid = %d, "
- "ra = %02x:%02x:%02x:%02x:%02x:%02x\n",
- info.tx_tbl[i].tid, info.tx_tbl[i].ra[0],
- info.tx_tbl[i].ra[1], info.tx_tbl[i].ra[2],
- info.tx_tbl[i].ra[3], info.tx_tbl[i].ra[4],
- info.tx_tbl[i].ra[5]);
+ p += sprintf(p, "tid = %d, ra = %pM\n",
+ info.tx_tbl[i].tid, info.tx_tbl[i].ra);
}

if (info.rx_tbl_num) {
p += sprintf(p, "Rx reorder table:\n");
for (i = 0; i < info.rx_tbl_num; i++) {
-
- p += sprintf(p, "tid = %d, "
- "ta = %02x:%02x:%02x:%02x:%02x:%02x, "
+ p += sprintf(p, "tid = %d, ta = %pM, "
"start_win = %d, "
"win_size = %d, buffer: ",
info.rx_tbl[i].tid,
- info.rx_tbl[i].ta[0], info.rx_tbl[i].ta[1],
- info.rx_tbl[i].ta[2], info.rx_tbl[i].ta[3],
- info.rx_tbl[i].ta[4], info.rx_tbl[i].ta[5],
+ info.rx_tbl[i].ta,
info.rx_tbl[i].start_win,
info.rx_tbl[i].win_size);

--
1.7.5.4