diff options
author | Kelvin M. Klann <kmk3.code@protonmail.com> | 2023-01-25 01:37:40 -0300 |
---|---|---|
committer | Kelvin M. Klann <kmk3.code@protonmail.com> | 2023-01-27 23:58:30 -0300 |
commit | c7c4f57d13b0e5720ee672a1761663d739d0bffa (patch) | |
tree | 11d8692f19391c2df62a573531f2e6b2d859dab6 | |
parent | build: move syntax files to contrib/syntax/files (diff) | |
download | firejail-c7c4f57d13b0e5720ee672a1761663d739d0bffa.tar.gz firejail-c7c4f57d13b0e5720ee672a1761663d739d0bffa.tar.zst firejail-c7c4f57d13b0e5720ee672a1761663d739d0bffa.zip |
build: auto-generate syntax lists
Changes:
* Use the commands from contrib/vim/syntax/firejail.vim to create
makefile targets to generate syntax lists in contrib/syntax/lists
* Add contrib/syntax/files/example.in as an example of how to generate
syntax files
* Generate and add the syntax lists, to make it easier to spot if they
are properly updated when a new command is added or if their recipes
also need changes
* Add "syntax" and "contrib" makefile targets
Note: The generation commands are executed mostly silently to avoid
generating too much noise when also making other targets.
Note2: In some generation commands, a `$$` escape is used to pass `$` to
the shell, to avoid being interpreted by make as the start of a macro.
Note3: `@make_input@` is used in example.in to make it clear that the
file is generated (and that it is generated by make rather than
configure), similarly to how `@configure_input@` is used in configure
input files. See also apparmor.vim:
$ head -n 2 /usr/share/vim/vimfiles/syntax/apparmor.vim
" generated from apparmor.vim.in by create-apparmor.vim.py
" do not edit this file - edit apparmor.vim.in or create-apparmor.vim.py instead
Environment: apparmor 3.1.2-1 on Artix Linux.
Relates to #2679 #5502 #5577 #5612.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 70 | ||||
-rw-r--r-- | contrib/syntax/files/example.in | 16 | ||||
-rw-r--r-- | contrib/syntax/lists/profile_commands_arg0.list | 50 | ||||
-rw-r--r-- | contrib/syntax/lists/profile_commands_arg1.list | 76 | ||||
-rw-r--r-- | contrib/syntax/lists/profile_conditionals.list | 9 | ||||
-rw-r--r-- | contrib/syntax/lists/profile_macros.list | 10 | ||||
-rw-r--r-- | contrib/syntax/lists/syscall_groups.list | 29 | ||||
-rw-r--r-- | contrib/syntax/lists/syscalls.list | 454 | ||||
-rw-r--r-- | contrib/syntax/lists/system_errnos.list | 135 |
10 files changed, 850 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index 7333b1c8d..a6af8f67a 100644 --- a/.gitignore +++ b/.gitignore | |||
@@ -16,6 +16,7 @@ config.log | |||
16 | config.mk | 16 | config.mk |
17 | config.sh | 17 | config.sh |
18 | config.status | 18 | config.status |
19 | contrib/syntax/files/example | ||
19 | firejail-*.tar.xz | 20 | firejail-*.tar.xz |
20 | firejail-login.5 | 21 | firejail-login.5 |
21 | firejail-profile.5 | 22 | firejail-profile.5 |
@@ -19,6 +19,22 @@ MYLIBS = src/libpostexecseccomp/libpostexecseccomp.so src/libtrace/libtrace.so s | |||
19 | COMPLETIONS = src/zsh_completion/_firejail src/bash_completion/firejail.bash_completion | 19 | COMPLETIONS = src/zsh_completion/_firejail src/bash_completion/firejail.bash_completion |
20 | SECCOMP_FILTERS = seccomp seccomp.debug seccomp.32 seccomp.block_secondary seccomp.mdwx seccomp.mdwx.32 | 20 | SECCOMP_FILTERS = seccomp seccomp.debug seccomp.32 seccomp.block_secondary seccomp.mdwx seccomp.mdwx.32 |
21 | MANPAGES = firejail.1 firemon.1 firecfg.1 firejail-profile.5 firejail-login.5 firejail-users.5 jailcheck.1 | 21 | MANPAGES = firejail.1 firemon.1 firecfg.1 firejail-profile.5 firejail-login.5 firejail-users.5 jailcheck.1 |
22 | |||
23 | SYSCALL_HEADERS := $(sort $(wildcard src/include/syscall*.h)) | ||
24 | |||
25 | # Lists of keywords used in profiles; used for generating syntax files. | ||
26 | SYNTAX_LISTS = \ | ||
27 | contrib/syntax/lists/profile_commands_arg0.list \ | ||
28 | contrib/syntax/lists/profile_commands_arg1.list \ | ||
29 | contrib/syntax/lists/profile_conditionals.list \ | ||
30 | contrib/syntax/lists/profile_macros.list \ | ||
31 | contrib/syntax/lists/syscall_groups.list \ | ||
32 | contrib/syntax/lists/syscalls.list \ | ||
33 | contrib/syntax/lists/system_errnos.list | ||
34 | |||
35 | SYNTAX_FILES_IN := $(sort $(wildcard contrib/syntax/files/*.in)) | ||
36 | SYNTAX_FILES := $(SYNTAX_FILES_IN:.in=) | ||
37 | |||
22 | ALL_ITEMS = $(APPS) $(SBOX_APPS) $(SBOX_APPS_NON_DUMPABLE) $(MYLIBS) | 38 | ALL_ITEMS = $(APPS) $(SBOX_APPS) $(SBOX_APPS_NON_DUMPABLE) $(MYLIBS) |
23 | 39 | ||
24 | .PHONY: all | 40 | .PHONY: all |
@@ -65,6 +81,59 @@ $(MANPAGES): src/man config.mk | |||
65 | 81 | ||
66 | man: $(MANPAGES) | 82 | man: $(MANPAGES) |
67 | 83 | ||
84 | # Makes all targets in contrib/ | ||
85 | .PHONY: contrib | ||
86 | contrib: syntax | ||
87 | |||
88 | .PHONY: syntax | ||
89 | syntax: $(SYNTAX_FILES) | ||
90 | |||
91 | # TODO: include/rlimit are false positives | ||
92 | contrib/syntax/lists/profile_commands_arg0.list: src/firejail/profile.c | ||
93 | @sed -En 's/.*strn?cmp\(ptr, "([^ "]*[^ ])".*/\1/p' $< | \ | ||
94 | grep -Ev '^(include|rlimit)$$' | sed 's/\./\\./' | sort -u >$@ | ||
95 | |||
96 | # TODO: private-lib is special-cased in the code and doesn't match the regex | ||
97 | contrib/syntax/lists/profile_commands_arg1.list: src/firejail/profile.c | ||
98 | @{ sed -En 's/.*strn?cmp\(ptr, "([^"]+) ".*/\1/p' $<; echo private-lib; } | \ | ||
99 | sort -u >$@ | ||
100 | |||
101 | contrib/syntax/lists/profile_conditionals.list: src/firejail/profile.c | ||
102 | @awk -- 'BEGIN {process=0;} /^Cond conditionals\[\] = \{$$/ {process=1;} \ | ||
103 | /\t*\{"[^"]+".*/ \ | ||
104 | { if (process) {print gensub(/^\t*\{"([^"]+)".*$$/, "\\1", 1);} } \ | ||
105 | /^\t\{ NULL, NULL \}$$/ {process=0;}' \ | ||
106 | $< | sort -u >$@ | ||
107 | |||
108 | contrib/syntax/lists/profile_macros.list: src/firejail/macros.c | ||
109 | @sed -En 's/.*\$$\{([^}]+)\}.*/\1/p' $< | sort -u >$@ | ||
110 | |||
111 | contrib/syntax/lists/syscall_groups.list: src/lib/syscall.c | ||
112 | @sed -En 's/.*"@([^",]+).*/\1/p' $< | sort -u >$@ | ||
113 | |||
114 | contrib/syntax/lists/syscalls.list: $(SYSCALL_HEADERS) | ||
115 | @sed -n 's/{\s\+"\([^"]\+\)",.*},/\1/p' $(SYSCALL_HEADERS) | \ | ||
116 | sort -u >$@ | ||
117 | |||
118 | contrib/syntax/lists/system_errnos.list: src/lib/errno.c | ||
119 | @sed -En 's/.*"(E[^"]+).*/\1/p' $< | sort -u >$@ | ||
120 | |||
121 | pipe_fromlf = { tr '\n' '|' | sed 's/|$$//'; } | ||
122 | space_fromlf = { tr '\n' ' ' | sed 's/ $$//'; } | ||
123 | edit_syntax_file = sed \ | ||
124 | -e "s/@make_input@/$$(basename $@). Generated from $$(basename $<) by make./" \ | ||
125 | -e "s/@FJ_PROFILE_COMMANDS_ARG0@/$$($(pipe_fromlf) <contrib/syntax/lists/profile_commands_arg0.list)/" \ | ||
126 | -e "s/@FJ_PROFILE_COMMANDS_ARG1@/$$($(pipe_fromlf) <contrib/syntax/lists/profile_commands_arg1.list)/" \ | ||
127 | -e "s/@FJ_PROFILE_CONDITIONALS@/$$($(pipe_fromlf) <contrib/syntax/lists/profile_conditionals.list)/" \ | ||
128 | -e "s/@FJ_PROFILE_MACROS@/$$($(pipe_fromlf) <contrib/syntax/lists/profile_macros.list)/" \ | ||
129 | -e "s/@FJ_SYSCALLS@/$$($(space_fromlf) <contrib/syntax/lists/syscalls.list)/" \ | ||
130 | -e "s/@FJ_SYSCALL_GROUPS@/$$($(pipe_fromlf) <contrib/syntax/lists/syscall_groups.list)/" \ | ||
131 | -e "s/@FJ_SYSTEM_ERRNOS@/$$($(pipe_fromlf) <contrib/syntax/lists/system_errnos.list)/" | ||
132 | |||
133 | contrib/syntax/files/example: contrib/syntax/files/example.in $(SYNTAX_LISTS) | ||
134 | @printf 'Generating %s from %s\n' $@ $< | ||
135 | @$(edit_syntax_file) $< >$@ | ||
136 | |||
68 | .PHONY: clean | 137 | .PHONY: clean |
69 | clean: | 138 | clean: |
70 | for dir in $$(dirname $(ALL_ITEMS)) $(MYDIRS); do \ | 139 | for dir in $$(dirname $(ALL_ITEMS)) $(MYDIRS); do \ |
@@ -73,6 +142,7 @@ clean: | |||
73 | $(MAKE) -C test clean | 142 | $(MAKE) -C test clean |
74 | rm -f $(SECCOMP_FILTERS) | 143 | rm -f $(SECCOMP_FILTERS) |
75 | rm -f $(MANPAGES) $(MANPAGES:%=%.gz) firejail*.rpm | 144 | rm -f $(MANPAGES) $(MANPAGES:%=%.gz) firejail*.rpm |
145 | rm -f $(SYNTAX_FILES) | ||
76 | rm -f test/utils/index.html* | 146 | rm -f test/utils/index.html* |
77 | rm -f test/utils/wget-log | 147 | rm -f test/utils/wget-log |
78 | rm -f test/utils/firejail-test-file* | 148 | rm -f test/utils/firejail-test-file* |
diff --git a/contrib/syntax/files/example.in b/contrib/syntax/files/example.in new file mode 100644 index 000000000..74bcdc079 --- /dev/null +++ b/contrib/syntax/files/example.in | |||
@@ -0,0 +1,16 @@ | |||
1 | # @make_input@ | ||
2 | # Example file to check the values of input variables. | ||
3 | |||
4 | FJ_PROFILE_COMMANDS_ARG0 = @FJ_PROFILE_COMMANDS_ARG0@ | ||
5 | |||
6 | FJ_PROFILE_COMMANDS_ARG1 = @FJ_PROFILE_COMMANDS_ARG1@ | ||
7 | |||
8 | FJ_PROFILE_CONDITIONALS = @FJ_PROFILE_CONDITIONALS@ | ||
9 | |||
10 | FJ_PROFILE_MACROS = @FJ_PROFILE_MACROS@ | ||
11 | |||
12 | FJ_SYSCALLS = @FJ_SYSCALLS@ | ||
13 | |||
14 | FJ_SYSCALL_GROUPS = @FJ_SYSCALL_GROUPS@ | ||
15 | |||
16 | FJ_SYSTEM_ERRNOS = @FJ_SYSTEM_ERRNOS@ | ||
diff --git a/contrib/syntax/lists/profile_commands_arg0.list b/contrib/syntax/lists/profile_commands_arg0.list new file mode 100644 index 000000000..a402671a6 --- /dev/null +++ b/contrib/syntax/lists/profile_commands_arg0.list | |||
@@ -0,0 +1,50 @@ | |||
1 | allow-debuggers | ||
2 | allusers | ||
3 | apparmor | ||
4 | apparmor-replace | ||
5 | apparmor-stack | ||
6 | caps | ||
7 | deterministic-exit-code | ||
8 | deterministic-shutdown | ||
9 | disable-mnt | ||
10 | ipc-namespace | ||
11 | keep-config-pulse | ||
12 | keep-dev-shm | ||
13 | keep-var-tmp | ||
14 | machine-id | ||
15 | memory-deny-write-execute | ||
16 | netfilter | ||
17 | netlock | ||
18 | no3d | ||
19 | noautopulse | ||
20 | nodbus | ||
21 | nodvd | ||
22 | nogroups | ||
23 | noinput | ||
24 | nonewprivs | ||
25 | noprinters | ||
26 | noroot | ||
27 | nosound | ||
28 | notv | ||
29 | nou2f | ||
30 | novideo | ||
31 | overlay | ||
32 | overlay-tmpfs | ||
33 | private | ||
34 | private-cache | ||
35 | private-cwd | ||
36 | private-dev | ||
37 | private-etc | ||
38 | private-lib | ||
39 | private-tmp | ||
40 | quiet | ||
41 | restrict-namespaces | ||
42 | seccomp | ||
43 | seccomp\.block-secondary | ||
44 | tab | ||
45 | tracelog | ||
46 | writable-etc | ||
47 | writable-run-user | ||
48 | writable-var | ||
49 | writable-var-log | ||
50 | x11 | ||
diff --git a/contrib/syntax/lists/profile_commands_arg1.list b/contrib/syntax/lists/profile_commands_arg1.list new file mode 100644 index 000000000..c703f2257 --- /dev/null +++ b/contrib/syntax/lists/profile_commands_arg1.list | |||
@@ -0,0 +1,76 @@ | |||
1 | apparmor | ||
2 | bind | ||
3 | blacklist | ||
4 | blacklist-nolog | ||
5 | caps.drop | ||
6 | caps.keep | ||
7 | cpu | ||
8 | dbus-system.broadcast | ||
9 | dbus-system.call | ||
10 | dbus-system.own | ||
11 | dbus-system.see | ||
12 | dbus-system.talk | ||
13 | dbus-user.broadcast | ||
14 | dbus-user.call | ||
15 | dbus-user.own | ||
16 | dbus-user.see | ||
17 | dbus-user.talk | ||
18 | defaultgw | ||
19 | dns | ||
20 | env | ||
21 | hostname | ||
22 | hosts-file | ||
23 | ignore | ||
24 | include | ||
25 | ip | ||
26 | ip6 | ||
27 | iprange | ||
28 | join-or-start | ||
29 | keep-fd | ||
30 | mac | ||
31 | mkdir | ||
32 | mkfile | ||
33 | mtu | ||
34 | name | ||
35 | net | ||
36 | netfilter | ||
37 | netfilter6 | ||
38 | netmask | ||
39 | netns | ||
40 | nice | ||
41 | noblacklist | ||
42 | noexec | ||
43 | nowhitelist | ||
44 | overlay-named | ||
45 | private | ||
46 | private-bin | ||
47 | private-cwd | ||
48 | private-etc | ||
49 | private-home | ||
50 | private-lib | ||
51 | private-opt | ||
52 | private-srv | ||
53 | protocol | ||
54 | read-only | ||
55 | read-write | ||
56 | restrict-namespaces | ||
57 | rlimit-as | ||
58 | rlimit-cpu | ||
59 | rlimit-fsize | ||
60 | rlimit-nofile | ||
61 | rlimit-nproc | ||
62 | rlimit-sigpending | ||
63 | rmenv | ||
64 | seccomp | ||
65 | seccomp-error-action | ||
66 | seccomp.32 | ||
67 | seccomp.32.drop | ||
68 | seccomp.32.keep | ||
69 | seccomp.drop | ||
70 | seccomp.keep | ||
71 | timeout | ||
72 | tmpfs | ||
73 | veth-name | ||
74 | whitelist | ||
75 | whitelist-ro | ||
76 | xephyr-screen | ||
diff --git a/contrib/syntax/lists/profile_conditionals.list b/contrib/syntax/lists/profile_conditionals.list new file mode 100644 index 000000000..2cae76c96 --- /dev/null +++ b/contrib/syntax/lists/profile_conditionals.list | |||
@@ -0,0 +1,9 @@ | |||
1 | ALLOW_TRAY | ||
2 | BROWSER_ALLOW_DRM | ||
3 | BROWSER_DISABLE_U2F | ||
4 | HAS_APPIMAGE | ||
5 | HAS_NET | ||
6 | HAS_NODBUS | ||
7 | HAS_NOSOUND | ||
8 | HAS_PRIVATE | ||
9 | HAS_X11 | ||
diff --git a/contrib/syntax/lists/profile_macros.list b/contrib/syntax/lists/profile_macros.list new file mode 100644 index 000000000..4ba780f11 --- /dev/null +++ b/contrib/syntax/lists/profile_macros.list | |||
@@ -0,0 +1,10 @@ | |||
1 | CFG | ||
2 | DESKTOP | ||
3 | DOCUMENTS | ||
4 | DOWNLOADS | ||
5 | HOME | ||
6 | MUSIC | ||
7 | PATH | ||
8 | PICTURES | ||
9 | RUNUSER | ||
10 | VIDEOS | ||
diff --git a/contrib/syntax/lists/syscall_groups.list b/contrib/syntax/lists/syscall_groups.list new file mode 100644 index 000000000..fb42ae5f7 --- /dev/null +++ b/contrib/syntax/lists/syscall_groups.list | |||
@@ -0,0 +1,29 @@ | |||
1 | aio | ||
2 | basic-io | ||
3 | chown | ||
4 | clock | ||
5 | cpu-emulation | ||
6 | debug | ||
7 | default | ||
8 | default-keep | ||
9 | default-nodebuggers | ||
10 | file-system | ||
11 | io-event | ||
12 | ipc | ||
13 | keyring | ||
14 | memlock | ||
15 | module | ||
16 | mount | ||
17 | network-io | ||
18 | obsolete | ||
19 | privileged | ||
20 | process | ||
21 | raw-io | ||
22 | reboot | ||
23 | resources | ||
24 | setuid | ||
25 | signal | ||
26 | swap | ||
27 | sync | ||
28 | system-service | ||
29 | timer | ||
diff --git a/contrib/syntax/lists/syscalls.list b/contrib/syntax/lists/syscalls.list new file mode 100644 index 000000000..abb740b24 --- /dev/null +++ b/contrib/syntax/lists/syscalls.list | |||
@@ -0,0 +1,454 @@ | |||
1 | _llseek | ||
2 | _newselect | ||
3 | _sysctl | ||
4 | accept | ||
5 | accept4 | ||
6 | access | ||
7 | acct | ||
8 | add_key | ||
9 | adjtimex | ||
10 | afs_syscall | ||
11 | alarm | ||
12 | arch_prctl | ||
13 | arm_fadvise64_64 | ||
14 | arm_sync_file_range | ||
15 | bdflush | ||
16 | bind | ||
17 | bpf | ||
18 | break | ||
19 | brk | ||
20 | capget | ||
21 | capset | ||
22 | chdir | ||
23 | chmod | ||
24 | chown | ||
25 | chown32 | ||
26 | chroot | ||
27 | clock_adjtime | ||
28 | clock_adjtime64 | ||
29 | clock_getres | ||
30 | clock_getres_time64 | ||
31 | clock_gettime | ||
32 | clock_gettime64 | ||
33 | clock_nanosleep | ||
34 | clock_nanosleep_time64 | ||
35 | clock_settime | ||
36 | clock_settime64 | ||
37 | clone | ||
38 | clone3 | ||
39 | close | ||
40 | close_range | ||
41 | connect | ||
42 | copy_file_range | ||
43 | creat | ||
44 | create_module | ||
45 | delete_module | ||
46 | dup | ||
47 | dup2 | ||
48 | dup3 | ||
49 | epoll_create | ||
50 | epoll_create1 | ||
51 | epoll_ctl | ||
52 | epoll_ctl_old | ||
53 | epoll_pwait | ||
54 | epoll_pwait2 | ||
55 | epoll_wait | ||
56 | epoll_wait_old | ||
57 | eventfd | ||
58 | eventfd2 | ||
59 | execve | ||
60 | execveat | ||
61 | exit | ||
62 | exit_group | ||
63 | faccessat | ||
64 | faccessat2 | ||
65 | fadvise64 | ||
66 | fadvise64_64 | ||
67 | fallocate | ||
68 | fanotify_init | ||
69 | fanotify_mark | ||
70 | fchdir | ||
71 | fchmod | ||
72 | fchmodat | ||
73 | fchown | ||
74 | fchown32 | ||
75 | fchownat | ||
76 | fcntl | ||
77 | fcntl64 | ||
78 | fdatasync | ||
79 | fgetxattr | ||
80 | finit_module | ||
81 | flistxattr | ||
82 | flock | ||
83 | fork | ||
84 | fremovexattr | ||
85 | fsconfig | ||
86 | fsetxattr | ||
87 | fsmount | ||
88 | fsopen | ||
89 | fspick | ||
90 | fstat | ||
91 | fstat64 | ||
92 | fstatat64 | ||
93 | fstatfs | ||
94 | fstatfs64 | ||
95 | fsync | ||
96 | ftime | ||
97 | ftruncate | ||
98 | ftruncate64 | ||
99 | futex | ||
100 | futex_time64 | ||
101 | futex_waitv | ||
102 | futimesat | ||
103 | get_kernel_syms | ||
104 | get_mempolicy | ||
105 | get_robust_list | ||
106 | get_thread_area | ||
107 | getcpu | ||
108 | getcwd | ||
109 | getdents | ||
110 | getdents64 | ||
111 | getegid | ||
112 | getegid32 | ||
113 | geteuid | ||
114 | geteuid32 | ||
115 | getgid | ||
116 | getgid32 | ||
117 | getgroups | ||
118 | getgroups32 | ||
119 | getitimer | ||
120 | getpeername | ||
121 | getpgid | ||
122 | getpgrp | ||
123 | getpid | ||
124 | getpmsg | ||
125 | getppid | ||
126 | getpriority | ||
127 | getrandom | ||
128 | getresgid | ||
129 | getresgid32 | ||
130 | getresuid | ||
131 | getresuid32 | ||
132 | getrlimit | ||
133 | getrusage | ||
134 | getsid | ||
135 | getsockname | ||
136 | getsockopt | ||
137 | gettid | ||
138 | gettimeofday | ||
139 | getuid | ||
140 | getuid32 | ||
141 | getxattr | ||
142 | gtty | ||
143 | idle | ||
144 | init_module | ||
145 | inotify_add_watch | ||
146 | inotify_init | ||
147 | inotify_init1 | ||
148 | inotify_rm_watch | ||
149 | io_cancel | ||
150 | io_destroy | ||
151 | io_getevents | ||
152 | io_pgetevents | ||
153 | io_pgetevents_time64 | ||
154 | io_setup | ||
155 | io_submit | ||
156 | io_uring_enter | ||
157 | io_uring_register | ||
158 | io_uring_setup | ||
159 | ioctl | ||
160 | ioperm | ||
161 | iopl | ||
162 | ioprio_get | ||
163 | ioprio_set | ||
164 | ipc | ||
165 | kcmp | ||
166 | kexec_file_load | ||
167 | kexec_load | ||
168 | keyctl | ||
169 | kill | ||
170 | landlock_add_rule | ||
171 | landlock_create_ruleset | ||
172 | landlock_restrict_self | ||
173 | lchown | ||
174 | lchown32 | ||
175 | lgetxattr | ||
176 | link | ||
177 | linkat | ||
178 | listen | ||
179 | listxattr | ||
180 | llistxattr | ||
181 | lock | ||
182 | lookup_dcookie | ||
183 | lremovexattr | ||
184 | lseek | ||
185 | lsetxattr | ||
186 | lstat | ||
187 | lstat64 | ||
188 | madvise | ||
189 | mbind | ||
190 | membarrier | ||
191 | memfd_create | ||
192 | migrate_pages | ||
193 | mincore | ||
194 | mkdir | ||
195 | mkdirat | ||
196 | mknod | ||
197 | mknodat | ||
198 | mlock | ||
199 | mlock2 | ||
200 | mlockall | ||
201 | mmap | ||
202 | mmap2 | ||
203 | modify_ldt | ||
204 | mount | ||
205 | mount_setattr | ||
206 | move_mount | ||
207 | move_pages | ||
208 | mprotect | ||
209 | mpx | ||
210 | mq_getsetattr | ||
211 | mq_notify | ||
212 | mq_open | ||
213 | mq_timedreceive | ||
214 | mq_timedreceive_time64 | ||
215 | mq_timedsend | ||
216 | mq_timedsend_time64 | ||
217 | mq_unlink | ||
218 | mremap | ||
219 | msgctl | ||
220 | msgget | ||
221 | msgrcv | ||
222 | msgsnd | ||
223 | msync | ||
224 | munlock | ||
225 | munlockall | ||
226 | munmap | ||
227 | name_to_handle_at | ||
228 | nanosleep | ||
229 | newfstatat | ||
230 | nfsservctl | ||
231 | nice | ||
232 | oldfstat | ||
233 | oldlstat | ||
234 | oldolduname | ||
235 | oldstat | ||
236 | olduname | ||
237 | open | ||
238 | open_by_handle_at | ||
239 | open_tree | ||
240 | openat | ||
241 | openat2 | ||
242 | pause | ||
243 | pciconfig_iobase | ||
244 | pciconfig_read | ||
245 | pciconfig_write | ||
246 | perf_event_open | ||
247 | personality | ||
248 | pidfd_getfd | ||
249 | pidfd_open | ||
250 | pidfd_send_signal | ||
251 | pipe | ||
252 | pipe2 | ||
253 | pivot_root | ||
254 | pkey_alloc | ||
255 | pkey_free | ||
256 | pkey_mprotect | ||
257 | poll | ||
258 | ppoll | ||
259 | ppoll_time64 | ||
260 | prctl | ||
261 | pread64 | ||
262 | preadv | ||
263 | preadv2 | ||
264 | prlimit64 | ||
265 | process_madvise | ||
266 | process_mrelease | ||
267 | process_vm_readv | ||
268 | process_vm_writev | ||
269 | prof | ||
270 | profil | ||
271 | pselect6 | ||
272 | pselect6_time64 | ||
273 | ptrace | ||
274 | putpmsg | ||
275 | pwrite64 | ||
276 | pwritev | ||
277 | pwritev2 | ||
278 | query_module | ||
279 | quotactl | ||
280 | quotactl_fd | ||
281 | read | ||
282 | readahead | ||
283 | readdir | ||
284 | readlink | ||
285 | readlinkat | ||
286 | readv | ||
287 | reboot | ||
288 | recv | ||
289 | recvfrom | ||
290 | recvmmsg | ||
291 | recvmmsg_time64 | ||
292 | recvmsg | ||
293 | remap_file_pages | ||
294 | removexattr | ||
295 | rename | ||
296 | renameat | ||
297 | renameat2 | ||
298 | request_key | ||
299 | restart_syscall | ||
300 | rmdir | ||
301 | rseq | ||
302 | rt_sigaction | ||
303 | rt_sigpending | ||
304 | rt_sigprocmask | ||
305 | rt_sigqueueinfo | ||
306 | rt_sigreturn | ||
307 | rt_sigsuspend | ||
308 | rt_sigtimedwait | ||
309 | rt_sigtimedwait_time64 | ||
310 | rt_tgsigqueueinfo | ||
311 | sched_get_priority_max | ||
312 | sched_get_priority_min | ||
313 | sched_getaffinity | ||
314 | sched_getattr | ||
315 | sched_getparam | ||
316 | sched_getscheduler | ||
317 | sched_rr_get_interval | ||
318 | sched_rr_get_interval_time64 | ||
319 | sched_setaffinity | ||
320 | sched_setattr | ||
321 | sched_setparam | ||
322 | sched_setscheduler | ||
323 | sched_yield | ||
324 | seccomp | ||
325 | security | ||
326 | select | ||
327 | semctl | ||
328 | semget | ||
329 | semop | ||
330 | semtimedop | ||
331 | semtimedop_time64 | ||
332 | send | ||
333 | sendfile | ||
334 | sendfile64 | ||
335 | sendmmsg | ||
336 | sendmsg | ||
337 | sendto | ||
338 | set_mempolicy | ||
339 | set_robust_list | ||
340 | set_thread_area | ||
341 | set_tid_address | ||
342 | setdomainname | ||
343 | setfsgid | ||
344 | setfsgid32 | ||
345 | setfsuid | ||
346 | setfsuid32 | ||
347 | setgid | ||
348 | setgid32 | ||
349 | setgroups | ||
350 | setgroups32 | ||
351 | sethostname | ||
352 | setitimer | ||
353 | setns | ||
354 | setpgid | ||
355 | setpriority | ||
356 | setregid | ||
357 | setregid32 | ||
358 | setresgid | ||
359 | setresgid32 | ||
360 | setresuid | ||
361 | setresuid32 | ||
362 | setreuid | ||
363 | setreuid32 | ||
364 | setrlimit | ||
365 | setsid | ||
366 | setsockopt | ||
367 | settimeofday | ||
368 | setuid | ||
369 | setuid32 | ||
370 | setxattr | ||
371 | sgetmask | ||
372 | shmat | ||
373 | shmctl | ||
374 | shmdt | ||
375 | shmget | ||
376 | shutdown | ||
377 | sigaction | ||
378 | sigaltstack | ||
379 | signal | ||
380 | signalfd | ||
381 | signalfd4 | ||
382 | sigpending | ||
383 | sigprocmask | ||
384 | sigreturn | ||
385 | sigsuspend | ||
386 | socket | ||
387 | socketcall | ||
388 | socketpair | ||
389 | splice | ||
390 | ssetmask | ||
391 | stat | ||
392 | stat64 | ||
393 | statfs | ||
394 | statfs64 | ||
395 | statx | ||
396 | stime | ||
397 | stty | ||
398 | swapoff | ||
399 | swapon | ||
400 | symlink | ||
401 | symlinkat | ||
402 | sync | ||
403 | sync_file_range | ||
404 | syncfs | ||
405 | sysfs | ||
406 | sysinfo | ||
407 | syslog | ||
408 | tee | ||
409 | tgkill | ||
410 | time | ||
411 | timer_create | ||
412 | timer_delete | ||
413 | timer_getoverrun | ||
414 | timer_gettime | ||
415 | timer_gettime64 | ||
416 | timer_settime | ||
417 | timer_settime64 | ||
418 | timerfd_create | ||
419 | timerfd_gettime | ||
420 | timerfd_gettime64 | ||
421 | timerfd_settime | ||
422 | timerfd_settime64 | ||
423 | times | ||
424 | tkill | ||
425 | truncate | ||
426 | truncate64 | ||
427 | tuxcall | ||
428 | ugetrlimit | ||
429 | ulimit | ||
430 | umask | ||
431 | umount | ||
432 | umount2 | ||
433 | uname | ||
434 | unlink | ||
435 | unlinkat | ||
436 | unshare | ||
437 | uselib | ||
438 | userfaultfd | ||
439 | ustat | ||
440 | utime | ||
441 | utimensat | ||
442 | utimensat_time64 | ||
443 | utimes | ||
444 | vfork | ||
445 | vhangup | ||
446 | vm86 | ||
447 | vm86old | ||
448 | vmsplice | ||
449 | vserver | ||
450 | wait4 | ||
451 | waitid | ||
452 | waitpid | ||
453 | write | ||
454 | writev | ||
diff --git a/contrib/syntax/lists/system_errnos.list b/contrib/syntax/lists/system_errnos.list new file mode 100644 index 000000000..f0f816943 --- /dev/null +++ b/contrib/syntax/lists/system_errnos.list | |||
@@ -0,0 +1,135 @@ | |||
1 | E2BIG | ||
2 | EACCES | ||
3 | EADDRINUSE | ||
4 | EADDRNOTAVAIL | ||
5 | EADV | ||
6 | EAFNOSUPPORT | ||
7 | EAGAIN | ||
8 | EALREADY | ||
9 | EBADE | ||
10 | EBADF | ||
11 | EBADFD | ||
12 | EBADMSG | ||
13 | EBADR | ||
14 | EBADRQC | ||
15 | EBADSLT | ||
16 | EBFONT | ||
17 | EBUSY | ||
18 | ECANCELED | ||
19 | ECHILD | ||
20 | ECHRNG | ||
21 | ECOMM | ||
22 | ECONNABORTED | ||
23 | ECONNREFUSED | ||
24 | ECONNRESET | ||
25 | EDEADLK | ||
26 | EDEADLOCK | ||
27 | EDESTADDRREQ | ||
28 | EDOM | ||
29 | EDOTDOT | ||
30 | EDQUOT | ||
31 | EEXIST | ||
32 | EFAULT | ||
33 | EFBIG | ||
34 | EHOSTDOWN | ||
35 | EHOSTUNREACH | ||
36 | EHWPOISON | ||
37 | EIDRM | ||
38 | EILSEQ | ||
39 | EINPROGRESS | ||
40 | EINTR | ||
41 | EINVAL | ||
42 | EIO | ||
43 | EISCONN | ||
44 | EISDIR | ||
45 | EISNAM | ||
46 | EKEYEXPIRED | ||
47 | EKEYREJECTED | ||
48 | EKEYREVOKED | ||
49 | EL2HLT | ||
50 | EL2NSYNC | ||
51 | EL3HLT | ||
52 | EL3RST | ||
53 | ELIBACC | ||
54 | ELIBBAD | ||
55 | ELIBEXEC | ||
56 | ELIBMAX | ||
57 | ELIBSCN | ||
58 | ELNRNG | ||
59 | ELOOP | ||
60 | EMEDIUMTYPE | ||
61 | EMFILE | ||
62 | EMLINK | ||
63 | EMSGSIZE | ||
64 | EMULTIHOP | ||
65 | ENAMETOOLONG | ||
66 | ENAVAIL | ||
67 | ENETDOWN | ||
68 | ENETRESET | ||
69 | ENETUNREACH | ||
70 | ENFILE | ||
71 | ENOANO | ||
72 | ENOATTR | ||
73 | ENOBUFS | ||
74 | ENOCSI | ||
75 | ENODATA | ||
76 | ENODEV | ||
77 | ENOENT | ||
78 | ENOEXEC | ||
79 | ENOKEY | ||
80 | ENOLCK | ||
81 | ENOLINK | ||
82 | ENOMEDIUM | ||
83 | ENOMEM | ||
84 | ENOMSG | ||
85 | ENONET | ||
86 | ENOPKG | ||
87 | ENOPROTOOPT | ||
88 | ENOSPC | ||
89 | ENOSR | ||
90 | ENOSTR | ||
91 | ENOSYS | ||
92 | ENOTBLK | ||
93 | ENOTCONN | ||
94 | ENOTDIR | ||
95 | ENOTEMPTY | ||
96 | ENOTNAM | ||
97 | ENOTRECOVERABLE | ||
98 | ENOTSOCK | ||
99 | ENOTSUP | ||
100 | ENOTTY | ||
101 | ENOTUNIQ | ||
102 | ENXIO | ||
103 | EOPNOTSUPP | ||
104 | EOVERFLOW | ||
105 | EOWNERDEAD | ||
106 | EPERM | ||
107 | EPFNOSUPPORT | ||
108 | EPIPE | ||
109 | EPROTO | ||
110 | EPROTONOSUPPORT | ||
111 | EPROTOTYPE | ||
112 | ERANGE | ||
113 | EREMCHG | ||
114 | EREMOTE | ||
115 | EREMOTEIO | ||
116 | ERESTART | ||
117 | ERFKILL | ||
118 | EROFS | ||
119 | ESHUTDOWN | ||
120 | ESOCKTNOSUPPORT | ||
121 | ESPIPE | ||
122 | ESRCH | ||
123 | ESRMNT | ||
124 | ESTALE | ||
125 | ESTRPIPE | ||
126 | ETIME | ||
127 | ETIMEDOUT | ||
128 | ETOOMANYREFS | ||
129 | ETXTBSY | ||
130 | EUCLEAN | ||
131 | EUNATCH | ||
132 | EUSERS | ||
133 | EWOULDBLOCK | ||
134 | EXDEV | ||
135 | EXFULL | ||