From: Christian Brauner Date: Thu, 21 Oct 2021 13:44:58 +0000 (+0200) Subject: conf: make it more obvious how auto-mount flags are defined X-Git-Tag: lxc-4.0.12~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1505f0780573f28d33f540884ba420293c1144a6;p=thirdparty%2Flxc.git conf: make it more obvious how auto-mount flags are defined Signed-off-by: Christian Brauner --- diff --git a/src/lxc/conf.h b/src/lxc/conf.h index a41b4787e..0f0922d73 100644 --- a/src/lxc/conf.h +++ b/src/lxc/conf.h @@ -253,35 +253,63 @@ struct lxc_rootfs { * Automatic mounts for LXC to perform inside the container */ enum { - LXC_AUTO_PROC_RW = 0x001, /* /proc read-write */ - LXC_AUTO_PROC_MIXED = 0x002, /* /proc/sys and /proc/sysrq-trigger read-only */ - LXC_AUTO_PROC_MASK = 0x003, - - LXC_AUTO_SYS_RW = 0x004, /* /sys */ - LXC_AUTO_SYS_RO = 0x008, /* /sys read-only */ - LXC_AUTO_SYS_MIXED = 0x00C, /* /sys read-only and /sys/class/net read-write */ - LXC_AUTO_SYS_MASK = 0x00C, - - LXC_AUTO_CGROUP_RO = 0x010, /* /sys/fs/cgroup (partial mount, read-only) */ - LXC_AUTO_CGROUP_RW = 0x020, /* /sys/fs/cgroup (partial mount, read-write) */ - LXC_AUTO_CGROUP_MIXED = 0x030, /* /sys/fs/cgroup (partial mount, paths r/o, cgroup r/w) */ - LXC_AUTO_CGROUP_FULL_RO = 0x040, /* /sys/fs/cgroup (full mount, read-only) */ - LXC_AUTO_CGROUP_FULL_RW = 0x050, /* /sys/fs/cgroup (full mount, read-write) */ - LXC_AUTO_CGROUP_FULL_MIXED = 0x060, /* /sys/fs/cgroup (full mount, parent r/o, own r/w) */ + /* /proc read-write */ + LXC_AUTO_PROC_RW = BIT(0), + /* /proc/sys and /proc/sysrq-trigger read-only */ + LXC_AUTO_PROC_MIXED = BIT(1), + LXC_AUTO_PROC_MASK = LXC_AUTO_PROC_RW | + LXC_AUTO_PROC_MIXED, + /* /sys read-write */ + LXC_AUTO_SYS_RW = BIT(2), + /* /sys read-only */ + LXC_AUTO_SYS_RO = BIT(3), + /* /sys read-only and /sys/class/net read-write */ + LXC_AUTO_SYS_MIXED = LXC_AUTO_SYS_RW | + LXC_AUTO_SYS_RO, + LXC_AUTO_SYS_MASK = LXC_AUTO_SYS_MIXED, + + /* /sys/fs/cgroup (partial mount, read-only) */ + LXC_AUTO_CGROUP_RO = BIT(4), + /* /sys/fs/cgroup (partial mount, read-write) */ + LXC_AUTO_CGROUP_RW = BIT(5), + /* /sys/fs/cgroup (partial mount, paths r/o, cgroup r/w) */ + LXC_AUTO_CGROUP_MIXED = LXC_AUTO_CGROUP_RO | + LXC_AUTO_CGROUP_RW, + /* /sys/fs/cgroup (full mount, read-only) */ + LXC_AUTO_CGROUP_FULL_RO = BIT(6), + /* /sys/fs/cgroup (full mount, read-write) */ + LXC_AUTO_CGROUP_FULL_RW = BIT(7), + /* /sys/fs/cgroup (full mount, parent r/o, own r/w) */ + LXC_AUTO_CGROUP_FULL_MIXED = LXC_AUTO_CGROUP_FULL_RO | + LXC_AUTO_CGROUP_FULL_RW, /* * These are defined in such a way as to retain binary compatibility * with earlier versions of this code. If the previous mask is applied, * both of these will default back to the _MIXED variants, which is * safe. */ - LXC_AUTO_CGROUP_NOSPEC = 0x0B0, /* /sys/fs/cgroup (partial mount, r/w or mixed, depending on caps) */ - LXC_AUTO_CGROUP_FULL_NOSPEC = 0x0E0, /* /sys/fs/cgroup (full mount, r/w or mixed, depending on caps) */ - LXC_AUTO_CGROUP_FORCE = 0x100, /* mount cgroups even when cgroup namespaces are supported */ - LXC_AUTO_CGROUP_MASK = 0x1F0, /* all known cgroup options */ - - LXC_AUTO_SHMOUNTS = 0x200, /* shared mount point */ - LXC_AUTO_SHMOUNTS_MASK = 0x200, /* shared mount point mask */ - LXC_AUTO_ALL_MASK = 0x1FF, /* all known settings */ + /* /sys/fs/cgroup (partial mount, r/w or mixed, depending on caps) */ + LXC_AUTO_CGROUP_NOSPEC = 0x0B0, + /* /sys/fs/cgroup (full mount, r/w or mixed, depending on caps) */ + LXC_AUTO_CGROUP_FULL_NOSPEC = 0x0E0, + /* mount cgroups even when cgroup namespaces are supported */ + LXC_AUTO_CGROUP_FORCE = BIT(8), + /* all known cgroup options */ + LXC_AUTO_CGROUP_MASK = LXC_AUTO_CGROUP_MIXED | + LXC_AUTO_CGROUP_FULL_MIXED | + LXC_AUTO_CGROUP_NOSPEC | + LXC_AUTO_CGROUP_FULL_NOSPEC | + LXC_AUTO_CGROUP_FORCE, + + /* shared mount point */ + LXC_AUTO_SHMOUNTS = BIT(9), + /* shared mount point mask */ + LXC_AUTO_SHMOUNTS_MASK = LXC_AUTO_SHMOUNTS, + + /* all known settings */ + LXC_AUTO_ALL_MASK = LXC_AUTO_PROC_MASK | + LXC_AUTO_SYS_MASK | + LXC_AUTO_CGROUP_MASK, }; enum lxchooks { diff --git a/src/lxc/macro.h b/src/lxc/macro.h index 291d158b2..be9ef70c4 100644 --- a/src/lxc/macro.h +++ b/src/lxc/macro.h @@ -785,4 +785,6 @@ static inline bool is_set(__u32 bit, __u32 *bitarr) return (bitarr[bit / NBITS] & ((__u32)1 << (bit % NBITS))) != 0; } +#define BIT(nr) (1UL << (nr)) + #endif /* __LXC_MACRO_H */