catar/encoder.rs: add helpers to test file system type
This commit is contained in:
		| @ -495,3 +495,57 @@ nix::ioctl_read!(read_attr_fd, b'f', 1, usize); | |||||||
| // /usr/include/linux/msdos_fs.h: #define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32) | // /usr/include/linux/msdos_fs.h: #define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32) | ||||||
| // read FAT file system attributes | // read FAT file system attributes | ||||||
| nix::ioctl_read!(read_fat_attr_fd, b'r', 0x10, u32); | nix::ioctl_read!(read_fat_attr_fd, b'r', 0x10, u32); | ||||||
|  |  | ||||||
|  |  | ||||||
|  | // from /usr/include/linux/magic.h | ||||||
|  | // and from casync util.h | ||||||
|  | const BINFMTFS_MAGIC: i64 =        0x42494e4d; | ||||||
|  | const CGROUP2_SUPER_MAGIC: i64 =   0x63677270; | ||||||
|  | const CGROUP_SUPER_MAGIC: i64 =    0x0027e0eb; | ||||||
|  | const CONFIGFS_MAGIC: i64 =        0x62656570; | ||||||
|  | const DEBUGFS_MAGIC: i64 =         0x64626720; | ||||||
|  | const DEVPTS_SUPER_MAGIC: i64 =    0x00001cd1; | ||||||
|  | const EFIVARFS_MAGIC: i64 =        0xde5e81e4; | ||||||
|  | const FUSE_CTL_SUPER_MAGIC: i64 =  0x65735543; | ||||||
|  | const HUGETLBFS_MAGIC: i64 =       0x958458f6; | ||||||
|  | const MQUEUE_MAGIC: i64 =          0x19800202; | ||||||
|  | const NFSD_MAGIC: i64 =            0x6e667364; | ||||||
|  | const PROC_SUPER_MAGIC: i64 =      0x00009fa0; | ||||||
|  | const PSTOREFS_MAGIC: i64 =        0x6165676C; | ||||||
|  | const RPCAUTH_GSSMAGIC: i64 =      0x67596969; | ||||||
|  | const SECURITYFS_MAGIC: i64 =      0x73636673; | ||||||
|  | const SELINUX_MAGIC: i64 =         0xf97cff8c; | ||||||
|  | const SMACK_MAGIC: i64 =           0x43415d53; | ||||||
|  | const RAMFS_MAGIC: i64 =           0x858458f6; | ||||||
|  | const TMPFS_MAGIC: i64 =           0x01021994; | ||||||
|  | const SYSFS_MAGIC: i64 =           0x62656572; | ||||||
|  |  | ||||||
|  | #[inline(always)] | ||||||
|  | fn is_temporary_file_system(magic: i64) -> bool { | ||||||
|  |     magic == RAMFS_MAGIC || magic == TMPFS_MAGIC | ||||||
|  | } | ||||||
|  |  | ||||||
|  | fn is_virtual_file_system(magic: i64) -> bool { | ||||||
|  |  | ||||||
|  |     match magic { | ||||||
|  |         BINFMTFS_MAGIC | | ||||||
|  |         CGROUP2_SUPER_MAGIC | | ||||||
|  |         CGROUP_SUPER_MAGIC | | ||||||
|  |         CONFIGFS_MAGIC | | ||||||
|  |         DEBUGFS_MAGIC | | ||||||
|  |         DEVPTS_SUPER_MAGIC | | ||||||
|  |         EFIVARFS_MAGIC | | ||||||
|  |         FUSE_CTL_SUPER_MAGIC | | ||||||
|  |         HUGETLBFS_MAGIC | | ||||||
|  |         MQUEUE_MAGIC | | ||||||
|  |         NFSD_MAGIC | | ||||||
|  |         PROC_SUPER_MAGIC | | ||||||
|  |         PSTOREFS_MAGIC | | ||||||
|  |         RPCAUTH_GSSMAGIC | | ||||||
|  |         SECURITYFS_MAGIC | | ||||||
|  |         SELINUX_MAGIC | | ||||||
|  |         SMACK_MAGIC | | ||||||
|  |         SYSFS_MAGIC => true, | ||||||
|  |         _ => false | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user