|
| 1 | +"""Linux file and filesystem-related constants. |
| 2 | +
|
| 3 | +Examples: |
| 4 | + from ptrlib.os.linux import consts |
| 5 | + consts.O_RDONLY |
| 6 | + consts.S_IFREG |
| 7 | +""" |
| 8 | + |
| 9 | +# open(2) flags |
| 10 | +O_ACCMODE = 0o3 |
| 11 | +O_RDONLY = 0o0 |
| 12 | +O_WRONLY = 0o1 |
| 13 | +O_RDWR = 0o2 |
| 14 | +O_CREAT = 0o100 |
| 15 | +O_EXCL = 0o200 |
| 16 | +O_NOCTTY = 0o400 |
| 17 | +O_TRUNC = 0o1000 |
| 18 | +O_APPEND = 0o2000 |
| 19 | +O_NONBLOCK = 0o4000 |
| 20 | +O_DSYNC = 0o10000 |
| 21 | +FASYNC = 0o20000 |
| 22 | +O_DIRECT = 0o40000 |
| 23 | +O_LARGEFILE = 0o100000 |
| 24 | +O_DIRECTORY = 0o200000 |
| 25 | +O_NOFOLLOW = 0o400000 |
| 26 | +O_NOATIME = 0o1000000 |
| 27 | +O_CLOEXEC = 0o2000000 |
| 28 | +O_SYNC = 0o4010000 |
| 29 | +O_PATH = 0o10000000 |
| 30 | +__O_TMPFILE = 0o20000000 |
| 31 | +O_TMPFILE = 0o20200000 |
| 32 | +O_NDELAY = 0o4000 |
| 33 | + |
| 34 | +# fcntl(2) commands |
| 35 | +F_DUPFD = 0 |
| 36 | +F_GETFD = 1 |
| 37 | +F_SETFD = 2 |
| 38 | +F_GETFL = 3 |
| 39 | +F_SETFL = 4 |
| 40 | +F_GETLK = 5 |
| 41 | +F_SETLK = 6 |
| 42 | +F_SETLKW = 7 |
| 43 | +F_SETOWN = 8 |
| 44 | +F_GETOWN = 9 |
| 45 | +F_SETSIG = 10 |
| 46 | +F_GETSIG = 11 |
| 47 | +F_GETLK64 = 12 |
| 48 | +F_SETLK64 = 13 |
| 49 | +F_SETLKW64 = 14 |
| 50 | +F_SETOWN_EX = 15 |
| 51 | +F_GETOWN_EX = 16 |
| 52 | +F_GETOWNER_UIDS = 17 |
| 53 | +F_OFD_GETLK = 36 |
| 54 | +F_OFD_SETLK = 37 |
| 55 | +F_OFD_SETLKW = 38 |
| 56 | + |
| 57 | +F_OWNER_TID = 0 |
| 58 | +F_OWNER_PID = 1 |
| 59 | +F_OWNER_PGRP = 2 |
| 60 | + |
| 61 | +FD_CLOEXEC = 1 |
| 62 | + |
| 63 | +F_RDLCK = 0 |
| 64 | +F_WRLCK = 1 |
| 65 | +F_UNLCK = 2 |
| 66 | +F_EXLCK = 4 |
| 67 | +F_SHLCK = 8 |
| 68 | + |
| 69 | +LOCK_SH = 1 |
| 70 | +LOCK_EX = 2 |
| 71 | +LOCK_NB = 4 |
| 72 | +LOCK_UN = 8 |
| 73 | +LOCK_MAND = 32 |
| 74 | +LOCK_READ = 64 |
| 75 | +LOCK_WRITE = 128 |
| 76 | +LOCK_RW = 192 |
| 77 | + |
| 78 | +F_LINUX_SPECIFIC_BASE = 1024 |
| 79 | +F_SETLEASE = 1024 |
| 80 | +F_GETLEASE = 1025 |
| 81 | +F_NOTIFY = 1026 |
| 82 | +F_CANCELLK = 1029 |
| 83 | +F_DUPFD_CLOEXEC = 1030 |
| 84 | +F_SETPIPE_SZ = 1031 |
| 85 | +F_GETPIPE_SZ = 1032 |
| 86 | +F_ADD_SEALS = 1033 |
| 87 | +F_GET_SEALS = 1034 |
| 88 | +F_GET_RW_HINT = 1035 |
| 89 | +F_SET_RW_HINT = 1036 |
| 90 | +F_GET_FILE_RW_HINT = 1037 |
| 91 | +F_SET_FILE_RW_HINT = 1038 |
| 92 | + |
| 93 | +F_SEAL_SEAL = 0x0001 |
| 94 | +F_SEAL_SHRINK = 0x0002 |
| 95 | +F_SEAL_GROW = 0x0004 |
| 96 | +F_SEAL_WRITE = 0x0008 |
| 97 | +F_SEAL_FUTURE_WRITE = 0x0010 |
| 98 | +F_SEAL_EXEC = 0x0020 |
| 99 | + |
| 100 | +RWH_WRITE_LIFE_NOT_SET = 0 |
| 101 | +RWH_WRITE_LIFE_NONE = 1 |
| 102 | +RWH_WRITE_LIFE_SHORT = 2 |
| 103 | +RWH_WRITE_LIFE_MEDIUM = 3 |
| 104 | +RWH_WRITE_LIFE_LONG = 4 |
| 105 | +RWH_WRITE_LIFE_EXTREME = 5 |
| 106 | +RWF_WRITE_LIFE_NOT_SET = 0 |
| 107 | + |
| 108 | +DN_ACCESS = 0x00000001 |
| 109 | +DN_MODIFY = 0x00000002 |
| 110 | +DN_CREATE = 0x00000004 |
| 111 | +DN_DELETE = 0x00000008 |
| 112 | +DN_RENAME = 0x00000010 |
| 113 | +DN_ATTRIB = 0x00000020 |
| 114 | +DN_MULTISHOT = 0x80000000 |
| 115 | + |
| 116 | +AT_FDCWD = -100 |
| 117 | +AT_SYMLINK_NOFOLLOW = 0x100 |
| 118 | +AT_EACCESS = 0x200 |
| 119 | +AT_REMOVEDIR = 0x200 |
| 120 | +AT_SYMLINK_FOLLOW = 0x400 |
| 121 | +AT_NO_AUTOMOUNT = 0x800 |
| 122 | +AT_EMPTY_PATH = 0x1000 |
| 123 | +AT_STATX_SYNC_TYPE = 0x6000 |
| 124 | +AT_STATX_SYNC_AS_STAT = 0x0000 |
| 125 | +AT_STATX_FORCE_SYNC = 0x2000 |
| 126 | +AT_STATX_DONT_SYNC = 0x4000 |
| 127 | +AT_RECURSIVE = 0x8000 |
| 128 | +AT_HANDLE_FID = 0x200 |
| 129 | + |
| 130 | +# file type and mode bits |
| 131 | +S_IFMT = 0o170000 |
| 132 | +S_IFSOCK = 0o140000 |
| 133 | +S_IFLNK = 0o120000 |
| 134 | +S_IFREG = 0o100000 |
| 135 | +S_IFBLK = 0o060000 |
| 136 | +S_IFDIR = 0o040000 |
| 137 | +S_IFCHR = 0o020000 |
| 138 | +S_IFIFO = 0o010000 |
| 139 | +S_ISUID = 0o4000 |
| 140 | +S_ISGID = 0o2000 |
| 141 | +S_ISVTX = 0o1000 |
| 142 | + |
| 143 | +S_IRWXU = 0o700 |
| 144 | +S_IRUSR = 0o400 |
| 145 | +S_IWUSR = 0o200 |
| 146 | +S_IXUSR = 0o100 |
| 147 | +S_IRWXG = 0o070 |
| 148 | +S_IRGRP = 0o040 |
| 149 | +S_IWGRP = 0o020 |
| 150 | +S_IXGRP = 0o010 |
| 151 | +S_IRWXO = 0o007 |
| 152 | +S_IROTH = 0o004 |
| 153 | +S_IWOTH = 0o002 |
| 154 | +S_IXOTH = 0o001 |
| 155 | + |
| 156 | +# statx flags |
| 157 | +STATX_TYPE = 0x00000001 |
| 158 | +STATX_MODE = 0x00000002 |
| 159 | +STATX_NLINK = 0x00000004 |
| 160 | +STATX_UID = 0x00000008 |
| 161 | +STATX_GID = 0x00000010 |
| 162 | +STATX_ATIME = 0x00000020 |
| 163 | +STATX_MTIME = 0x00000040 |
| 164 | +STATX_CTIME = 0x00000080 |
| 165 | +STATX_INO = 0x00000100 |
| 166 | +STATX_SIZE = 0x00000200 |
| 167 | +STATX_BLOCKS = 0x00000400 |
| 168 | +STATX_BASIC_STATS = 0x000007ff |
| 169 | +STATX_BTIME = 0x00000800 |
| 170 | +STATX_MNT_ID = 0x00001000 |
| 171 | +STATX_DIOALIGN = 0x00002000 |
| 172 | +STATX_MNT_ID_UNIQUE = 0x00004000 |
| 173 | +STATX__RESERVED = 0x80000000 |
| 174 | +STATX_ALL = 0x00000fff |
| 175 | + |
| 176 | +STATX_ATTR_COMPRESSED = 0x00000004 |
| 177 | +STATX_ATTR_IMMUTABLE = 0x00000010 |
| 178 | +STATX_ATTR_APPEND = 0x00000020 |
| 179 | +STATX_ATTR_NODUMP = 0x00000040 |
| 180 | +STATX_ATTR_ENCRYPTED = 0x00000800 |
| 181 | +STATX_ATTR_AUTOMOUNT = 0x00001000 |
| 182 | +STATX_ATTR_MOUNT_ROOT = 0x00002000 |
| 183 | +STATX_ATTR_VERITY = 0x00100000 |
| 184 | +STATX_ATTR_DAX = 0x00200000 |
| 185 | + |
| 186 | +__all__ = [name for name in globals() if name.isupper()] |
0 commit comments