--- syslinux-4.05.orig/libinstaller/linuxioctl.h 2011-12-09 16:28:17.000000000 -0200 +++ syslinux-4.05/libinstaller/linuxioctl.h 2012-05-18 20:30:23.000000000 -0300 @@ -9,22 +9,36 @@ #include +#ifdef __linux__ + #define statfs _kernel_statfs /* HACK to deal with broken 2.4 distros */ #include /* Floppy geometry */ #include /* Hard disk geometry */ -#include /* FIGETBSZ, FIBMAP, FS_IOC_FIEMAP */ -#include /* FAT_IOCTL_SET_ATTRIBUTES */ +#include /* FIGETBSZ, FIBMAP, FS_IOC_* */ #undef SECTOR_SIZE /* Defined in msdos_fs.h for no good reason */ #undef SECTOR_BITS -#include /* EXT2_IOC_* */ + +#ifndef FS_IOC_GETFLAGS +/* Old kernel headers, these were once ext2-specific... */ +# include /* 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 + +#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 @@ -37,11 +51,13 @@ #undef statfs -#if defined(__linux__) && !defined(BLKGETSIZE64) +#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 +#endif /* __linux__ */ + #endif /* LIBINSTALLER_LINUXIOCTL_H */