1 #ifndef _LINUX_IFLAGS_H
2 #define _LINUX_IFLAGS_H
5 * A universal set of inode flags.
7 * Originally taken from ext2/3 with additions for other filesystems.
8 * Filesystems supporting this interface should interoperate with
9 * the lsattr and chattr command line tools.
11 * This interface is supported in whole or in part by:
20 #define IFLAGS_GET_IOC _IOR('f', 1, long)
21 #define IFLAGS_SET_IOC _IOW('f', 2, long)
24 * These values are provided for use as indices of an array
25 * for use with the iflags_cvt function below
28 iflag_SecureRm
= 0, /* Secure deletion */
29 iflag_Unrm
= 1, /* Undelete */
30 iflag_Compress
= 2, /* Compress file */
31 iflag_Sync
= 3, /* Synchronous updates */
32 iflag_Immutable
= 4, /* Immutable */
33 iflag_Append
= 5, /* Append */
34 iflag_NoDump
= 6, /* Don't dump file */
35 iflag_NoAtime
= 7, /* No atime updates */
36 /* Reserved for compression usage */
38 iflag_ComprBlk
= 9, /* One or more compressed clusters */
39 iflag_NoComp
= 10, /* Don't compress */
40 iflag_Ecompr
= 11, /* Compression error */
41 /* End of compression flags */
42 iflag_Btree
= 12, /* btree format dir */
43 iflag_Index
= 12, /* hash-indexed directory */
44 iflag_Imagic
= 13, /* AFS directory */
45 iflag_JournalData
= 14, /* file data should be journaled */
46 iflag_NoTail
= 15, /* file tail should not be merged */
47 iflag_DirSync
= 16, /* dirsync behaviour */
48 iflag_TopDir
= 17, /* Top of directory hierarchies */
49 iflag_DirectIO
= 18, /* Always use direct I/O on this file */
50 iflag_InheritDirectIO
= 19, /* Set DirectIO on new files in dir */
51 iflag_InheritJdata
= 20, /* Set JournalData on create in dir */
52 iflag_Reserved
= 31 /* reserved for ext2/3 lib */
55 #define __IFL(x) (1<<(iflag_##x))
56 #define IFLAG_SECRM __IFL(SecureRm) /* 0x00000001 */
57 #define IFLAG_UNRM __IFL(Unrm) /* 0x00000002 */
58 #define IFLAG_COMPR __IFL(Compr) /* 0x00000004 */
59 #define IFLAG_SYNC __IFL(Sync) /* 0x00000008 */
60 #define IFLAG_IMMUTABLE __IFL(Immutable) /* 0x00000010 */
61 #define IFLAG_APPEND __IFL(Append) /* 0x00000020 */
62 #define IFLAG_NODUMP __IFL(NoDump) /* 0x00000040 */
63 #define IFLAG_NOATIME __IFL(NoAtime) /* 0x00000080 */
64 #define IFLAG_DIRTY __IFL(Dirty) /* 0x00000100 */
65 #define IFLAG_COMPRBLK __IFL(ComprBlk) /* 0x00000200 */
66 #define IFLAG_NOCOMP __IFL(NoComp) /* 0x00000400 */
67 #define IFLAG_ECOMPR __IFL(Ecompr) /* 0x00000800 */
68 #define IFLAG_BTREE __IFL(Btree) /* 0x00001000 */
69 #define IFLAG_INDEX __IFL(Index) /* 0x00001000 */
70 #define IFLAG_IMAGIC __IFL(Imagic) /* 0x00002000 */
71 #define IFLAG_JOURNAL_DATA __IFL(JournalData) /* 0x00004000 */
72 #define IFLAG_NOTAIL __IFL(NoTail) /* 0x00008000 */
73 #define IFLAG_DIRSYNC __IFL(DirSync) /* 0x00010000 */
74 #define IFLAG_TOPDIR __IFL(TopDir) /* 0x00020000 */
75 #define IFLAG_DIRECTIO __IFL(DirectIO) /* 0x00040000 */
76 #define IFLAG_INHERITDIRECTIO __IFL(InheritDirectIO) /* 0x00080000 */
77 #define IFLAG_INHERITJDATA __IFL(InheritJdata) /* 0x00100000 */
78 #define IFLAG_RESERVED __IFL(Reserved) /* 0x80000000 */
83 * @table: A table of 32 u32 flags
84 * @val: a 32 bit value to convert
86 * This function can be used to convert between IFLAGS values and
87 * the filesystem's own flags values.
89 * Returns: the converted flags
91 static inline u32
iflags_cvt(const u32
*table
, u32 val
)
102 #endif /* __KERNEL__ */
104 #endif /* _LINUX_IFLAGS_H */
This page took 0.034051 seconds and 5 git commands to generate.