On Fri, Jun 14, 2024 at 11:40:47AM +0100, Mark Rutland wrote: [...] > > +#gen_proto_order_variant(meta, pfx, name, sfx, order, atomic, ty, int, raw, arg...) > > +gen_proto_order_variant() > > +{ > > + local meta="$1"; shift > > + local pfx="$1"; shift > > + local name="$1"; shift > > + local sfx="$1"; shift > > + local order="$1"; shift > > + local atomic="$1"; shift > > + local ty="$1"; shift > > + local int="$1"; shift > > + local raw="$1"; shift > > + > > + local fn_name="${raw}${pfx}${name}${sfx}${order}" > > + local atomicname="${raw}${atomic}_${pfx}${name}${sfx}${order}" > > + > > + local ret="$(gen_ret_type "${meta}" "${int}")" > > + local params="$(gen_params "${int}" $@)" > > + local args="$(gen_args "$@")" > > + local retstmt="$(gen_ret_stmt "${meta}")" > > + > > +cat <<EOF > > + /// See \`${atomicname}\`. > > + #[inline(always)] > > + pub fn ${fn_name}(&self${params}) ${ret}{ > > + // SAFETY:\`self.0.get()\` is a valid pointer. > > + unsafe { > > + ${retstmt}${atomicname}(${args}); > > + } > > + } > > +EOF > > +} > > AFAICT the 'ty' argument (AtomicI32/AtomicI64) isn't used and can be > removed. > Good catch. > Likewise for 'raw'. > > > + > > +cat << EOF > > +// SPDX-License-Identifier: GPL-2.0 > > + > > +//! Generated by $0 > > +//! DO NOT MODIFY THIS FILE DIRECTLY > > + > > +use super::*; > > +use crate::bindings::*; > > + > > +impl AtomicI32 { > > +EOF > > + > > +grep '^[a-z]' "$1" | while read name meta args; do > > + gen_proto "${meta}" "${name}" "atomic" "AtomicI32" "i32" "" ${args} > > With 'ty' and 'raw' gone, this'd be: > > gen_proto "${meta}" "${name}" "atomic" "i32" ${args} > > > +done > > + > > +cat << EOF > > +} > > + > > +impl AtomicI64 { > > +EOF > > + > > +grep '^[a-z]' "$1" | while read name meta args; do > > + gen_proto "${meta}" "${name}" "atomic64" "AtomicI64" "i64" "" ${args} > > With 'ty' and 'raw' gone, this'd be: > > gen_proto "${meta}" "${name}" "atomic64" "i64" ${args} > All fixed locally, thanks! Regards, Boqun > Mark. > > > +done > > + > > +cat << EOF > > +} > > + > > +EOF > > -- > > 2.45.2 > >