[PATCH 16/17] rtl8192e: Rename ieee80211_device -> ieee80211_hw
Mike McCormack
mikem at ring3k.org
Tue Apr 26 13:40:31 UTC 2011
Signed-off-by: Mike McCormack <mikem at ring3k.org>
---
drivers/staging/rtl8192e/r8192E.h | 2 +-
drivers/staging/rtl8192e/r8192E_core.c | 80 ++++++++++++++++----------------
drivers/staging/rtl8192e/r8192E_dm.c | 2 +-
drivers/staging/rtl8192e/r8192E_wx.c | 10 ++--
drivers/staging/rtl8192e/r819xE_phy.c | 6 +-
drivers/staging/rtl8192e/r819xE_phy.h | 6 +-
6 files changed, 53 insertions(+), 53 deletions(-)
diff --git a/drivers/staging/rtl8192e/r8192E.h b/drivers/staging/rtl8192e/r8192E.h
index 30a0b8a..89e3b4a 100644
--- a/drivers/staging/rtl8192e/r8192E.h
+++ b/drivers/staging/rtl8192e/r8192E.h
@@ -41,7 +41,7 @@
#include "ieee80211/ieee80211.h"
-
+#define ieee80211_hw ieee80211_device
#define RTL819xE_MODULE_NAME "rtl819xE"
diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c
index 6942cb2..8dd90bc 100644
--- a/drivers/staging/rtl8192e/r8192E_core.c
+++ b/drivers/staging/rtl8192e/r8192E_core.c
@@ -96,8 +96,8 @@ static struct pci_driver rtl8192_pci_driver = {
#endif
};
-static void rtl8192_start_beacon(struct ieee80211_device *ieee80211);
-static void rtl8192_stop_beacon(struct ieee80211_device *ieee80211);
+static void rtl8192_start_beacon(struct ieee80211_hw *ieee80211);
+static void rtl8192_stop_beacon(struct ieee80211_hw *ieee80211);
static void rtl819x_watchdog_wqcallback(struct work_struct *work);
static void rtl8192_irq_rx_tasklet(unsigned long arg);
static void rtl8192_irq_tx_tasklet(unsigned long arg);
@@ -136,7 +136,7 @@ static const CHANNEL_LIST ChannelPlan[] = {
static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv* priv)
{
int i, max_chan=-1, min_chan=-1;
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
switch (channel_plan)
{
case COUNTRY_CODE_FCC:
@@ -241,7 +241,7 @@ void write_nic_word(struct r8192_priv *priv, int x,u16 y)
udelay(20);
}
-u8 rtl8192e_ap_sec_type(struct ieee80211_device *ieee)
+u8 rtl8192e_ap_sec_type(struct ieee80211_hw *ieee)
{
static const u8 ccmp_ie[4] = {0x00,0x50,0xf2,0x04};
static const u8 ccmp_rsn_ie[4] = {0x00, 0x0f, 0xac, 0x04};
@@ -271,7 +271,7 @@ u8 rtl8192e_ap_sec_type(struct ieee80211_device *ieee)
}
}
-void rtl8192e_SetHwReg(struct ieee80211_device *ieee80211, u8 variable, u8 *val)
+void rtl8192e_SetHwReg(struct ieee80211_hw *ieee80211, u8 variable, u8 *val)
{
struct r8192_priv *priv = ieee80211->priv;
@@ -368,7 +368,7 @@ static int proc_get_stats_ap(char *page, char **start,
int *eof, void *data)
{
struct r8192_priv *priv = data;
- struct ieee80211_device *ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
struct ieee80211_network *target;
int len = 0;
@@ -583,7 +583,7 @@ static void rtl8192_proc_init_one(struct r8192_priv *priv)
}
}
-static short check_nic_enough_desc(struct ieee80211_device *ieee, int prio)
+static short check_nic_enough_desc(struct ieee80211_hw *ieee, int prio)
{
struct r8192_priv *priv = ieee->priv;
struct rtl8192_tx_ring *ring = &priv->tx_ring[prio];
@@ -647,7 +647,7 @@ static void rtl8192_update_msr(struct r8192_priv *priv)
write_nic_byte(priv, MSR, msr);
}
-static void rtl8192_set_chan(struct ieee80211_device *ieee80211, short ch)
+static void rtl8192_set_chan(struct ieee80211_hw *ieee80211, short ch)
{
struct r8192_priv *priv = ieee80211_priv(ieee80211->dev);
@@ -659,7 +659,7 @@ static void rtl8192_set_chan(struct ieee80211_device *ieee80211, short ch)
priv->rf_set_chan(ieee80211, priv->chan);
}
-static int rtl8192_config(struct ieee80211_device *ieee, u32 changed)
+static int rtl8192_config(struct ieee80211_hw *ieee, u32 changed)
{
struct r8192_priv *priv = ieee->priv;
@@ -757,7 +757,7 @@ void PHY_SetRtl8192eRfOff(struct r8192_priv *priv)
write_nic_byte(priv, ANAPAR_FOR_8192PciE, 0x07);
}
-static void rtl8192_stop(struct ieee80211_device *ieee)
+static void rtl8192_stop(struct ieee80211_hw *ieee)
{
struct r8192_priv *priv = ieee->priv;
int i;
@@ -810,11 +810,11 @@ static void rtl8192_stop(struct ieee80211_device *ieee)
skb_queue_purge(&priv->skb_queue);
}
-static void rtl8192_data_hard_stop(struct ieee80211_device *ieee80211)
+static void rtl8192_data_hard_stop(struct ieee80211_hw *ieee80211)
{
}
-static void rtl8192_data_hard_resume(struct ieee80211_device *ieee80211)
+static void rtl8192_data_hard_resume(struct ieee80211_hw *ieee80211)
{
}
@@ -823,7 +823,7 @@ static void rtl8192_data_hard_resume(struct ieee80211_device *ieee80211)
* It checks also if we need to stop the ieee tx queue, eventually do it
*/
static void rtl8192_hard_data_xmit(struct sk_buff *skb,
- struct ieee80211_device *ieee80211, int rate)
+ struct ieee80211_hw *ieee80211, int rate)
{
struct r8192_priv *priv = ieee80211->priv;
int ret;
@@ -857,7 +857,7 @@ static void rtl8192_hard_data_xmit(struct sk_buff *skb,
* If the ring is full packet are dropped (for data frame the queue
* is stopped before this can happen).
*/
-static int rtl8192_hard_start_xmit(struct ieee80211_device *ieee80211, struct sk_buff *skb)
+static int rtl8192_hard_start_xmit(struct ieee80211_hw *ieee80211, struct sk_buff *skb)
{
struct r8192_priv *priv = ieee80211->priv;
int ret;
@@ -923,7 +923,7 @@ static void rtl8192_tx_isr(struct r8192_priv *priv, int prio)
}
}
-static void rtl8192_stop_beacon(struct ieee80211_device *ieee80211)
+static void rtl8192_stop_beacon(struct ieee80211_hw *ieee80211)
{
}
@@ -1470,7 +1470,7 @@ static void rtl8192_pci_resetdescring(struct r8192_priv *priv)
}
}
-static void rtl8192_link_change(struct ieee80211_device *ieee)
+static void rtl8192_link_change(struct ieee80211_hw *ieee)
{
struct r8192_priv *priv = ieee->priv;
@@ -1516,7 +1516,7 @@ static const struct ieee80211_qos_parameters def_qos_parameters = {
static void rtl8192_update_beacon(struct work_struct * work)
{
struct r8192_priv *priv = container_of(work, struct r8192_priv, update_beacon_wq.work);
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
struct ieee80211_network* net = &ieee->current_network;
if (ieee->pHTInfo->bCurrentHTSupport)
@@ -1603,7 +1603,7 @@ static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv,
}
/* handle manage frame frame beacon and probe response */
-static int rtl8192_handle_beacon(struct ieee80211_device *ieee,
+static int rtl8192_handle_beacon(struct ieee80211_hw *ieee,
struct ieee80211_beacon * beacon,
struct ieee80211_network * network)
{
@@ -1669,7 +1669,7 @@ static int rtl8192_qos_association_resp(struct r8192_priv *priv,
}
-static int rtl8192_handle_assoc_response(struct ieee80211_device *ieee,
+static int rtl8192_handle_assoc_response(struct ieee80211_hw *ieee,
struct ieee80211_assoc_response_frame *resp,
struct ieee80211_network *network)
{
@@ -1682,7 +1682,7 @@ static int rtl8192_handle_assoc_response(struct ieee80211_device *ieee,
/* updateRATRTabel for MCS only. Basic rate is not implemented. */
static void rtl8192_update_ratr_table(struct r8192_priv* priv)
{
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
u8* pMcsRate = ieee->dot11HTOperationalRateSet;
u32 ratr_value = 0;
u8 rate_index = 0;
@@ -1725,7 +1725,7 @@ static void rtl8192_update_ratr_table(struct r8192_priv* priv)
write_nic_byte(priv, UFWP, 1);
}
-static bool GetNmodeSupportBySecCfg8190Pci(struct ieee80211_device *ieee)
+static bool GetNmodeSupportBySecCfg8190Pci(struct ieee80211_hw *ieee)
{
return !(ieee->rtllib_ap_sec_type &&
(ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_WEP|SEC_ALG_TKIP)));
@@ -1733,7 +1733,7 @@ static bool GetNmodeSupportBySecCfg8190Pci(struct ieee80211_device *ieee)
static void rtl8192_refresh_supportrate(struct r8192_priv* priv)
{
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
//we donot consider set support rate for ABG mode, only HT MCS rate is set here.
if (ieee->mode == WIRELESS_MODE_N_24G || ieee->mode == WIRELESS_MODE_N_5G)
{
@@ -1748,7 +1748,7 @@ static u8 rtl8192_getSupportedWireleeMode(void)
return (WIRELESS_MODE_N_24G|WIRELESS_MODE_G|WIRELESS_MODE_B);
}
-static void rtl8192_SetWirelessMode(struct ieee80211_device *ieee, u8 wireless_mode)
+static void rtl8192_SetWirelessMode(struct ieee80211_hw *ieee, u8 wireless_mode)
{
struct r8192_priv *priv = ieee->priv;
u8 bSupportMode = rtl8192_getSupportedWireleeMode();
@@ -1790,12 +1790,12 @@ static void rtl8192_SetWirelessMode(struct ieee80211_device *ieee, u8 wireless_m
rtl8192_refresh_supportrate(priv);
}
-static bool GetHalfNmodeSupportByAPs819xPci(struct ieee80211_device* ieee)
+static bool GetHalfNmodeSupportByAPs819xPci(struct ieee80211_hw *ieee)
{
return ieee->bHalfWirelessN24GMode;
}
-static short rtl8192_is_tx_queue_empty(struct ieee80211_device *ieee)
+static short rtl8192_is_tx_queue_empty(struct ieee80211_hw *ieee)
{
int i=0;
struct r8192_priv *priv = ieee->priv;
@@ -1817,7 +1817,7 @@ static void rtl8192_hw_sleep_down(struct r8192_priv *priv)
MgntActSet_RF_State(priv, eRfSleep, RF_CHANGE_BY_PS);
}
-static void rtl8192_hw_wakeup(struct ieee80211_device *ieee)
+static void rtl8192_hw_wakeup(struct ieee80211_hw *ieee)
{
struct r8192_priv *priv = ieee->priv;
MgntActSet_RF_State(priv, eRfOn, RF_CHANGE_BY_PS);
@@ -1826,14 +1826,14 @@ static void rtl8192_hw_wakeup(struct ieee80211_device *ieee)
static void rtl8192_hw_wakeup_wq (struct work_struct *work)
{
struct delayed_work *dwork = container_of(work,struct delayed_work,work);
- struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,hw_wakeup_wq);
+ struct ieee80211_hw *ieee = container_of(dwork,struct ieee80211_hw,hw_wakeup_wq);
rtl8192_hw_wakeup(ieee);
}
#define MIN_SLEEP_TIME 50
#define MAX_SLEEP_TIME 10000
-static void rtl8192_hw_to_sleep(struct ieee80211_device *ieee, u32 th, u32 tl)
+static void rtl8192_hw_to_sleep(struct ieee80211_hw *ieee, u32 th, u32 tl)
{
struct r8192_priv *priv = ieee->priv;
u32 tmp;
@@ -2507,7 +2507,7 @@ static void rtl8192_hwconfig(struct r8192_priv *priv)
}
-static int rtl8192_start(struct ieee80211_device *ieee)
+static int rtl8192_start(struct ieee80211_hw *ieee)
{
struct r8192_priv *priv = ieee->priv;
struct net_device *dev = priv->ieee80211->dev;
@@ -2848,7 +2848,7 @@ static void rtl8192_prepare_beacon(unsigned long arg)
* rtl8192_beacon_tx_enable(). rtl8192_beacon_tx_disable() might
* be used to stop beacon transmission
*/
-static void rtl8192_start_beacon(struct ieee80211_device *ieee80211)
+static void rtl8192_start_beacon(struct ieee80211_hw *ieee80211)
{
struct r8192_priv *priv = ieee80211->priv;
struct ieee80211_network *net = &priv->ieee80211->current_network;
@@ -3064,7 +3064,7 @@ bool MgntActSet_802_11_PowerSaveMode(struct r8192_priv *priv, u8 rtPsMode)
}
/* Enter the leisure power save mode. */
-void LeisurePSEnter(struct ieee80211_device *ieee80211)
+void LeisurePSEnter(struct ieee80211_hw *ieee80211)
{
struct r8192_priv *priv = ieee80211->priv;
PRT_POWER_SAVE_CONTROL pPSC = &priv->PowerSaveControl;
@@ -3094,7 +3094,7 @@ void LeisurePSEnter(struct ieee80211_device *ieee80211)
/* Leave leisure power save mode. */
-void LeisurePSLeave(struct ieee80211_device *ieee80211)
+void LeisurePSLeave(struct ieee80211_hw *ieee80211)
{
struct r8192_priv *priv = ieee80211->priv;
PRT_POWER_SAVE_CONTROL pPSC = &priv->PowerSaveControl;
@@ -3165,7 +3165,7 @@ void IPSLeave(struct r8192_priv *priv)
void IPSLeave_wq(struct work_struct *work)
{
- struct ieee80211_device *ieee = container_of(work, struct ieee80211_device, ips_leave_wq);
+ struct ieee80211_hw *ieee = container_of(work, struct ieee80211_hw, ips_leave_wq);
struct r8192_priv *priv = ieee->priv;
down(&priv->ieee80211->ips_sem);
@@ -3173,7 +3173,7 @@ void IPSLeave_wq(struct work_struct *work)
up(&priv->ieee80211->ips_sem);
}
-void ieee80211_ips_leave_wq(struct ieee80211_device *ieee80211)
+void ieee80211_ips_leave_wq(struct ieee80211_hw *ieee80211)
{
struct r8192_priv *priv = ieee80211->priv;
RT_RF_POWER_STATE rtState;
@@ -3194,7 +3194,7 @@ void ieee80211_ips_leave_wq(struct ieee80211_device *ieee80211)
}
}
//added by amy 090331 end
-void ieee80211_ips_leave(struct ieee80211_device *ieee80211)
+void ieee80211_ips_leave(struct ieee80211_hw *ieee80211)
{
struct r8192_priv *priv = ieee80211->priv;
down(&ieee80211->ips_sem);
@@ -3229,7 +3229,7 @@ static void rtl819x_watchdog_wqcallback(struct work_struct *work)
{
struct delayed_work *dwork = container_of(work,struct delayed_work,work);
struct r8192_priv *priv = container_of(dwork,struct r8192_priv,watch_dog_wq);
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
RESET_TYPE ResetType = RESET_TYPE_NORESET;
bool bBusyTraffic = false;
bool bEnterPS = false;
@@ -3512,7 +3512,7 @@ static int r8192_set_mac_adr(struct net_device *dev, void *mac)
static void r8192e_set_hw_key(struct r8192_priv *priv, struct ieee_param *ipw)
{
- struct ieee80211_device *ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
u32 key[4];
@@ -4285,7 +4285,7 @@ static void TranslateRxSignalStuff819xpci(struct r8192_priv *priv,
static void rtl8192_tx_resume(struct r8192_priv *priv)
{
- struct ieee80211_device *ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
struct sk_buff *skb;
int i;
@@ -4536,7 +4536,7 @@ static const struct ieee80211_ops r8192e_ops = {
static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *id)
{
- struct ieee80211_device *ieee = NULL;
+ struct ieee80211_hw *ieee = NULL;
struct net_device *dev = NULL;
struct r8192_priv *priv= NULL;
u8 unit = 0;
@@ -4877,7 +4877,7 @@ out_unlock:
void EnableHWSecurityConfig8192(struct r8192_priv *priv)
{
u8 SECR_value = 0x0;
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
SECR_value = SCR_TxEncEnable | SCR_RxDecEnable;
diff --git a/drivers/staging/rtl8192e/r8192E_dm.c b/drivers/staging/rtl8192e/r8192E_dm.c
index 688d29b..682fdab 100644
--- a/drivers/staging/rtl8192e/r8192E_dm.c
+++ b/drivers/staging/rtl8192e/r8192E_dm.c
@@ -2535,7 +2535,7 @@ static void dm_dynamic_txpower(struct r8192_priv *priv)
//added by vivi, for read tx rate and retrycount
static void dm_check_txrateandretrycount(struct r8192_priv *priv)
{
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
//for initial tx rate
ieee->softmac_stats.last_packet_rate = read_nic_byte(priv ,Initial_Tx_Rate_Reg);
diff --git a/drivers/staging/rtl8192e/r8192E_wx.c b/drivers/staging/rtl8192e/r8192E_wx.c
index adad91b..8353d5e 100644
--- a/drivers/staging/rtl8192e/r8192E_wx.c
+++ b/drivers/staging/rtl8192e/r8192E_wx.c
@@ -377,7 +377,7 @@ static int r8192_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
union iwreq_data *wrqu, char *b)
{
struct r8192_priv *priv = ieee80211_priv(dev);
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
RT_RF_POWER_STATE rtState;
int ret;
@@ -628,7 +628,7 @@ static int r8192_wx_set_enc(struct net_device *dev,
struct r8192_priv *priv = ieee80211_priv(dev);
int ret;
- struct ieee80211_device *ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
//u32 TargetContent;
u32 hwkey[4]={0,0,0,0};
u8 mask=0xff;
@@ -848,7 +848,7 @@ static int r8192_wx_set_enc_ext(struct net_device *dev,
{
int ret=0;
struct r8192_priv *priv = ieee80211_priv(dev);
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
if (priv->bHwRadioOff)
return 0;
@@ -991,7 +991,7 @@ static int r8192_wx_adapter_power_status(struct net_device *dev,
struct r8192_priv *priv = ieee80211_priv(dev);
#ifdef ENABLE_LPS
PRT_POWER_SAVE_CONTROL pPSC = &priv->PowerSaveControl;
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
#endif
down(&priv->wx_sem);
@@ -1125,7 +1125,7 @@ static iw_handler r8192_private_handler[] = {
static struct iw_statistics *r8192_get_wireless_stats(struct net_device *dev)
{
struct r8192_priv *priv = ieee80211_priv(dev);
- struct ieee80211_device* ieee = priv->ieee80211;
+ struct ieee80211_hw *ieee = priv->ieee80211;
struct iw_statistics* wstats = &priv->wstats;
int tmp_level = 0;
int tmp_qual = 0;
diff --git a/drivers/staging/rtl8192e/r819xE_phy.c b/drivers/staging/rtl8192e/r819xE_phy.c
index f635782..594b363 100644
--- a/drivers/staging/rtl8192e/r819xE_phy.c
+++ b/drivers/staging/rtl8192e/r819xE_phy.c
@@ -1850,7 +1850,7 @@ void rtl8192_SwChnl_WorkItem(struct r8192_priv *priv)
* return: return code show if workitem is scheduled(1:pass, 0:fail)
* Note: Delay may be required for RF configuration
* ***************************************************************************/
-u8 rtl8192_phy_SwChnl(struct ieee80211_device *ieee, u8 channel)
+u8 rtl8192_phy_SwChnl(struct ieee80211_hw *ieee, u8 channel)
{
struct r8192_priv *priv = ieee->priv;
@@ -2125,7 +2125,7 @@ void rtl8192_SetBWModeWorkItem(struct r8192_priv *priv)
* Note: I doubt whether SetBWModeInProgress flag is necessary as we can
* test whether current work in the queue or not.//do I?
* ***************************************************************************/
-void rtl8192_SetBWMode(struct ieee80211_device *ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset)
+void rtl8192_SetBWMode(struct ieee80211_hw *ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset)
{
struct r8192_priv *priv = ieee->priv;
@@ -2151,7 +2151,7 @@ void rtl8192_SetBWMode(struct ieee80211_device *ieee, HT_CHANNEL_WIDTH Bandwidth
}
-void InitialGain819xPci(struct ieee80211_device *ieee, u8 Operation)
+void InitialGain819xPci(struct ieee80211_hw *ieee, u8 Operation)
{
#define SCAN_RX_INITIAL_GAIN 0x17
#define POWER_DETECTION_TH 0x08
diff --git a/drivers/staging/rtl8192e/r819xE_phy.h b/drivers/staging/rtl8192e/r819xE_phy.h
index 496e76f..52235c2 100644
--- a/drivers/staging/rtl8192e/r819xE_phy.h
+++ b/drivers/staging/rtl8192e/r819xE_phy.h
@@ -117,15 +117,15 @@ void rtl8192_phy_updateInitGain(struct r8192_priv *priv);
u8 rtl8192_phy_ConfigRFWithHeaderFile(struct r8192_priv *priv,
RF90_RADIO_PATH_E eRFPath);
-u8 rtl8192_phy_SwChnl(struct ieee80211_device *ieee80211, u8 channel);
+u8 rtl8192_phy_SwChnl(struct ieee80211_hw *ieee80211, u8 channel);
-void rtl8192_SetBWMode(struct ieee80211_device *ieee80211,
+void rtl8192_SetBWMode(struct ieee80211_hw *ieee80211,
HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset);
void rtl8192_SwChnl_WorkItem(struct r8192_priv *priv);
void rtl8192_SetBWModeWorkItem(struct r8192_priv *priv);
-void InitialGain819xPci(struct ieee80211_device *ieee, u8 Operation);
+void InitialGain819xPci(struct ieee80211_hw *ieee, u8 Operation);
#endif /* _R819XU_PHY_H */
--
1.7.0.4
More information about the devel
mailing list