Package: hotplug
Version: 0.0.20040329-24
Severity: normal

Please use this patch from Ubuntu to include grepmap support in the
startup scripts.
This makes start up a lot faster.
grepmap is not in Debian yet, but will be soon.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.11-1-686-smp
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages hotplug depends on:
ii  bash                         3.0-15      The GNU Bourne Again SHell
ii  debconf                      1.4.52      Debian configuration management sy
ii  grep                         2.5.1.ds1-5 GNU grep, egrep and fgrep
ii  module-init-tools            3.2-pre1-2  tools for managing Linux kernel mo
ii  modutils                     2.4.27.0-3  Linux module utilities
ii  procps                       1:3.2.5-1   /proc file system utilities
ii  sed                          4.1.4-2     The GNU sed stream editor

Versions of packages hotplug recommends:
ii  ifupdown              0.6.7              high level tools to configure netw
ii  pciutils              1:2.1.11-15ubuntu5 Linux PCI Utilities
ii  usbutils              0.71-5             USB console utilities

-- debconf information excluded
diff -ruN hotplug-2004_03_29~/etc/hotplug/hotplug.functions 
hotplug-2004_03_29/etc/hotplug/hotplug.functions
--- hotplug-2004_03_29~/etc/hotplug/hotplug.functions   2004-10-31 
16:20:05.000000000 +0000
+++ hotplug-2004_03_29/etc/hotplug/hotplug.functions    2004-11-01 
11:01:42.901449544 +0000
@@ -120,9 +120,13 @@
        esac
     fi
 
-    # try parsing by shell scripts if no luck yet
+    # try parsing by grepmap or shell scripts if no luck yet
     if [ "$DRIVERS" = "" ]; then
-       ${TYPE}_map_modules < $FILENAME
+       if [ -x /sbin/grepmap -a -n "$GREPMAP_ARGS" ]; then
+           DRIVERS=`/sbin/grepmap --${TYPE}map --file=$FILENAME $GREPMAP_ARGS`
+       else
+           ${TYPE}_map_modules < $FILENAME
+       fi
     fi
 
     # FIXME remove dups and blacklisted modules from $DRIVERS here
diff -ruN hotplug-2004_03_29~/etc/hotplug/ieee1394.agent 
hotplug-2004_03_29/etc/hotplug/ieee1394.agent
--- hotplug-2004_03_29~/etc/hotplug/ieee1394.agent      2004-10-31 
16:20:04.000000000 +0000
+++ hotplug-2004_03_29/etc/hotplug/ieee1394.agent       2004-11-01 
10:49:39.521420024 +0000
@@ -45,6 +45,7 @@
 device_vendor_id=$((0x$VENDOR_ID))
 device_specifier_id=$((0x$SPECIFIER_ID))
 device_version=$((0x$VERSION))
+GREPMAP_ARGS="0x$VENDOR_ID 0x$SPECIFIER_ID 0x$VERSION"
 
 MATCH_VENDOR_ID=0x0001
 MATCH_SPECIFIER_ID=0x0004
diff -ruN hotplug-2004_03_29~/etc/hotplug/input.agent 
hotplug-2004_03_29/etc/hotplug/input.agent
--- hotplug-2004_03_29~/etc/hotplug/input.agent 2004-10-31 16:20:03.000000000 
+0000
+++ hotplug-2004_03_29/etc/hotplug/input.agent  2004-11-01 11:01:00.896835216 
+0000
@@ -82,10 +82,16 @@
        i_vendor=$((0x$2))
        i_product=$((0x$3))
        i_version=$((0x$4))
+       GREPMAP_ARGS="0x$1 0x$2 0x$3 0x$4"
+    else
+       GREPMAP_ARGS="0 0 0 0"
     fi
 
     if [ "$EV" != "" ]; then
        i_evBits=$((0x$EV))
+       GREPMAP_ARGS="$GREPMAP_ARGS 0x$EV"
+    else
+       GREPMAP_ARGS="$GREPMAP_ARGS 0"
     fi
 
     input_join_words i_keyBits "$KEY"
@@ -95,6 +101,7 @@
     input_join_words i_ledBits "$LED"
     input_join_words i_sndBits "$SND"
     input_join_words i_ffBits  "$FF"
+    GREPMAP_ARGS="$GREPMAP_ARGS ${i_keyBits:-0} ${i_relBits:-0} 
${i_absBits:-0} ${i_mscBits:-0} ${i_ledBits:-0} ${i_sndBits:-0} ${i_ffBits:-0}"
 }
 
 INPUT_DEVICE_ID_MATCH_BUS=1
diff -ruN hotplug-2004_03_29~/etc/hotplug/pci.agent 
hotplug-2004_03_29/etc/hotplug/pci.agent
--- hotplug-2004_03_29~/etc/hotplug/pci.agent   2004-10-31 16:20:03.000000000 
+0000
+++ hotplug-2004_03_29/etc/hotplug/pci.agent    2004-11-01 10:49:15.004147216 
+0000
@@ -64,10 +64,12 @@
     set $(echo $PCI_ID | sed -e 's/\([^:]*\):\(.*\)/\1 \2/')
     pci_id_vendor=$((0x$1))
     pci_id_device=$((0x$2))
