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