Server IP : 104.21.38.3 / Your IP : 108.162.226.2 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/src/linux-headers-5.15.0-142/scripts/ |
Upload File : |
#!/bin/sh # SPDX-License-Identifier: GPL-2.0-only # # Generate a syscall number header. # # Each line of the syscall table should have the following format: # # NR ABI NAME [NATIVE] [COMPAT] # # NR syscall number # ABI ABI name # NAME syscall name # NATIVE native entry point (optional) # COMPAT compat entry point (optional) set -e usage() { echo >&2 "usage: $0 [--abis ABIS] [--emit-nr] [--offset OFFSET] [--prefix PREFIX] INFILE OUTFILE" >&2 echo >&2 echo >&2 " INFILE input syscall table" echo >&2 " OUTFILE output header file" echo >&2 echo >&2 "options:" echo >&2 " --abis ABIS ABI(s) to handle (By default, all lines are handled)" echo >&2 " --emit-nr Emit the macro of the number of syscalls (__NR_syscalls)" echo >&2 " --offset OFFSET The offset of syscall numbers" echo >&2 " --prefix PREFIX The prefix to the macro like __NR_<PREFIX><NAME>" exit 1 } # default unless specified by options abis= emit_nr= offset= prefix= while [ $# -gt 0 ] do case $1 in --abis) abis=$(echo "($2)" | tr ',' '|') shift 2;; --emit-nr) emit_nr=1 shift 1;; --offset) offset=$2 shift 2;; --prefix) prefix=$2 shift 2;; -*) echo "$1: unknown option" >&2 usage;; *) break;; esac done if [ $# -ne 2 ]; then usage fi infile="$1" outfile="$2" guard=_UAPI_ASM_$(basename "$outfile" | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g') grep -E "^[0-9A-Fa-fXx]+[[:space:]]+$abis" "$infile" | { echo "#ifndef $guard" echo "#define $guard" echo max=0 while read nr abi name native compat ; do max=$nr if [ -n "$offset" ]; then nr="($offset + $nr)" fi echo "#define __NR_$prefix$name $nr" done if [ -n "$emit_nr" ]; then echo echo "#ifdef __KERNEL__" echo "#define __NR_${prefix}syscalls $(($max + 1))" echo "#endif" fi echo echo "#endif /* $guard */" } > "$outfile"