catar/encoder.rs: add helpers to test file system type

This commit is contained in:
Dietmar Maurer 2019-01-12 09:18:21 +01:00
parent 1c4804cf67
commit 80881f60ef
1 changed files with 54 additions and 0 deletions

View File

@ -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)
// read FAT file system attributes
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
}
}