/
githubmirror
/
libseccomp
Обзор
Документация
Войти
/
githubmirror
/
libseccomp
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/arch-gperf-generate
41 строка
912 B
Jingyun Hua
gperf: fix sed syntax error
18 апр 2024, 16:38
18 апр 2024, 16:38
99bd9e5
Код
Авторство
О чём код?
#!/bin/bash # NOTE: changes to the arch_syscall_table struct in syscalls.h will affect # this script/gperf - BEWARE! ### # helper functions function exit_usage() { echo "usage: $0 <syscall_csv_file> <gperf_template>" exit 1 } ### # main # sanity check [[ ! -r "$1" || ! -r "$2" ]] && exit_usage sys_csv=$1 gperf_tmpl=$2 sys_csv_tmp=$(mktemp -t generate_syscalls_XXXXXX) # filter and prepare the syscall csv file cat $sys_csv | grep -v '^#' | nl -ba -s, -v0 | \ sed -e '{s|^[[:space:]]\+\([0-9]\+\),\([^,]\+\),\(.*\)|\2,\1,\3|;};' \ -e '{:r1; {s|\([^,]\+\)\(.*\)[^_]PNR|\1\2,__PNR_\1|g;}; t r1;};' \ -e '{s|,KV_|,SCMP_KV_|g;};' \ > $sys_csv_tmp [[ $? -ne 0 ]] && exit 1 # create the gperf file sed -e "/@@SYSCALLS_TABLE@@/r $sys_csv_tmp" \ -e '/@@SYSCALLS_TABLE@@/d' \ $gperf_tmpl > syscalls.perf [[ $? -ne 0 ]] && exit 1 # cleanup rm -f $sys_csv_tmp exit 0