File: generate-bindings.sh

package info (click to toggle)
rust-virtio-bindings 0.2.6-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,124 kB
  • sloc: sh: 64; makefile: 4
file content (51 lines) | stat: -rwxr-xr-x 1,357 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Copyright 2025 Alyssa Ross <hi@alyssa.is>
# SPDX-License-Identifier: BSD-3-Clause OR Apache-2.0

headers="$(mktemp -d --suffix .generate-bindings)"
trap 'rm -rf -- "$headers"' EXIT

make -C "$1" INSTALL_HDR_PATH="$headers" headers_install

while read -r rust_arch clang_target; do
    mkdir -p "src/bindings/$rust_arch"

    for header in \
            virtio_blk \
            virtio_config \
            virtio_gpu \
            virtio_ids \
            virtio_input \
            virtio_mmio \
            virtio_net \
            virtio_ring \
            virtio_scsi \
            ; do \
	bindgen "$headers/include/linux/$header.h" \
	    -o "src/bindings/$rust_arch/$header.rs" \
	    --allowlist-file "$headers/include/linux/$header.h" \
	    --with-derive-default \
	    --with-derive-partialeq \
	    -- \
	    --target="$clang_target" \
	    -I"$headers/include"
    done
done <<EOF
arm arm-linux-gnueabi
aarch64 aarch64-linux-gnu
hexagon hexagon-linux-musl
loongarch64 loongarch64-linux-gnusf
m68k m68k-linux-gnu
mips mips-linux-gnu
mips32r6 mipsisa32r6-linux-gnu
mips64 mips64-linux-gnu
mips64r6 mipsisa64r6-linux-gnu
powerpc powerpc-linux-gnu
powerpc64 powerpc64-linux-gnu
riscv32 riscv32-linux-gnu
riscv64 riscv64-linux-gnu
s390x s390x-linux-gnu
sparc sparc-linux-gnu
sparc64 sparc64-linux-gnu
x86_64 x86_64-linux-gnu
x86 i686-linux-gnu
EOF