// SPDX-License-Identifier: GPL-2.0 use proc_macro2::TokenStream; use quote::quote; /// Please see [`crate::export`] for documentation. pub(crate) fn export(f: syn::ItemFn) -> TokenStream { let name = &f.sig.ident; quote! { // This verifies that the function has the same signature as the declaration generated by // bindgen. It makes use of the fact that all branches of an if/else must have the same // type. const _: () = { if true { ::kernel::bindings::#name } else { #name }; }; #[no_mangle] #f } }