Skip to content

Commit 63be793

Browse files
committed
Add consts
1 parent c7bcb3f commit 63be793

10 files changed

Lines changed: 1303 additions & 136 deletions

File tree

ptrlib/os/linux/__init__.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
Exports:
44
- signal_name: Convert signal number to string (optionally with details)
55
- syscall: Linux syscall registry with arch selectors (x86, x64, arm, aarch64)
6-
- consts: Experimental constant resolver via system headers
6+
- consts: Linux constant tables (static, by category)
77
"""
88

99
from .signal import signal_name
1010
from .syscall import syscall
11-
from .consts import consts
11+
from . import consts
1212

1313
__all__ = ['signal_name', 'syscall', 'consts']
14-

ptrlib/os/linux/consts.py

Lines changed: 0 additions & 133 deletions
This file was deleted.

ptrlib/os/linux/consts/__init__.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
"""Linux constants grouped by category.
2+
3+
Examples:
4+
from ptrlib.os import linux
5+
linux.consts.O_RDONLY
6+
linux.consts.socket.AF_INET
7+
linux.consts.ptrace.PTRACE_ATTACH
8+
"""
9+
10+
from . import socket as socket_consts
11+
from . import memory as memory_consts
12+
from . import signal as signal_consts
13+
from . import file as file_consts
14+
from . import process as process_consts
15+
from . import personality as personality_consts
16+
from . import ptrace as ptrace_consts
17+
18+
socket = socket_consts
19+
memory = memory_consts
20+
signal = signal_consts
21+
file = file_consts
22+
process = process_consts
23+
personality = personality_consts
24+
ptrace = ptrace_consts
25+
26+
from .socket import *
27+
from .memory import *
28+
from .signal import *
29+
from .file import *
30+
from .process import *
31+
from .personality import *
32+
from .ptrace import *
33+
34+
__all__ = (
35+
socket_consts.__all__
36+
+ memory_consts.__all__
37+
+ signal_consts.__all__
38+
+ file_consts.__all__
39+
+ process_consts.__all__
40+
+ personality_consts.__all__
41+
+ ptrace_consts.__all__
42+
)

ptrlib/os/linux/consts/file.py

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
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

Comments
 (0)