#!/bin/sh
# SMART アレイコントローラ用のデバイスノードを作成するスクリプト
# 使用方法：
#   mkdev.ida [コントローラの数] [論理ボリュームの数] [パーティションの数]
#
# 引き数がない場合、スクリプトはほとんどの構成で適切な 1 コントローラ、
# 16 論理ボリューム、16 パーティション／ボリュームを前提にします。
#
# コントローラが五枚あり、それぞれ論理ボリュームを四つまで、ボリューム
# 毎のパーティションを最大八つとするなら、以下の通り指定します。
#
# mkdev.ida 5 4 8
#
# もちろん、上記のコマンドで行うことは、"mkdev.ida 5" を行うことに比べ、
# /dev/ida の中にデバイスノードがたくさん作られないということ以外の長
# 所はありません。
#
# 日本語訳：野本浩一 <hng@ps.ksky.ne.jp>

NR_CTLR=${1-1}
NR_VOL=${2-16}
NR_PART=${3-16}

if [ ! -d /dev/ida ]; then
	mkdir -p /dev/ida
fi

C=0; while [ $C -lt $NR_CTLR ]; do
	MAJ=`expr $C + 72`
	D=0; while [ $D -lt $NR_VOL ]; do
		P=0; while [ $P -lt $NR_PART ]; do
			MIN=`expr $D \* 16 + $P`
			if [ $P -eq 0 ]; then
				mknod /dev/ida/c${C}d${D} b $MAJ $MIN
			else
				mknod /dev/ida/c${C}d${D}p${P} b $MAJ $MIN
			fi
			P=`expr $P + 1`
		done
		D=`expr $D + 1`
	done
	C=`expr $C + 1`
done
