On Sun, 15 Feb 2015 12:38:34 +0100 "Michael S. Tsirkin" <m...@redhat.com> wrote:
> 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" : '.*/\(.*\)'); I think you could also use "basename $f" instead - that would be easier to read. > + 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> This is just about getting the uintxx_t types, right? If so, I think it is also sufficient to just include <stdint.h> instead. > +#include "qemu/compiler.h" > +EOF > +cat <<EOF >$output/include/standard-headers/sys/if_ether.h > +#define ETH_ALEN 6 > +EOF > + > rm -rf "$tmpdir" Reviewed-by: Thomas Huth <th...@linux.vnet.ibm.com>