summaryrefslogtreecommitdiff
path: root/libre/syslinux/fix-undefined-type-umode_t.patch
blob: 33ac6d323a65fa051ea9e90a23a76474caa3f2fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
--- 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 <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_FIEMAP */
-#include <linux/msdos_fs.h>	/* FAT_IOCTL_SET_ATTRIBUTES */
+#include <linux/fs.h>		/* FIGETBSZ, FIBMAP, FS_IOC_* */
 
 #undef SECTOR_SIZE		/* Defined in msdos_fs.h for no good reason */
 #undef SECTOR_BITS
-#include <linux/ext2_fs.h>	/* EXT2_IOC_* */
+
+#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
@@ -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 <linux/loop.h>
 
+#endif /* __linux__ */
+
 #endif /* LIBINSTALLER_LINUXIOCTL_H */