userspace/target/operating_system/linux/syscall/open/
flags.rs

1// #[rustfmt::skip]
2// ample::enum_flag!(Flag, usize, "Map Flags",[
3//     [0o0;        RDONLY;         RDONLY;          "Shared";         "Shared"],
4//     [0o1;        WRONLY;         WRONLY;         "Private";        "Private"],
5//     [0o2;        RDWR;           RDWR;  "SharedValidate"; "SharedValidate"],
6//     [0o100;      CREAT;          CREAT;           "Fixed";          "Fixed"],
7//     [0o200;      EXCL;           EXCL;       "Anonymous";      "Anonymous"],
8//     [0o400;      NOCTTY;         NOCTTY;       "GrowsDown";      "GrowsDown"],
9//     [0o1000;     TRUNC;          TRUNC;       "DenyWrite";      "DenyWrite"],
10//     [0o2000;     APPEND;         APPEND;      "Executable";     "Executable"],
11//     [0o4000;     NONBLOCK;       NONBLOCK;          "Locked";         "Locked"],
12//     [0o10000;    DSYNC;          DSYNC;       "NoReserve";      "NoReserve"],
13//     [0o4010000;  SYNC;           SYNC;        "Populate";       "Populate"],
14//     [0o200000;   DIRECTORY;      DIRECTORY;        "NonBlock";       "NonBlock"],
15//     [0o400000;   NOFOLLOW;       NOFOLLOW;           "Stack";          "Stack"],
16//     [0o2000000;  CLOEXEC;        CLOEXEC;         "HugeTlb";        "HugeTlb"],
17// ]);
18
19#[rustfmt::skip]
20ample::enum_flag!(
21    i32;
22    "Open Flags";
23    pub enum Flag {
24        [0o0; RDONLY; RDONLY; "Read only"; "Read only"],
25        [0o1; WRONLY; WRONLY; "Write only"; "Write only"],
26        [0o2; RDWR;   RDWR;   "Read/Write"; "Read/Write"],
27        [0o100; CREAT; CREAT; "Create"; "Create file if not exists"],
28        [0o200; EXCL;  EXCL;  "Exclusive"; "Fail if exists"],
29        [0o400; NOCTTY; NOCTTY; "No controlling TTY"; "Do not assign controlling TTY"],
30        [0o1000; TRUNC; TRUNC; "Truncate"; "Truncate file if exists"],
31        [0o2000; APPEND; APPEND; "Append"; "Append mode"],
32        [0o4000; NONBLOCK; NONBLOCK; "Non-blocking"; "Non-blocking I/O"],
33        [0o10000; DSYNC; DSYNC; "DSync"; "Synchronized I/O"],
34        [0o4010000; SYNC; SYNC; "Sync"; "Synchronous writes"],
35        [0o200000; DIRECTORY; DIRECTORY; "Directory"; "Must be a directory"],
36        [0o400000; NOFOLLOW; NOFOLLOW; "No Follow"; "Do not follow symlinks"],
37        [0o2000000; CLOEXEC; CLOEXEC; "Close on exec"; "Close on exec"]
38    }
39);