svn commit: r267870 - head/tools/ifnet

Marcel Moolenaar marcel at FreeBSD.org
Wed Jun 25 15:22:15 UTC 2014


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 <rupavath at 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


More information about the svn-src-head mailing list