patch-2.4.20 linux-2.4.20/drivers/net/pcmcia/xircom_cb.c
Next file: linux-2.4.20/drivers/net/pcmcia/xircom_tulip_cb.c
Previous file: linux-2.4.20/drivers/net/pcmcia/xirc2ps_cs.c
Back to the patch index
Back to the overall index
- Lines: 64
- Date:
Thu Nov 28 15:53:14 2002
- Orig file:
linux-2.4.19/drivers/net/pcmcia/xircom_cb.c
- Orig date:
Fri Aug 2 17:39:44 2002
diff -urN linux-2.4.19/drivers/net/pcmcia/xircom_cb.c linux-2.4.20/drivers/net/pcmcia/xircom_cb.c
@@ -29,6 +29,8 @@
#include <linux/skbuff.h>
#include <linux/delay.h>
#include <linux/init.h>
+#include <linux/ethtool.h>
+#include <asm/uaccess.h>
#include <asm/bitops.h>
#include <asm/io.h>
@@ -174,6 +176,37 @@
}
#endif
+static int netdev_ethtool_ioctl(struct net_device *dev, void *useraddr)
+{
+ u32 ethcmd;
+
+ if (copy_from_user(ðcmd, useraddr, sizeof(ethcmd)))
+ return -EFAULT;
+
+ switch (ethcmd) {
+ case ETHTOOL_GDRVINFO: {
+ struct ethtool_drvinfo info = {ETHTOOL_GDRVINFO};
+ strncpy(info.driver, "xircom_cb", sizeof(info.driver)-1);
+ if (copy_to_user(useraddr, &info, sizeof(info)))
+ return -EFAULT;
+ return 0;
+ }
+ }
+
+ return -EOPNOTSUPP;
+}
+
+static int private_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+{
+
+ switch(cmd) {
+ case SIOCETHTOOL:
+ return netdev_ethtool_ioctl(dev, (void *) rq->ifr_data);
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+
/* xircom_probe is the code that gets called on device insertion.
it sets up the hardware and registers the device to the networklayer.
@@ -263,6 +296,7 @@
dev->stop = &xircom_close;
dev->get_stats = &xircom_get_stats;
dev->priv = private;
+ dev->do_ioctl = &private_ioctl;
pdev->driver_data = dev;
@@ -1008,7 +1042,7 @@
/*
-link_status() checks the the links status and will return 0 for no link, 10 for 10mbit link and 100 for.. guess what.
+link_status() checks the link's status and will return 0 for no link, 10 for 10mbit link and 100 for.. guess what.
Must be called in locked state with interrupts disabled
*/
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)