1/*
2 *	ioctl's for the Digi Intl. RightSwitch
3 *
4 *	These network driver ioctl's are a bit obtuse compared to the usual
5 *	ioctl's for a "normal" device driver.  Hey, I didn't invent it.
6 *
7 *	Typical use:
8 *
9 *	struct ifreq	ifr;
10 *	DGRS_IOCTL	ioc;
11 *	int		x;
12 *
13 *	strcpy(ifr.ifr_name, "eth1");
14 *	ifr.ifr_data = (caddr_t) &ioc;
15 *	ioc.cmd = DGRS_GETMEM;
16 *	ioc.len = sizeof(x);
17 *	ioc.data = (caddr_t) &x;
18 *	rc = ioctl(fd, DGRSIOCTL, &ifr);
19 *	printf("rc=%d mem=%x\n", rc, x);
20 *
21 */
22#include <linux/sockios.h>
23
24#define DGRSIOCTL      SIOCDEVPRIVATE
25
26typedef struct dgrs_ioctl {
27	unsigned short cmd;	/* Command to run */
28	unsigned short len;	/* Length of the data buffer */
29	unsigned char  __user *data;	/* Pointer to the data buffer */
30	unsigned short	port;	/* port number for command, if needed */
31	unsigned short	filter;	/* filter number for command, if needed */
32} DGRS_IOCTL;
33
34/*
35 *	Commands for the driver
36 */
37#define	DGRS_GETMEM		0x01	/* Get the dual port memory address */
38#define	DGRS_SETFILTER		0x02	/* Set a filter */
39