39 lines
1 KiB
C
39 lines
1 KiB
C
![]() |
/*
|
||
|
* 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 */
|