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 kernel_loader bindgen bindings. 7*bb4ee6a4SAndroid Build Coastguard Worker 8*bb4ee6a4SAndroid Build Coastguard Workerset -euo pipefail 9*bb4ee6a4SAndroid Build Coastguard Workercd "$(dirname "${BASH_SOURCE[0]}")/.." 10*bb4ee6a4SAndroid Build Coastguard Worker 11*bb4ee6a4SAndroid Build Coastguard Workersource tools/impl/bindgen-common.sh 12*bb4ee6a4SAndroid Build Coastguard Worker 13*bb4ee6a4SAndroid Build Coastguard WorkerKERNEL_LOADER_EXTRA="// Added by kernel_loader/bindgen.sh 14*bb4ee6a4SAndroid Build Coastguard Workeruse zerocopy::AsBytes; 15*bb4ee6a4SAndroid Build Coastguard Workeruse zerocopy::FromBytes; 16*bb4ee6a4SAndroid Build Coastguard Workeruse zerocopy::FromZeroes;" 17*bb4ee6a4SAndroid Build Coastguard Worker 18*bb4ee6a4SAndroid Build Coastguard Workerbindgen_generate \ 19*bb4ee6a4SAndroid Build Coastguard Worker --raw-line "${KERNEL_LOADER_EXTRA}" \ 20*bb4ee6a4SAndroid Build Coastguard Worker --allowlist-type='Elf32_Ehdr' \ 21*bb4ee6a4SAndroid Build Coastguard Worker --allowlist-type='Elf32_Phdr' \ 22*bb4ee6a4SAndroid Build Coastguard Worker --allowlist-type='Elf64_Ehdr' \ 23*bb4ee6a4SAndroid Build Coastguard Worker --allowlist-type='Elf64_Phdr' \ 24*bb4ee6a4SAndroid Build Coastguard Worker --allowlist-var='.+' \ 25*bb4ee6a4SAndroid Build Coastguard Worker --with-derive-custom "elf32_hdr=FromZeroes,FromBytes,AsBytes" \ 26*bb4ee6a4SAndroid Build Coastguard Worker --with-derive-custom "elf64_hdr=FromZeroes,FromBytes,AsBytes" \ 27*bb4ee6a4SAndroid Build Coastguard Worker --with-derive-custom "elf32_phdr=FromZeroes,FromBytes,AsBytes" \ 28*bb4ee6a4SAndroid Build Coastguard Worker --with-derive-custom "elf64_phdr=FromZeroes,FromBytes,AsBytes" \ 29*bb4ee6a4SAndroid Build Coastguard Worker "${BINDGEN_LINUX}/include/uapi/linux/elf.h" \ 30*bb4ee6a4SAndroid Build Coastguard Worker -- \ 31*bb4ee6a4SAndroid Build Coastguard Worker -isystem "${BINDGEN_LINUX}/include" \ 32*bb4ee6a4SAndroid Build Coastguard Worker | replace_linux_int_types \ 33*bb4ee6a4SAndroid Build Coastguard Worker > kernel_loader/src/elf.rs 34