It doesn't make sense to copy values manually: the only issue with getting headers from linux seems to be dealing with linux/types, we can easily fix that automatically while importing.
Signed-off-by: Michael S. Tsirkin <m...@redhat.com> --- scripts/update-linux-headers.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh index c8e026d..738e590 100755 --- a/scripts/update-linux-headers.sh +++ b/scripts/update-linux-headers.sh @@ -76,4 +76,37 @@ else cp "$linux/COPYING" "$output/linux-headers" fi + +rm -rf "$output/include/standard-headers/sys" +mkdir -p "$output/include/standard-headers/sys" +for f in $tmpdir/include/linux/virtio*h; do + if + grep '#include' "$f" | grep -v -e 'linux/virtio' \ + -e 'linux/types' \ + -e 'linux/if_ether' \ + > /dev/null + then + echo "Unexpected #include in input file $f". + exit 2 + fi + + header=$(expr "$f" : '.*/\(.*\)'); + sed -e 's/__u\([0-9][0-9]*\)/uint\1_t/g' \ + -e 's/__le\([0-9][0-9]*\)/uint\1_t/g' \ + -e 's/__be\([0-9][0-9]*\)/uint\1_t/g' \ + -e 's/<linux\/\([^>]*\)>/"standard-headers\/sys\/\1"/' \ + -e 's/__bitwise__//' \ + -e 's/__attribute__((packed))/QEMU_PACKED/' \ + "$tmpdir/include/linux/$header" > \ + "$output/include/standard-headers/sys/$header"; +done + +cat <<EOF >$output/include/standard-headers/sys/types.h +#include <inttypes.h> +#include "qemu/compiler.h" +EOF +cat <<EOF >$output/include/standard-headers/sys/if_ether.h +#define ETH_ALEN 6 +EOF + rm -rf "$tmpdir" -- MST