62 lines · 1.2 KB · Shell
RawDownload
#!/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