#! /bin/sh # Copyright (C) 2020-2022 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-netbsd.sh # Update the netbsd.xml file. # # NetBSD uses the same list of system calls on all architectures. # The list is defined in the sys/kern/syscalls.master file in the # NetBSD source tree. This file is used as an input to generate # several files that are also stored in NetBSD'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-netbsd.sh " exit 1 fi cat > netbsd.xml.tmp < EOF awk ' /MAXSYSCALL/ || /_SYS_SYSCALL_H_/ || /MAXSYSARGS/ || /syscall/ || /NSYSENT/ { next } /^#define/ { sub(/^SYS_/,"",$2); printf " \n" } /\/\* [0-9]* is obsolete [a-z_]* \*\// { printf " \n", $5, $2 } /\/\* [0-9]* is netbsd[0-9]* [a-z_]* \*\// { printf " \n", $4, $5, $2, $5 }' "$1" >> netbsd.xml.tmp cat >> netbsd.xml.tmp < EOF ../../move-if-change netbsd.xml.tmp netbsd.xml