aboutsummaryrefslogtreecommitdiffstats
path: root/src/ccw_init
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2006-09-27 19:59:05 +0000
committerBill Nottingham <notting@redhat.com>2006-09-27 19:59:05 +0000
commit225f7786a51745535128be4925eced71b2fa94f1 (patch)
tree6b2b59d0b5de909cf417e133d59c7d42cbfa7116 /src/ccw_init
parentb3d12d60e2ef7e1795b8b1177c1d28208bc06acd (diff)
downloadinitscripts-225f7786a51745535128be4925eced71b2fa94f1.tar
initscripts-225f7786a51745535128be4925eced71b2fa94f1.tar.gz
initscripts-225f7786a51745535128be4925eced71b2fa94f1.tar.bz2
initscripts-225f7786a51745535128be4925eced71b2fa94f1.tar.xz
initscripts-225f7786a51745535128be4925eced71b2fa94f1.zip
move ccwgroup initialization to a udev rule (#199139, #199655, #169161)
Diffstat (limited to 'src/ccw_init')
-rwxr-xr-xsrc/ccw_init42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/ccw_init b/src/ccw_init
new file mode 100755
index 00000000..707ae009
--- /dev/null
+++ b/src/ccw_init
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+[ -z "$DEVPATH" ] && exit 0
+[ "$SUBSYSTEM" != "ccw" ] && exit 0
+
+. /etc/init.d/functions
+
+. /etc/sysconfig/network-scripts/network-functions
+
+# First, determine our channel
+
+CHANNEL=${DEVPATH##*/}
+
+CONFIG=$(get_config_by_subchannel $CHANNEL)
+
+cd /etc/sysconfig/network-scripts
+
+source_config
+
+# SUBCHANNELS is only set on mainframe ccwgroup devices
+[ -z "$SUBCHANNELS" -o -z "$NETTYPE" ] && return
+DIR="/sys/bus/ccwgroup/drivers/$NETTYPE"
+SYSDIR="$DIR/${SUBCHANNELS//,*/}"
+[ ! -e $DIR/group ] && return
+echo "$SUBCHANNELS" > $DIR/group
+if [ -n "$PORTNAME" ]; then
+ if [ "$NETTYPE" = "lcs" ]; then
+ [ -e $SYSDIR/portno ] && echo "$PORTNAME" > $SYSDIR/portno
+ else
+ [ -e $SYSDIR/portname ] && echo "$PORTNAME" > $SYSDIR/portname
+ fi
+fi
+if [ "$NETTYPE" = "ctc" -a -n "$CTCPROT" ]; then
+ echo "$CTCPROT" > $SYSDIR/protocol
+fi
+if [ -n "$OPTIONS" ]; then
+
+ for i in $OPTIONS; do
+ echo "${i//*=/}" > "$SYSDIR/${i//=*/}"
+ done
+fi
+[ -e $SYSDIR/online ] && echo 1 > $SYSDIR/online