Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Jun 2011 15:22:45 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r223535 - head/tools/tools/bus_autoconf
Message-ID:  <201106251522.p5PFMjja012207@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Sat Jun 25 15:22:44 2011
New Revision: 223535
URL: http://svn.freebsd.org/changeset/base/223535

Log:
  - Need to respect the module name and the USB mode when accumulating device ID's.
  - Be more verbose on file seek failures. Allow a file size of zero.
  - Improve the wrapper shell.
  
  MFC after:	14 days

Modified:
  head/tools/tools/bus_autoconf/bus_autoconf.sh
  head/tools/tools/bus_autoconf/bus_load_file.c
  head/tools/tools/bus_autoconf/bus_usb.c

Modified: head/tools/tools/bus_autoconf/bus_autoconf.sh
==============================================================================
--- head/tools/tools/bus_autoconf/bus_autoconf.sh	Sat Jun 25 13:44:05 2011	(r223534)
+++ head/tools/tools/bus_autoconf/bus_autoconf.sh	Sat Jun 25 15:22:44 2011	(r223535)
@@ -28,6 +28,7 @@
 
 OS=FreeBSD
 DOLLAR=$
+OBJCOPY=objcopy
 
 cat <<EOF
 #
@@ -41,6 +42,7 @@ EOF
 
 rm -f bus_autoconf_format.bin
 rm -f bus_autoconf_args.txt
+rm -f bus_autoconf.ids
 
 for F in $*
 do
@@ -48,19 +50,19 @@ do
 G=$(basename ${F})
 
 # Format information
-objcopy -j bus_autoconf_format -O binary ${F} temp.ids 2> /dev/null
-[ -f temp.ids ] && cat temp.ids >> bus_autoconf_format.bin
+${OBJCOPY} -j bus_autoconf_format -O binary ${F} bus_autoconf.ids 2> /dev/null
+[ -f bus_autoconf.ids ] && cat bus_autoconf.ids >> bus_autoconf_format.bin
 
 # USB Host mode
-objcopy -j usb_host_id -O binary ${F} "usb_host_id,${G}" 2> /dev/null
+${OBJCOPY} -j usb_host_id -O binary ${F} "usb_host_id,${G}" 2> /dev/null
 [ -f "usb_host_id,${G}" ] && (echo -n " -i usb_host_id,${G}" >> bus_autoconf_args.txt)
 
 # USB Device mode
-objcopy -j usb_device_id -O binary ${F} "usb_device_id,${G}" 2> /dev/null
+${OBJCOPY} -j usb_device_id -O binary ${F} "usb_device_id,${G}" 2> /dev/null
 [ -f "usb_device_id,${G}" ] && (echo -n " -i usb_device_id,${G}" >> bus_autoconf_args.txt)
 
 # USB Dual mode
-objcopy -j usb_dual_id -O binary ${F} "usb_dual_id,${G}" 2> /dev/null
+${OBJCOPY} -j usb_dual_id -O binary ${F} "usb_dual_id,${G}" 2> /dev/null
 [ -f "usb_dual_id,${G}" ] && (echo -n " -i usb_dual_id,${G}" >> bus_autoconf_args.txt)
 
 done
@@ -69,4 +71,8 @@ done
 bus_autoconf -F bus_autoconf_format.bin $(cat bus_autoconf_args.txt)
 
 # Cleanup
-rm -f -- bus_autoconf_format.bin $(cat bus_autoconf_args.txt)
+rm -f -- \
+    $(cat bus_autoconf_args.txt) \
+    bus_autoconf_args.txt \
+    bus_autoconf_format.bin \
+    bus_autoconf.ids

Modified: head/tools/tools/bus_autoconf/bus_load_file.c
==============================================================================
--- head/tools/tools/bus_autoconf/bus_load_file.c	Sat Jun 25 13:44:05 2011	(r223534)
+++ head/tools/tools/bus_autoconf/bus_load_file.c	Sat Jun 25 15:22:44 2011	(r223535)
@@ -48,11 +48,15 @@ load_file(const char *fname, uint8_t **p
 		err(EX_NOINPUT, "Cannot open file '%s'", fname);
 
 	off = lseek(f, 0, SEEK_END);
-	if (off <= 0)
-		err(EX_NOINPUT, "Cannot seek to end of file");
-
-	if (lseek(f, 0, SEEK_SET) < 0)
-		err(EX_NOINPUT, "Cannot seek to beginning of file");
+	if (off < 0) {
+		err(EX_NOINPUT, "Cannot seek to "
+		    "end of file '%s'", fname);
+	}
+
+	if (lseek(f, 0, SEEK_SET) < 0) {
+		err(EX_NOINPUT, "Cannot seek to "
+		    "beginning of file '%s'", fname);
+	}
 
 	len = off;
 	if (len != off)

Modified: head/tools/tools/bus_autoconf/bus_usb.c
==============================================================================
--- head/tools/tools/bus_autoconf/bus_usb.c	Sat Jun 25 13:44:05 2011	(r223534)
+++ head/tools/tools/bus_autoconf/bus_usb.c	Sat Jun 25 15:22:44 2011	(r223535)
@@ -276,6 +276,10 @@ usb_dump(struct usb_device_id *id, uint3
 					break;
 				if (id[n].idVendor != id[0].idVendor)
 					break;
+				if (strcmp(id[n].module_name, id[0].module_name))
+					break;
+				if (strcmp(id[n].module_mode, id[0].module_mode))
+					break;
 				n++;
 			}
 		}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106251522.p5PFMjja012207>