1# Filter preprocessor __NR_* macros and extract system call names.
2# Copyright (C) 2017-2021 Free Software Foundation, Inc.
3# This file is part of the GNU C Library.
4#
5# The GNU C Library is free software; you can redistribute it and/or
6# modify it under the terms of the GNU Lesser General Public
7# License as published by the Free Software Foundation; either
8# version 2.1 of the License, or (at your option) any later version.
9#
10# The GNU C Library is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13# Lesser General Public License for more details.
14#
15# You should have received a copy of the GNU Lesser General Public
16# License along with the GNU C Library; if not, see
17# <https://www.gnu.org/licenses/>.
18
19# Skip reserved system calls.
20/^#define __NR_(unused|reserved)[0-9]+ / {
21    next;
22}
23
24# Skip pseudo-system calls which describe ranges.
25/^#define __NR_(syscalls|arch_specific_syscall|(OABI_)?SYSCALL_BASE|SYSCALL_MASK) / {
26    next;
27}
28/^#define __NR_(|64_|[NO]32_)Linux(_syscalls)? / {
29    next;
30}
31
32# Print the remaining _NR_* macros as system call names.
33/^#define __NR_/ {
34    print substr($2, 6);
35}
36