| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/bin/sh
- # SPDX-License-Identifier: GPL-2.0
- ATOMICDIR=$(dirname $0)
- . ${ATOMICDIR}/atomic-tbl.sh
- #gen_proto_order_variant(meta, pfx, name, sfx, order, atomic, int, 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 int="$1"; shift
- local atomicname="${atomic}_${pfx}${name}${sfx}${order}"
- local ret="$(gen_ret_type "${meta}" "${int}")"
- local params="$(gen_params "${int}" "${atomic}" "$@")"
- local args="$(gen_args "$@")"
- local retstmt="$(gen_ret_stmt "${meta}")"
- cat <<EOF
- __rust_helper ${ret}
- rust_helper_${atomicname}(${params})
- {
- ${retstmt}${atomicname}(${args});
- }
- EOF
- }
- cat << EOF
- // SPDX-License-Identifier: GPL-2.0
- // Generated by $0
- // DO NOT MODIFY THIS FILE DIRECTLY
- /*
- * This file provides helpers for the various atomic functions for Rust.
- */
- #ifndef _RUST_ATOMIC_API_H
- #define _RUST_ATOMIC_API_H
- #include <linux/atomic.h>
- EOF
- grep '^[a-z]' "$1" | while read name meta args; do
- gen_proto "${meta}" "${name}" "atomic" "int" ${args}
- done
- grep '^[a-z]' "$1" | while read name meta args; do
- gen_proto "${meta}" "${name}" "atomic64" "s64" ${args}
- done
- cat <<EOF
- #endif /* _RUST_ATOMIC_API_H */
- EOF
|