#! /bin/sh # Copyright (C) 2018-2023 Free Software Foundation, Inc. # # This file is part of GDB. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Usage: update-freebsd.sh # Update the freebsd.xml file. # # FreeBSD uses the same list of system calls on all architectures. # The list is defined in the sys/kern/syscalls.master file in the # FreeBSD source tree. This file is used as an input to generate # several files that are also stored in FreeBSD's source tree. This # script parses one of those generated files (sys/sys/syscall.h) # rather than syscalls.master as syscall.h is easier to parse. if [ $# -ne 1 ]; then echo "Error: Path to syscall.h missing. Aborting." echo "Usage: update-freebsd.sh " exit 1 fi year=$(date +%Y) cat > freebsd.xml.tmp < EOF awk ' /MAXSYSCALL/ { next } /^#define/ { sub(/^SYS_/,"",$2); printf " \n" } /\/\* [0-9]* is obsolete [a-z_]* \*\// { printf " \n", $5, $2 } /\/\* [0-9]* is freebsd[0-9]* [a-z_]* \*\// { printf " \n", $4, $5, $2, $5 }' "$1" >> freebsd.xml.tmp cat >> freebsd.xml.tmp < EOF ../../move-if-change freebsd.xml.tmp freebsd.xml