| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |  | 
|  | 26 | typedef 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 |  | 
| Jeff Garzik | 6aa20a2 | 2006-09-13 13:24:59 -0400 | [diff] [blame] | 34 | /* | 
|  | 35 | *	Commands for the driver | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 36 | */ | 
|  | 37 | #define	DGRS_GETMEM		0x01	/* Get the dual port memory address */ | 
|  | 38 | #define	DGRS_SETFILTER		0x02	/* Set a filter */ |