]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
conf: make it more obvious how auto-mount flags are defined
authorChristian Brauner <christian.brauner@ubuntu.com>
Thu, 21 Oct 2021 13:44:58 +0000 (15:44 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Thu, 21 Oct 2021 13:52:15 +0000 (15:52 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/conf.h
src/lxc/macro.h

index a41b4787e47d442338916e5738b5f5d3730d068d..0f0922d735f052e60b446e7292c750009e8066a6 100644 (file)
@@ -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 {
index 291d158b26d5a555eba5cad1d824bafd07fbe372..be9ef70c421424653d4b8fb6c749aa97e0603a20 100644 (file)
@@ -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 */