+    GREPMAP_ARGS="0x$1 0x$2"
 
     set $(echo $PCI_SUBSYS_ID | sed -e 's/\([^:]*\):\(.*\)/\1 \2/')
     pci_subid_vendor=$((0x$1))
     pci_subid_device=$((0x$2))
+    GREPMAP_ARGS="$GREPMAP_ARGS 0x$1 0x$2 0x$PCI_CLASS"
 }
 
 PCI_ANY=$((0xffffffff))
diff -ruN hotplug-2004_03_29~/etc/hotplug/usb.agent 
hotplug-2004_03_29/etc/hotplug/usb.agent
--- hotplug-2004_03_29~/etc/hotplug/usb.agent   2004-10-31 16:20:04.000000000 
+0000
+++ hotplug-2004_03_29/etc/hotplug/usb.agent    2004-11-01 11:00:06.474108728 
+0000
@@ -183,6 +183,7 @@
     usb_idVendor=$((0x$1))
     usb_idProduct=$((0x$2))
     usb_bcdDevice=$((0x$3))
+    GREPMAP_ARGS="0x$1 0x$2 0x$3"
 
     if [ "$TYPE" != "" ]; then
        IFS=/
@@ -190,16 +191,22 @@
        usb_bDeviceClass=$1
         usb_bDeviceSubClass=$2
         usb_bDeviceProtocol=$3
+       GREPMAP_ARGS="$GREPMAP_ARGS $(printf "0x%x 0x%x 0x%x" $1 $2 $3)"
        IFS="$DEFAULT_IFS"
     elif [ -r $SYSFS/$DEVPATH/bDeviceClass ]; then
-       usb_bDeviceClass=$((0x$(cat $SYSFS/$DEVPATH/bDeviceClass)))
-       usb_bDeviceSubClass=$((0x$(cat $SYSFS/$DEVPATH/bDeviceSubClass)))
-       usb_bDeviceProtocol=$((0x$(cat $SYSFS/$DEVPATH/bDeviceProtocol)))
+       _bDeviceClass="0x$(cat $SYSFS/$DEVPATH/bDeviceClass)"
+       _bDeviceSubClass="0x$(cat $SYSFS/$DEVPATH/bDeviceSubClass)"
+       _bDeviceProtocol="0x$(cat $SYSFS/$DEVPATH/bDeviceProtocol)"
+       usb_bDeviceClass=$(($_bDeviceClass))
+       usb_bDeviceSubClass=$(($_bDeviceSubClass))
+       usb_bDeviceProtocol=$(($_bDeviceProtocol))
+       GREPMAP_ARGS="$GREPMAP_ARGS $_bDeviceClass $_bDeviceSubClass 
$_bDeviceProtocol"
     else
        # out-of-range values
        usb_bDeviceClass=1000
        usb_bDeviceSubClass=1000
        usb_bDeviceProtocol=1000
+       GREPMAP_ARGS="$GREPMAP_ARGS 0xffff 0xffff 0xffff"
     fi
 
     if [ "$INTERFACE" != "" ]; then
@@ -208,16 +215,22 @@
        usb_bInterfaceClass=$1
        usb_bInterfaceSubClass=$2
        usb_bInterfaceProtocol=$3
+       GREPMAP_ARGS="$GREPMAP_ARGS $(printf "0x%x 0x%x 0x%x" $1 $2 $3)"
        IFS="$DEFAULT_IFS"
     elif [ -r $SYSFS/$DEVPATH/bInterfaceClass ]; then
-       usb_bInterfaceClass=$((0x$(cat $SYSFS/$DEVPATH/bInterfaceClass)))
-       usb_bInterfaceSubClass=$((0x$(cat $SYSFS/$DEVPATH/bInterfaceSubClass)))
-       usb_bInterfaceProtocol=$((0x$(cat $SYSFS/$DEVPATH/bInterfaceProtocol)))
+       _bInterfaceClass="0x$(cat $SYSFS/$DEVPATH/bInterfaceClass)"
+       _bInterfaceSubClass="0x$(cat $SYSFS/$DEVPATH/bInterfaceSubClass)"
+       _bInterfaceProtocol="0x$(cat $SYSFS/$DEVPATH/bInterfaceProtocol)"
+       usb_bInterfaceClass=$(($_bInterfaceClass))
+       usb_bInterfaceSubClass=$(($_bInterfaceSubClass))
+       usb_bInterfaceProtocol=$(($_bInterfaceProtocol))
+       GREPMAP_ARGS="$GREPMAP_ARGS $_bInterfaceClass $_bInterfaceSubClass 
$_bInterfaceProtocol"
     else
        # out-of-range values
        usb_bInterfaceClass=1000
        usb_bInterfaceSubClass=1000
        usb_bInterfaceProtocol=1000
+       GREPMAP_ARGS="$GREPMAP_ARGS 0xffff 0xffff 0xffff"
     fi
 }
 

Reply via email to