xref: /kvmtool/util/update_headers.sh (revision 2e99678314c2de76d54cdf4ff7ff318ac350cb21)
145b624beSAndre Przywara#!/bin/sh
245b624beSAndre Przywara
345b624beSAndre Przywara########################################################################
445b624beSAndre Przywara# Updates the kvmtool tree with up-to-date public header files from
545b624beSAndre Przywara# a Linux source tree.
645b624beSAndre Przywara# If no directory is given on the command line, it will try to find one
745b624beSAndre Przywara# using the lib/modules/`uname -r`/source link.
845b624beSAndre Przywara########################################################################
945b624beSAndre Przywara
109f520be5SDave Martinset -ue
119f520be5SDave Martin
1245b624beSAndre Przywaraif [ "$#" -ge 1 ]
1345b624beSAndre Przywarathen
1445b624beSAndre Przywara	LINUX_ROOT="$1"
1545b624beSAndre Przywaraelse
163baf13c7SDave Martin	LINUX_ROOT="/lib/modules/$(uname -r)/source"
1745b624beSAndre Przywarafi
1845b624beSAndre Przywara
193baf13c7SDave Martinif [ ! -d "$LINUX_ROOT/include/uapi/linux" ]
2045b624beSAndre Przywarathen
2145b624beSAndre Przywara	echo "$LINUX_ROOT does not seem to be valid Linux source tree."
2245b624beSAndre Przywara	echo "usage: $0 [path-to-Linux-source-tree]"
2345b624beSAndre Przywara	exit 1
2445b624beSAndre Przywarafi
2545b624beSAndre Przywara
263baf13c7SDave Martincp -- "$LINUX_ROOT/include/uapi/linux/kvm.h" include/linux
2745b624beSAndre Przywara
28292435bcSDave Martinunset KVMTOOL_PATH
29292435bcSDave Martin
30292435bcSDave Martincopy_optional_arch () {
31292435bcSDave Martin	local src="$LINUX_ROOT/arch/$arch/include/uapi/$1"
32292435bcSDave Martin
33292435bcSDave Martin	if [ -r "$src" ]
34292435bcSDave Martin	then
35292435bcSDave Martin		cp -- "$src" "$KVMTOOL_PATH/include/asm/"
36292435bcSDave Martin	fi
37292435bcSDave Martin}
38292435bcSDave Martin
39*2e996783SAnup Patelfor arch in arm64 mips powerpc riscv x86
4045b624beSAndre Przywarado
4145b624beSAndre Przywara	case "$arch" in
42292435bcSDave Martin		arm64)	KVMTOOL_PATH=arm/aarch64
43292435bcSDave Martin			copy_optional_arch asm/sve_context.h ;;
4445b624beSAndre Przywara		*) KVMTOOL_PATH=$arch ;;
4545b624beSAndre Przywara	esac
463baf13c7SDave Martin	cp -- "$LINUX_ROOT/arch/$arch/include/uapi/asm/kvm.h" \
473baf13c7SDave Martin		"$KVMTOOL_PATH/include/asm"
4845b624beSAndre Przywaradone
49