From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Williams Date: Mon, 04 Jun 2001 17:18:31 +0000 Subject: hotplug remover support Message-Id: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: linux-hotplug@vger.kernel.org Is there any objection to the remover patch I submitted a while ago to the hotplug and usb-devel lists? It seems to help my design of applications that use USB devices, so I would like to get it integrated into the main hotplug repository. If there are specific objections, I can address them. If they don't get integrated, then I'll choose to package and distribute my patch on my own, along with my application, at least until there is an adequate equivilent. (Or until I find a better way.) I've attached a fresh copy, as the patch is very small. --=20 Steve Williams "The woods are lovely, dark and deep. steve@icarus.com But I have promises to keep, steve@picturel.com and lines to code before I sleep, http://www.picturel.com And lines to code before I sleep." Index: etc/hotplug/usb.agent =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3DRCS file: /cvsroot/linux-hotplug/admin/etc/hotplug/= usb.agent,v retrieving revision 1.12 diff -u -r1.12 usb.agent --- etc/hotplug/usb.agent 2001/04/24 15:07:33 1.12 +++ etc/hotplug/usb.agent 2001/05/23 00:35:47 @@ -18,6 +18,14 @@ # DEVFS=3D/proc/bus/usb # DEVICE=3D/proc/bus/usb/%03d/%03d # +# This script then adds the variable: +# +# REMOVER=3D/var/run/usb/ +# +# This is the path where the script would like to find a remover, if +# the target device needs one. This script is executed on remove if +# it is executable when the remove happens. +# # If usbdevfs is mounted on /proc/bus/usb, $DEVICE is a file which # can be read to get the device's current configuration descriptor. # (The "usbmodules" utility helps do that.) @@ -269,6 +277,11 @@ done } =20 +# +# declare a REMOVER name that the add action can use to create a +# remover, or that the remove action can use to execute a remover. +# +declare -rx REMOVER=3D/var/run/usb/`echo $DEVICE | sed -e 's;/;%;g'` =20 # # What to do with this USB hotplug event? @@ -281,6 +294,10 @@ FOUND=FAlse LABEL=3D"USB product $PRODUCT" =20 + if [ -e "$REMOVER" ]; then + rm -f "$REMOVER" + fi + # on 2.4 systems, modutils 2.4.2+ maintains MAP_CURRENT # ... otherwise we can't rely on it (sigh) case "$KERNEL" in @@ -320,6 +337,13 @@ exit 2 fi =20 + ;; + +remove) + if [ -x $REMOVER ]; then + $REMOVER + fi + rm -f $REMOVER ;; =20 *) Index: etc/hotplug/usb.rc =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3DRCS file: /cvsroot/linux-hotplug/admin/etc/hotplug/= usb.rc,v retrieving revision 1.8 diff -u -r1.8 usb.rc --- etc/hotplug/usb.rc 2001/03/22 04:52:56 1.8 +++ etc/hotplug/usb.rc 2001/05/23 00:35:47 @@ -134,6 +134,11 @@ return 1 fi =20 + # Create a directory to hold remover programs. Close it up so + # that only hotplug scripts can write to this directory. + mkdir /var/run/usb + chmod 0700 /var/run/usb + # hotplug events didn't fire during booting; # cope with devices that enumerated earlier # and may not have been fully configured. _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel