| /* |
| * linuxioctl.h |
| * |
| * Wrapper for Linux ioctl definitions, including workarounds |
| */ |
| |
| #ifndef LIBINSTALLER_LINUXIOCTL_H |
| #define LIBINSTALLER_LINUXIOCTL_H |
| |
| #include <sys/ioctl.h> |
| |
| #ifdef __linux__ |
| |
| #define statfs _kernel_statfs /* HACK to deal with broken 2.4 distros */ |
| |
| #include <linux/fd.h> /* Floppy geometry */ |
| #include <linux/hdreg.h> /* Hard disk geometry */ |
| |
| #include <linux/fs.h> /* FIGETBSZ, FIBMAP, FS_IOC_* */ |
| |
| #undef SECTOR_SIZE /* Defined in msdos_fs.h for no good reason */ |
| #undef SECTOR_BITS |
| |
| #ifndef FS_IOC_GETFLAGS |
| /* Old kernel headers, these were once ext2-specific... */ |
| # include <linux/ext2_fs.h> /* EXT2_IOC_* */ |
| |
| # define FS_IOC_GETFLAGS EXT2_IOC_GETFLAGS |
| # define FS_IOC_SETFLAGS EXT2_IOC_SETFLAGS |
| |
| # define FS_IMMUTABLE_FL EXT2_IMMUTABLE_FL |
| |
| #else |
| |
| # include <ext2fs/ext2_fs.h> |
| |
| #endif |
| |
| #ifndef FAT_IOCTL_GET_ATTRIBUTES |
| # define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32) |
| #endif |
| #ifndef FAT_IOCTL_SET_ATTRIBUTES |
| # define FAT_IOCTL_SET_ATTRIBUTES _IOW('r', 0x11, __u32) |
| #endif |
| |
| #include <linux/fiemap.h> /* FIEMAP definitions */ |
| |
| #ifndef FS_IOC_FIEMAP |
| # define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) |
| #endif |
| |
| #undef statfs |
| |
| #ifndef BLKGETSIZE64 |
| /* This takes a u64, but the size field says size_t. Someone screwed big. */ |
| # define BLKGETSIZE64 _IOR(0x12,114,size_t) |
| #endif |
| |
| #include <linux/loop.h> |
| |
| #endif /* __linux__ */ |
| |
| #endif /* LIBINSTALLER_LINUXIOCTL_H */ |