📄 ieee1394.agent
字号:
#!/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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -