eal: add internal ABI tag definition
Introduce the __rte_internal tag to mark internal ABI function which is used only by the drivers or other libraries. Like for __rte_experimental, this tag must be on a separate line before function proprotypes. Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
This commit is contained in:
parent
06d63eb5e4
commit
fba5af82ad
@ -111,6 +111,37 @@ check_experimental_tags() { # <patch>
|
|||||||
return $res
|
return $res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_internal_tags() { # <patch>
|
||||||
|
res=0
|
||||||
|
|
||||||
|
cat "$1" |awk '
|
||||||
|
BEGIN {
|
||||||
|
current_file = "";
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
/^+++ b\// {
|
||||||
|
current_file = $2;
|
||||||
|
}
|
||||||
|
/^+.*__rte_internal/ {
|
||||||
|
if (current_file ~ ".c$" ) {
|
||||||
|
print "Please only put __rte_internal tags in " \
|
||||||
|
"headers ("current_file")";
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
if ($1 != "+__rte_internal" || $2 != "") {
|
||||||
|
print "__rte_internal must appear alone on the line" \
|
||||||
|
" immediately preceding the return type of" \
|
||||||
|
" a function."
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
exit ret;
|
||||||
|
}' || res=1
|
||||||
|
|
||||||
|
return $res
|
||||||
|
}
|
||||||
|
|
||||||
number=0
|
number=0
|
||||||
range='origin/master..'
|
range='origin/master..'
|
||||||
quiet=false
|
quiet=false
|
||||||
@ -194,6 +225,14 @@ check () { # <patch> <commit> <title>
|
|||||||
ret=1
|
ret=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
! $verbose || printf '\nChecking __rte_internal tags:\n'
|
||||||
|
report=$(check_internal_tags "$tmpinput")
|
||||||
|
if [ $? -ne 0 ] ; then
|
||||||
|
$headline_printed || print_headline "$3"
|
||||||
|
printf '%s\n' "$report"
|
||||||
|
ret=1
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$tmpinput" != "$1" ]; then
|
if [ "$tmpinput" != "$1" ]; then
|
||||||
rm -f "$tmpinput"
|
rm -f "$tmpinput"
|
||||||
trap - INT
|
trap - INT
|
||||||
|
@ -19,4 +19,17 @@ __attribute__((section(".text.experimental")))
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef ALLOW_INTERNAL_API
|
||||||
|
|
||||||
|
#define __rte_internal \
|
||||||
|
__attribute__((error("Symbol is not public ABI"), \
|
||||||
|
section(".text.internal")))
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define __rte_internal \
|
||||||
|
__attribute__((section(".text.internal")))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* _RTE_COMPAT_H_ */
|
#endif /* _RTE_COMPAT_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user