1 #ifndef _LINUX_DEVFS_FS_H 2 #define _LINUX_DEVFS_FS_H 3 4 #include <linux/ioctl.h> 5 6 #define DEVFSD_PROTOCOL_REVISION_KERNEL 5 7 8 #define DEVFSD_IOCTL_BASE 'd' 9 10 /* These are the various ioctls */ 11 #define DEVFSDIOC_GET_PROTO_REV _IOR(DEVFSD_IOCTL_BASE, 0, int) 12 #define DEVFSDIOC_SET_EVENT_MASK _IOW(DEVFSD_IOCTL_BASE, 2, int) 13 #define DEVFSDIOC_RELEASE_EVENT_QUEUE _IOW(DEVFSD_IOCTL_BASE, 3, int) 14 #define DEVFSDIOC_SET_DEBUG_MASK _IOW(DEVFSD_IOCTL_BASE, 4, int) 15 16 #define DEVFSD_NOTIFY_REGISTERED 0 17 #define DEVFSD_NOTIFY_UNREGISTERED 1 18 #define DEVFSD_NOTIFY_ASYNC_OPEN 2 19 #define DEVFSD_NOTIFY_CLOSE 3 20 #define DEVFSD_NOTIFY_LOOKUP 4 21 #define DEVFSD_NOTIFY_CHANGE 5 22 #define DEVFSD_NOTIFY_CREATE 6 23 #define DEVFSD_NOTIFY_DELETE 7 24 25 #define DEVFS_PATHLEN 1024 /* Never change this otherwise the 26 binary interface will change */ 27 28 struct devfsd_notify_struct 29 { /* Use native C types to ensure same types in kernel and user space */ 30 unsigned int type; /* DEVFSD_NOTIFY_* value */ 31 unsigned int mode; /* Mode of the inode or device entry */ 32 unsigned int major; /* Major number of device entry */ 33 unsigned int minor; /* Minor number of device entry */ 34 unsigned int uid; /* Uid of process, inode or device entry */ 35 unsigned int gid; /* Gid of process, inode or device entry */ 36 unsigned int overrun_count; /* Number of lost events */ 37 unsigned int namelen; /* Number of characters not including '\0' */ 38 /* The device name MUST come last */ 39 char devname[DEVFS_PATHLEN]; /* This will be '\0' terminated */ 40 }; 41 42 43 #endif /* _LINUX_DEVFS_FS_H */ 44