ieee1394.agent

来自「这是关于usb等方面的热拔插源代码」· AGENT 代码 · 共 124 行

AGENT
124
字号
#!/bin/sh## IEEE1394-specific hotplug policy agent.## This should handle 2.4.10 (or later) IEEE1394 hotplugging, with a# consistent framework for adding device and driver specific treatments.## Kernel IEEE1394 params are:#	#	ACTION=add or remove#	VENDOR_ID=24 bit vendor id#	GUID=64 bit globally unique id#	SPEFICIER_ID=24 bit id of owner of specification#	VERSION=version of specification## See IEEE1212 for details on these parameters.## HISTORY:#	26-Mar-2002	Small cleanups to match other .agent files. (gkh)#	16-Sept-2001	Initial version from Kristian Hogsberg#			<hogsberg@users.sourceforge.net> (plus tweaks)## $Id: ieee1394.agent,v 1.12 2004/03/13 18:49:45 ukai Exp $#cd /etc/hotplug. ./hotplug.functions# DEBUG=yes export DEBUG# generated by modutils 2.4.9 or later, for 2.4.10 and later kernelsMAP_CURRENT=$MODULE_DIR/modules.ieee1394map# accumulates list of modules we may care aboutDRIVERS=if [ "$ACTION" = "" ]; then    mesg Bad IEEE1394 agent invocation    exit 1fidevice_vendor_id=$((0x$VENDOR_ID))device_specifier_id=$((0x$SPECIFIER_ID))device_version=$((0x$VERSION))MATCH_VENDOR_ID=0x0001MATCH_SPECIFIER_ID=0x0004MATCH_VERSION=0x0008## stdin is "modules.ieee1394map" syntax# on return, all matching modules were added to $DRIVERS#ieee1394_map_modules (){    local module ignored    # comment line lists (current) pci_device_id field names    read ignored    while read module match_flags vendor_id model_id specifier_id version    do	: check match for $module	# convert from hex to dec	match_flags=$(($match_flags))	vendor_id=$(($vendor_id)); model_id=$(($model_id))	specifier_id=$(($specifier_id)); version=$(($version))	: vendor_id $vendor_id $device_vendor_id	if [ $(($match_flags & $MATCH_VENDOR_ID)) -ne 0 -a $vendor_id -ne $device_vendor_id ]; then	    continue	fi	: specifier_id $specifier_id $device_specifier_id	if [ $(($match_flags & $MATCH_SPECIFIER_ID)) -ne 0 -a $specifier_id -ne $device_specifier_id ]; then	    continue	fi	: version $version $device_version	if [ $(($match_flags & $MATCH_VERSION)) -ne 0 -a $version != $device_version ]; then	    continue	fi        DRIVERS="$module $DRIVERS"    done}## What to do with this IEEE1394 hotplug event?#case "$ACTION" inadd)    LABEL="IEEE1394 product 0x$VENDOR_ID/0x$SPECIFIER_ID/0x$VERSION"    # on 2.4 systems, modutils maintains MAP_CURRENT    if [ -r $MAP_CURRENT ]; then    	load_drivers ieee1394 $MAP_CURRENT "$LABEL"    fi    if [ "$DRIVERS" = "" ]; then	mesg "... no drivers for $LABEL"	exit 2    fi    ;;remove)    ieee1394_map_modules < $MAP_CURRENT    for MODULE in $DRIVERS    do	if [ -x $HOTPLUG_DIR/ieee1394/$MODULE ]; then            $HOTPLUG_DIR/ieee1394/$MODULE	fi    done    ;;*)    debug_mesg "IEEE1394 '$ACTION' event not supported"    exit 1    ;;esac

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?