summaryrefslogtreecommitdiffstats
path: root/drivers/net/dgrs.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/dgrs.h')
-rw-r--r--drivers/net/dgrs.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/drivers/net/dgrs.h b/drivers/net/dgrs.h
new file mode 100644
index 000000000000..c347cd117409
--- /dev/null
+++ b/drivers/net/dgrs.h
@@ -0,0 +1,38 @@
+/*
+ * ioctl's for the Digi Intl. RightSwitch
+ *
+ * These network driver ioctl's are a bit obtuse compared to the usual
+ * ioctl's for a "normal" device driver. Hey, I didn't invent it.
+ *
+ * Typical use:
+ *
+ * struct ifreq ifr;
+ * DGRS_IOCTL ioc;
+ * int x;
+ *
+ * strcpy(ifr.ifr_name, "eth1");
+ * ifr.ifr_data = (caddr_t) &ioc;
+ * ioc.cmd = DGRS_GETMEM;
+ * ioc.len = sizeof(x);
+ * ioc.data = (caddr_t) &x;
+ * rc = ioctl(fd, DGRSIOCTL, &ifr);
+ * printf("rc=%d mem=%x\n", rc, x);
+ *
+ */
+#include <linux/sockios.h>
+
+#define DGRSIOCTL SIOCDEVPRIVATE
+
+typedef struct dgrs_ioctl {
+ unsigned short cmd; /* Command to run */
+ unsigned short len; /* Length of the data buffer */
+ unsigned char __user *data; /* Pointer to the data buffer */
+ unsigned short port; /* port number for command, if needed */
+ unsigned short filter; /* filter number for command, if needed */
+} DGRS_IOCTL;
+
+/*
+ * Commands for the driver
+ */
+#define DGRS_GETMEM 0x01 /* Get the dual port memory address */
+#define DGRS_SETFILTER 0x02 /* Set a filter */