| /* | |
| * 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 */ |