Author: marcel Date: Wed Jun 25 15:22:14 2014 New Revision: 267870 URL: http://svnweb.freebsd.org/changeset/base/267870
Log: * Handle ++x as well as x++ while converting. * Add special case handling where normal conversion would not work (some APIs have special names) * Fix conversion for function calls involving ifnet Submitted by: Sreekanth Rupavatharam <rupav...@juniper.net> Obtained from: Juniper Networks, Inc. Modified: head/tools/ifnet/convert_drvapi.sh Modified: head/tools/ifnet/convert_drvapi.sh ============================================================================== --- head/tools/ifnet/convert_drvapi.sh Wed Jun 25 14:23:30 2014 (r267869) +++ head/tools/ifnet/convert_drvapi.sh Wed Jun 25 15:22:14 2014 (r267870) @@ -94,7 +94,7 @@ handle_set() { handle_inc() { line=$1 - inc=`echo $line | grep "$__ifp__->.*++"` + inc=`echo $line | grep "$__ifp__->.*++\|++$__ifp__->.*"` if [ ! -z "$inc" ] then word=`echo $line | awk -F"if_" '{ print $2 }'|awk -F"\+" '{ print $1}'` @@ -161,6 +161,17 @@ handle_and() { } +handle_toggle() { + line=$1 + if [ ! -z `echo $line | grep "\^="` ] + then + line=`echo $line | sed -e 's/'"$__ifp__"'->if_\(.*\) ^=\(.*\);/if_toggle\1('"$__ifp__"',\2);/g'` + return 0; + fi + return 1 + +} + # XXX - this needs updating handle_misc() { line=$1 @@ -179,6 +190,35 @@ handle_misc() { } +replace_str () +{ + line=$1 + orig=$2 + new=$3 + line=`echo $line | sed -e 's/'"$orig"'\(.*\)/'"$new"'\1/g'` + return 0; +} + +# Handle special cases which do not fall under regular patterns +handle_special () +{ + line=$1 + replace_str $line "(\*$__ifp__->if_input)" "if_input" + replace_str $line "if_setinit" "if_setinitfn" + replace_str $line "if_setioctl" "if_setioctlfn" + replace_str $line "if_getdrv_flags" "if_getdrvflags" + replace_str $line "if_setdrv_flagsbit" "if_setdrvflagbits" + replace_str $line "if_setstart" "if_setstartfn" + replace_str $line "if_sethwassistbit" "if_sethwassistbits" + replace_str $line "ifmedia_init" "ifmedia_init_drv" + replace_str $line "IFQ_DRV_IS_EMPTY(&$__ifp__->if_snd)" "if_sendq_empty($__ifp__)" + replace_str $line "IFQ_DRV_PREPEND(&$__ifp__->if_snd" "if_sendq_prepend($__ifp__" + replace_str $line "IFQ_SET_READY(&ifp->if_snd)" "if_setsendqready($__ifp__)" + line=`echo $line | sed -e 's/IFQ_SET_MAXLEN(&'$__ifp__'->if_snd, \(.*\))/if_setsendqlen('$__ifp__', \1)/g'` + line=`echo $line | sed -e 's/IFQ_DRV_DEQUEUE(&'$__ifp__'->if_snd, \(.*\))/\1 = if_dequeue('$__ifp__')/g'` + return 0 +} + if [ -e $file.tmp ] then rm $file.tmp @@ -201,9 +241,9 @@ do fi handle_set $line - + if [ $? != 0 ] - then + then handle_inc $line fi @@ -223,19 +263,26 @@ do fi if [ $? != 0 ] + then + handle_toggle $line + fi + if [ $? != 0 ] then handle_misc $line fi if [ $? != 0 ] then - if [ ! -z `echo $line | grep "$__ifp__->"` ] - then - line=`echo $line | sed -e 's:$: \/* '${FAIL_PAT}' *\/:g'` - fi + handle_special $line + fi + + if [ ! -z `echo $line | grep "$__ifp__->"` ] + then + line=`echo $line | sed -e 's:$: \/* '${FAIL_PAT}' *\/:g'` fi done + line=`echo "$line" | sed -e 's:VLAN_CAPABILITIES('$__ifp__'):if_vlancap('$__ifp__'):g'` # Replace the ifnet * with if_t if [ ! -z `echo $line | grep "struct ifnet"` ] then _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"