diff options
author | Marcel Apfelbaum <marcel@redhat.com> | 2018-02-14 19:35:27 +0200 |
---|---|---|
committer | Marcel Apfelbaum <marcel@redhat.com> | 2018-02-19 13:03:24 +0200 |
commit | e1c5f1f04a0857bd030a8917050ac5a61f42e5ab (patch) | |
tree | 5e927fe9a8161c5e4e56a2f9a5c179b0202fe124 | |
parent | edab56321a0da3337adc3f9605d097d2606ab12c (diff) | |
download | qemu-e1c5f1f04a0857bd030a8917050ac5a61f42e5ab.zip qemu-e1c5f1f04a0857bd030a8917050ac5a61f42e5ab.tar.gz qemu-e1c5f1f04a0857bd030a8917050ac5a61f42e5ab.tar.bz2 |
scripts/update-linux-headers: import pvrdma headers
Modify the script to import the headers used by the pvrdma device.
Part of them are interfaces between the guest driver and the device,
import them under include/standart-headers/drivers/infiniband/... .
Remove the unused functions from pvrdma_verbs.h avoiding the
unnecessary import of several infiniband/networking/other headers.
Reviewed-by: Gal Hammer <ghammer@redhat.com>
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
-rwxr-xr-x | scripts/update-linux-headers.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh index 135a10d..be06570 100755 --- a/scripts/update-linux-headers.sh +++ b/scripts/update-linux-headers.sh @@ -38,6 +38,7 @@ cp_portable() { -e 'linux/if_ether' \ -e 'input-event-codes' \ -e 'sys/' \ + -e 'pvrdma_verbs' \ > /dev/null then echo "Unexpected #include in input file $f". @@ -46,6 +47,7 @@ cp_portable() { header=$(basename "$f"); sed -e 's/__u\([0-9][0-9]*\)/uint\1_t/g' \ + -e 's/u\([0-9][0-9]*\)/uint\1_t/g' \ -e 's/__s\([0-9][0-9]*\)/int\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' \ @@ -56,6 +58,7 @@ cp_portable() { -e 's/__inline__/inline/' \ -e '/sys\/ioctl.h/d' \ -e 's/SW_MAX/SW_MAX_/' \ + -e 's/atomic_t/int/' \ "$f" > "$to/$header"; } @@ -147,6 +150,33 @@ for i in "$tmpdir"/include/linux/*virtio*.h "$tmpdir/include/linux/input.h" \ cp_portable "$i" "$output/include/standard-headers/linux" done +rm -rf "$output/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma" +mkdir -p "$output/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma" + +# Remove the unused functions from pvrdma_verbs.h avoiding the unnecessary +# import of several infiniband/networking/other headers +tmp_pvrdma_verbs="$tmpdir/pvrdma_verbs.h" +# Parse the entire file instead of single lines to match +# function declarations expanding over multiple lines +# and strip the declarations starting with pvrdma prefix. +sed -e '1h;2,$H;$!d;g' -e 's/[^};]*pvrdma[^(| ]*([^)]*);//g' \ + "$linux/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h" > \ + "$tmp_pvrdma_verbs"; + +for i in "$linux/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h" \ + "$linux/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h" \ + "$tmp_pvrdma_verbs"; do \ + cp_portable "$i" \ + "$output/include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/" +done + +rm -rf "$output/include/standard-headers/rdma/" +mkdir -p "$output/include/standard-headers/rdma/" +for i in "$tmpdir/include/rdma/vmw_pvrdma-abi.h"; do + cp_portable "$i" \ + "$output/include/standard-headers/rdma/" +done + cat <<EOF >$output/include/standard-headers/linux/types.h /* For QEMU all types are already defined via osdep.h, so this * header does not need to do anything. |