1*bb4ee6a4SAndroid Build Coastguard Worker#!/usr/bin/env bash 2*bb4ee6a4SAndroid Build Coastguard Worker# Copyright 2022 The ChromiumOS Authors 3*bb4ee6a4SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*bb4ee6a4SAndroid Build Coastguard Worker# found in the LICENSE file. 5*bb4ee6a4SAndroid Build Coastguard Worker# 6*bb4ee6a4SAndroid Build Coastguard Worker# Regenerate all bindgen-generated Rust bindings in the crosvm tree. 7*bb4ee6a4SAndroid Build Coastguard Worker# 8*bb4ee6a4SAndroid Build Coastguard Worker# This script expects to be executed from a full ChromeOS checkout so it has access to the kernel 9*bb4ee6a4SAndroid Build Coastguard Worker# and other repositories. Note that it must be run from OUTSIDE the chroot. 10*bb4ee6a4SAndroid Build Coastguard Worker 11*bb4ee6a4SAndroid Build Coastguard Workerset -e 12*bb4ee6a4SAndroid Build Coastguard Workercd "$(dirname "${BASH_SOURCE[0]}")/.." 13*bb4ee6a4SAndroid Build Coastguard Worker 14*bb4ee6a4SAndroid Build Coastguard Workersource tools/impl/bindgen-common.sh 15*bb4ee6a4SAndroid Build Coastguard Worker 16*bb4ee6a4SAndroid Build Coastguard Workerdie() { 17*bb4ee6a4SAndroid Build Coastguard Worker echo "$@" 18*bb4ee6a4SAndroid Build Coastguard Worker exit 1 19*bb4ee6a4SAndroid Build Coastguard Worker} 20*bb4ee6a4SAndroid Build Coastguard Worker 21*bb4ee6a4SAndroid Build Coastguard Workerdirs=( 22*bb4ee6a4SAndroid Build Coastguard Worker io_uring 23*bb4ee6a4SAndroid Build Coastguard Worker kernel_loader 24*bb4ee6a4SAndroid Build Coastguard Worker kvm_sys 25*bb4ee6a4SAndroid Build Coastguard Worker media/libvda 26*bb4ee6a4SAndroid Build Coastguard Worker net_sys 27*bb4ee6a4SAndroid Build Coastguard Worker vfio_sys 28*bb4ee6a4SAndroid Build Coastguard Worker virtio_sys 29*bb4ee6a4SAndroid Build Coastguard Worker vm_memory 30*bb4ee6a4SAndroid Build Coastguard Worker) 31*bb4ee6a4SAndroid Build Coastguard Worker 32*bb4ee6a4SAndroid Build Coastguard Workerfor d in "${dirs[@]}"; do 33*bb4ee6a4SAndroid Build Coastguard Worker echo "bindgen ${d}" 34*bb4ee6a4SAndroid Build Coastguard Worker "${d}"/bindgen.sh || die "Failed to generate bindings for ${d}" 35*bb4ee6a4SAndroid Build Coastguard Workerdone 36*bb4ee6a4SAndroid Build Coastguard Worker 37*bb4ee6a4SAndroid Build Coastguard Workerecho "Done!" 38