qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 15/17] scripts: add arch specific standard-header


From: Michael S. Tsirkin
Subject: [Qemu-devel] [PATCH v2 15/17] scripts: add arch specific standard-headers
Date: Sun, 15 Feb 2015 12:39:25 +0100

Move virtio header copying logic to a function,
use that to copy arch specific virtio headers.

Signed-off-by: Michael S. Tsirkin <address@hidden>
---
 scripts/update-linux-headers.sh | 56 ++++++++++++++++++++++++-----------------
 1 file changed, 33 insertions(+), 23 deletions(-)

diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh
index 9654553..1be4d83 100755
--- a/scripts/update-linux-headers.sh
+++ b/scripts/update-linux-headers.sh
@@ -28,6 +28,36 @@ if [ -z "$output" ]; then
     output="$PWD"
 fi
 
+cp_virtio() {
+    from=$1
+    to=$2
+    virtio=$(find "$from" -name '*virtio*h')
+    if [ "$virtio" ]; then
+        rm -rf "$to"
+        mkdir -p "$to"
+        for f in $virtio; 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/' \
+                "$f" > "$to/$header";
+        done
+    fi
+}
+
 # This will pick up non-directories too (eg "Kconfig") but we will
 # ignore them in the next loop.
 ARCHLIST=$(cd "$linux/arch" && echo *)
@@ -57,6 +87,8 @@ for arch in $ARCHLIST; do
     if [ $arch = powerpc ]; then
         cp "$tmpdir/include/asm/epapr_hcalls.h" 
"$output/linux-headers/asm-powerpc/"
     fi
+
+    cp_virtio "$tmpdir/include/asm" 
"$output/include/standard-headers/asm-$arch"
 done
 
 rm -rf "$output/linux-headers/linux"
@@ -83,29 +115,7 @@ cat <<EOF >$output/linux-headers/linux/virtio_ring.h
 #include "standard-headers/sys/virtio_ring.h"
 EOF
 
-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
+cp_virtio "$tmpdir/include/linux/" "$output/include/standard-headers/sys"
 
 cat <<EOF >$output/include/standard-headers/sys/types.h
 #include <inttypes.h>
-- 
MST




reply via email to

[Prev in Thread] Current Thread [Next in Thread]