mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-18 15:30:21 +00:00
Update for CAM.
This commit is contained in:
parent
d96220589c
commit
712f3941ea
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=39249
186
etc/MAKEDEV
186
etc/MAKEDEV
@ -30,8 +30,7 @@
|
||||
#
|
||||
# Tapes:
|
||||
# wt* QIC-interfaced (e.g. not SCSI) 3M cartridge tape
|
||||
# st* "NEW type scsi tapes" (old driver uses the
|
||||
# block devices of the disks to get access)
|
||||
# sa* SCSI Sequential Access Devices
|
||||
# ft* QIC-40/QIC-80 3M cartridge tape (interfaced
|
||||
# via the floppy disk controller)
|
||||
#
|
||||
@ -39,7 +38,7 @@
|
||||
# wd* "Winchester" disk drives (ST506,IDE,ESDI,RLL,...)
|
||||
# wfd* "IDE floppy" disk drives (LS-120)
|
||||
# fd* "floppy" disk drives (3 1/2", 5 1/4")
|
||||
# sd* "SCSI disks"
|
||||
# da* "SCSI Direct Access Devices"
|
||||
# cd* "SCSI CD-ROM disks"
|
||||
# mcd* "Mitsumi CD-ROM disks"
|
||||
# scd* "Sony CD-ROM disks"
|
||||
@ -79,9 +78,9 @@
|
||||
#
|
||||
# SCSI devices (other than CD-ROM, tape and disk):
|
||||
# ssc The ``super scsi'' device
|
||||
# uk* "unknown" device (supports ioctl calls only)
|
||||
# worm* WORM driver
|
||||
# pt* Processor Type (HP scanner, as one example)
|
||||
# pass* CAM Passthrough device
|
||||
#
|
||||
# PC-CARD (previously called PCMCIA) support
|
||||
# card* PC-CARD slots
|
||||
@ -108,7 +107,7 @@
|
||||
# pci PCI configuration-space access from user mode
|
||||
# ipl ipfilter control devices (ipl, ipnat, ipstate, ipauth)
|
||||
#
|
||||
# $Id: MAKEDEV,v 1.169 1998/09/09 18:59:46 sos Exp $
|
||||
# $Id: MAKEDEV,v 1.170 1998/09/10 18:47:20 phk Exp $
|
||||
#
|
||||
|
||||
PATH=/sbin:/bin/:/usr/bin:/usr/sbin:$PATH
|
||||
@ -179,9 +178,6 @@ dkcompatslice=0
|
||||
# Raw slice for disks
|
||||
dkrawslice=1
|
||||
|
||||
# Control bit for SCSI
|
||||
scsictl=$((1 << 29))
|
||||
|
||||
# Standard umasks
|
||||
disk_umask=037 # allow group operator to read disks
|
||||
tape_umask=017 # allow group operator to read/write tapes
|
||||
@ -192,12 +188,12 @@ case $i in
|
||||
all)
|
||||
sh MAKEDEV std # standard
|
||||
sh MAKEDEV fd0 fd1 # bdev, floppy disk
|
||||
sh MAKEDEV sd0 sd1 sd2 sd3 wd0 wd1 wd2 wd3 # bdev, ordinary disk
|
||||
sh MAKEDEV da0 da1 da2 da3 wd0 wd1 wd2 wd3 # bdev, ordinary disk
|
||||
sh MAKEDEV od0 # bdev, optical disk
|
||||
sh MAKEDEV wfd0 # bdev, LS-120 floppy
|
||||
sh MAKEDEV vn0 # bdev, virtual disk
|
||||
sh MAKEDEV cd0 matcd0 mcd0 scd0 wcd0 wst0 # bdev, cdrom
|
||||
sh MAKEDEV ft0 st0 wt0 # bdev, tape
|
||||
sh MAKEDEV cd0 matcd0 mcd0 scd0 wcd0 # bdev, cdrom
|
||||
sh MAKEDEV ft0 sa0 wt0 wst0 # bdev, tape
|
||||
sh MAKEDEV vty4 # cdev, virtual tty
|
||||
sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3 # cdev, serial tty
|
||||
sh MAKEDEV pty0 # cdev, pseudo tty
|
||||
@ -208,6 +204,7 @@ all)
|
||||
sh MAKEDEV bpf0 ipl tun0 # cdev, network
|
||||
sh MAKEDEV ch0 perfmon tw0 # cdev, miscellaneous
|
||||
sh MAKEDEV apm card0 card1 # cdev, laptop
|
||||
sh MAKEDEV pass4 xpt2 # cdev, CAM
|
||||
;;
|
||||
std)
|
||||
mknod console c 0 0; chmod 600 console
|
||||
@ -267,12 +264,13 @@ wt*)
|
||||
;;
|
||||
|
||||
# Individual slices.
|
||||
od*s*|sd*s*|vn*s*|wd*s*|wfd*s*|fla*s*)
|
||||
od*s*|da*s*|vn*s*|wd*s*|wfd*s*|fla*s*)
|
||||
umask $disk_umask
|
||||
case $i in
|
||||
fla*s*) name=fla; blk=28; chr=101;;
|
||||
od*s*) name=od; blk=20; chr=70;;
|
||||
od*s*) name=od; blk=4; chr=13;;
|
||||
sd*s*) name=sd; blk=4; chr=13;;
|
||||
da*s*) name=da; blk=4; chr=13;;
|
||||
vn*s*) name=vn; blk=15; chr=43;;
|
||||
wd*s*) name=wd; blk=0; chr=3;;
|
||||
wfd*s*) name=wfd; blk=1; chr=87;;
|
||||
@ -437,12 +435,13 @@ ft*)
|
||||
umask 77
|
||||
;;
|
||||
|
||||
od*|sd*|vn*|wd*|wfd*|fla*)
|
||||
sd*|od*|da*|vn*|wd*|wfd*|fla*)
|
||||
umask $disk_umask
|
||||
case $i in
|
||||
fla*) name=fla; blk=28; chr=101;;
|
||||
od*) name=od; blk=20; chr=70;;
|
||||
sd*) name=sd; blk=4; chr=13;;
|
||||
sd*) name=sd; blk=4; chr=13;;
|
||||
od*) name=od; blk=4; chr=13;;
|
||||
da*) name=da; blk=4; chr=13;;
|
||||
vn*) name=vn; blk=15; chr=43;;
|
||||
wd*) name=wd; blk=0; chr=3;;
|
||||
wfd*) name=wfd; blk=1; chr=87;;
|
||||
@ -461,13 +460,6 @@ od*|sd*|vn*|wd*|wfd*|fla*)
|
||||
do
|
||||
sh MAKEDEV $name$unit$slicepartname
|
||||
done
|
||||
case $name in
|
||||
od|sd)
|
||||
minor=`dkminor 0 $unit 0 0`
|
||||
mknod r${name}${unit}.ctl c $chr $(($minor | $scsictl))
|
||||
chmod 600 r${name}${unit}.ctl
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo bad unit for disk in: $i
|
||||
@ -503,27 +495,6 @@ ssc*)
|
||||
mknod ssc c 49 0
|
||||
;;
|
||||
|
||||
uk*)
|
||||
unit=`expr $i : 'uk\(.*\)'`
|
||||
mknod uk$unit c 31 $unit
|
||||
;;
|
||||
|
||||
worm*)
|
||||
umask $disk_umask
|
||||
unit=`expr $i : 'worm\(.*\)'`
|
||||
if [ "X${unit}" = "X" ]; then
|
||||
unit=0
|
||||
fi
|
||||
chr=62
|
||||
blk=23
|
||||
name=worm
|
||||
mknod ${name}${unit} b $blk ${unit}
|
||||
mknod r${name}${unit} c $chr ${unit}
|
||||
chgrp operator ${name}${unit} r${name}${unit}
|
||||
umask 077
|
||||
mknod r${name}${unit}.ctl c $chr `expr $unit + $scsictl `
|
||||
;;
|
||||
|
||||
# SCSI processor type driver
|
||||
pt[0-9]*)
|
||||
chr=61
|
||||
@ -534,9 +505,58 @@ pt[0-9]*)
|
||||
fi
|
||||
unit=`expr $unit + 1 - 1`
|
||||
mknod ${name}${unit} c $chr $unit
|
||||
mknod ${name}${unit}.ctl c $chr `expr $unit + $scsictl `
|
||||
;;
|
||||
|
||||
# SCSI target mode sample driver
|
||||
targ[0-9]*)
|
||||
chr=65
|
||||
name=targ
|
||||
unit=`expr $i : 'targ\([0-9][0-9]*\)'`
|
||||
if [ "X${unit}" = "X" ]; then
|
||||
unit=0
|
||||
fi
|
||||
unit=`expr $unit + 1 - 1`
|
||||
mknod ${name}${unit} c $chr $unit
|
||||
;;
|
||||
|
||||
# CAM transport layer device
|
||||
xpt*)
|
||||
umask $disk_umask
|
||||
# This major number is temporary
|
||||
chr=104
|
||||
name=xpt
|
||||
units=`expr $i : 'xpt\(.*\)'`
|
||||
if [ "X${units}" = "X" ]; then
|
||||
units=1
|
||||
fi
|
||||
eval `echo ${chr} ${units} ${name} |awk \
|
||||
'{ c=$1; n=$2; name=$3;} END {
|
||||
for (i = 0; i < n; i++)
|
||||
printf("rm -f %s%d r%s%d; mknod %s%d c %d %d; \
|
||||
chgrp operator %s%d;", \
|
||||
name, i, name, i, name, i, c, i, \
|
||||
name, i); }'`
|
||||
umask 077
|
||||
;;
|
||||
# CAM passthrough device
|
||||
pass*|uk*)
|
||||
umask $disk_umask
|
||||
# This major number is temporary
|
||||
chr=31
|
||||
name=pass
|
||||
units=`expr $i : 'pass\(.*\)'`
|
||||
if [ "X${units}" = "X" ]; then
|
||||
units=1
|
||||
fi
|
||||
eval `echo ${chr} ${units} ${name} |awk \
|
||||
'{ c=$1; n=$2; name=$3;} END {
|
||||
for (i = 0; i < n; i++)
|
||||
printf("rm -f %s%d r%s%d; mknod %s%d c %d %d; \
|
||||
chgrp operator %s%d;", \
|
||||
name, i, name, i, name, i, c, i, \
|
||||
name, i); }'`
|
||||
umask 077
|
||||
;;
|
||||
pty*)
|
||||
class=`expr $i : 'pty\(.*\)'`
|
||||
case $class in
|
||||
@ -569,7 +589,7 @@ pty*)
|
||||
esac
|
||||
;;
|
||||
|
||||
st*)
|
||||
sa*)
|
||||
umask $tape_umask
|
||||
unit=`expr $i : '..\(.*\)'`
|
||||
chr=14
|
||||
@ -578,22 +598,17 @@ st*)
|
||||
0|1|2|3|4|5|6)
|
||||
for mode in 0 1 2 3
|
||||
do
|
||||
mknod rst${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 0`
|
||||
mknod nrst${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 1`
|
||||
mknod erst${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 2`
|
||||
mknod st${unit}ctl.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 3`
|
||||
chgrp operator rst${unit}.${mode}\
|
||||
nrst${unit}.${mode} \
|
||||
erst${unit}.${mode} \
|
||||
st${unit}ctl.${mode}
|
||||
chmod 600 st${unit}ctl.${mode}
|
||||
mknod rsa${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 0`
|
||||
mknod nrsa${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 1`
|
||||
mknod ersa${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 2`
|
||||
chgrp operator rsa${unit}.${mode}\
|
||||
nrsa${unit}.${mode} \
|
||||
ersa${unit}.${mode}
|
||||
done
|
||||
mknod rst${unit}.ctl c $chr `expr $unit '*' 16 + $scsictl `
|
||||
chmod 600 rst${unit}.ctl
|
||||
|
||||
ln rst${unit}.0 rst${unit}
|
||||
ln nrst${unit}.0 nrst${unit}
|
||||
ln erst${unit}.0 erst${unit}
|
||||
ln rsa${unit}.0 rsa${unit}
|
||||
ln nrsa${unit}.0 nrsa${unit}
|
||||
ln ersa${unit}.0 ersa${unit}
|
||||
;;
|
||||
*)
|
||||
echo bad unit for tape in: $i
|
||||
@ -610,10 +625,8 @@ ch*)
|
||||
esac
|
||||
case $unit in
|
||||
0|1|2|3|4|5|6)
|
||||
mknod ${name}${unit} c $chr `expr $unit '*' 16 + 0`
|
||||
mknod ${name}${unit} c $chr $unit
|
||||
chgrp operator ${name}${unit}
|
||||
mknod r${name}${unit}.ctl c $chr `expr $unit '*' 16 + $scsictl `
|
||||
chmod 600 r${name}${unit}.ctl
|
||||
;;
|
||||
*)
|
||||
echo bad unit for media changer in: $i
|
||||
@ -625,28 +638,33 @@ ch*)
|
||||
cd*|mcd*|scd*)
|
||||
umask $disk_umask
|
||||
case $i in
|
||||
cd*) unit=`expr $i : '..\(.*\)'`; name=cd; blk=6; chr=15;;
|
||||
mcd*) unit=`expr $i : '...\(.*\)'`; name=mcd; blk=7; chr=29;;
|
||||
scd*) unit=`expr $i : '...\(.*\)'`; name=scd; blk=16; chr=45;;
|
||||
esac
|
||||
case $unit in
|
||||
0|1|2|3|4|5|6)
|
||||
mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0`
|
||||
mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2`
|
||||
mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0`
|
||||
mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2`
|
||||
chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h]
|
||||
case $name in
|
||||
cd)
|
||||
mknod r${name}${unit}.ctl c $chr `expr $unit '*' 8 + $scsictl `
|
||||
chmod 600 r${name}${unit}.ctl
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo bad unit for disk in: $i
|
||||
;;
|
||||
cd*) units=`expr $i : '..\(.*\)'`; name=cd; blk=6; chr=15;;
|
||||
mcd*) units=`expr $i : '...\(.*\)'`; name=mcd; blk=7; chr=29;;
|
||||
scd*) units=`expr $i : '...\(.*\)'`; name=scd; blk=16; chr=45;;
|
||||
esac
|
||||
if [ "X${units}" = "X" -o ${units} -le 0 ]; then
|
||||
units=1
|
||||
fi
|
||||
if [ "${units}" -le 31 ]; then
|
||||
eval `echo ${chr} ${blk} ${units} ${name} |awk \
|
||||
'{ c=$1; b=$2; n=$3; name=$4;} END{
|
||||
for (i = 0; i < n; i++){
|
||||
printf("rm -f %s%d* r%s%d*; \
|
||||
mknod %s%da b %d %d; \
|
||||
mknod %s%dc b %d %d; \
|
||||
mknod r%s%da c %d %d; \
|
||||
mknod r%s%dc c %d %d; \
|
||||
chgrp operator %s%d* r%s%d*;",
|
||||
name, i, name, i,
|
||||
name, i, b, (i * 8),
|
||||
name, i, b, (i * 8) + 2,
|
||||
name, i, c, (i * 8),
|
||||
name, i, c, (i * 8) + 2,
|
||||
name, i, name, i); }}'`
|
||||
|
||||
else
|
||||
echo "$i is invalid -- can't have more than 32 cd devices"
|
||||
fi
|
||||
umask 77
|
||||
;;
|
||||
|
||||
|
@ -30,8 +30,7 @@
|
||||
#
|
||||
# Tapes:
|
||||
# wt* QIC-interfaced (e.g. not SCSI) 3M cartridge tape
|
||||
# st* "NEW type scsi tapes" (old driver uses the
|
||||
# block devices of the disks to get access)
|
||||
# sa* SCSI Sequential Access Devices
|
||||
# ft* QIC-40/QIC-80 3M cartridge tape (interfaced
|
||||
# via the floppy disk controller)
|
||||
#
|
||||
@ -39,7 +38,7 @@
|
||||
# wd* "Winchester" disk drives (ST506,IDE,ESDI,RLL,...)
|
||||
# wfd* "IDE floppy" disk drives (LS-120)
|
||||
# fd* "floppy" disk drives (3 1/2", 5 1/4")
|
||||
# sd* "SCSI disks"
|
||||
# da* "SCSI Direct Access Devices"
|
||||
# cd* "SCSI CD-ROM disks"
|
||||
# mcd* "Mitsumi CD-ROM disks"
|
||||
# scd* "Sony CD-ROM disks"
|
||||
@ -79,9 +78,9 @@
|
||||
#
|
||||
# SCSI devices (other than CD-ROM, tape and disk):
|
||||
# ssc The ``super scsi'' device
|
||||
# uk* "unknown" device (supports ioctl calls only)
|
||||
# worm* WORM driver
|
||||
# pt* Processor Type (HP scanner, as one example)
|
||||
# pass* CAM Passthrough device
|
||||
#
|
||||
# PC-CARD (previously called PCMCIA) support
|
||||
# card* PC-CARD slots
|
||||
@ -108,7 +107,7 @@
|
||||
# pci PCI configuration-space access from user mode
|
||||
# ipl ipfilter control devices (ipl, ipnat, ipstate, ipauth)
|
||||
#
|
||||
# $Id: MAKEDEV,v 1.169 1998/09/09 18:59:46 sos Exp $
|
||||
# $Id: MAKEDEV,v 1.170 1998/09/10 18:47:20 phk Exp $
|
||||
#
|
||||
|
||||
PATH=/sbin:/bin/:/usr/bin:/usr/sbin:$PATH
|
||||
@ -179,9 +178,6 @@ dkcompatslice=0
|
||||
# Raw slice for disks
|
||||
dkrawslice=1
|
||||
|
||||
# Control bit for SCSI
|
||||
scsictl=$((1 << 29))
|
||||
|
||||
# Standard umasks
|
||||
disk_umask=037 # allow group operator to read disks
|
||||
tape_umask=017 # allow group operator to read/write tapes
|
||||
@ -192,12 +188,12 @@ case $i in
|
||||
all)
|
||||
sh MAKEDEV std # standard
|
||||
sh MAKEDEV fd0 fd1 # bdev, floppy disk
|
||||
sh MAKEDEV sd0 sd1 sd2 sd3 wd0 wd1 wd2 wd3 # bdev, ordinary disk
|
||||
sh MAKEDEV da0 da1 da2 da3 wd0 wd1 wd2 wd3 # bdev, ordinary disk
|
||||
sh MAKEDEV od0 # bdev, optical disk
|
||||
sh MAKEDEV wfd0 # bdev, LS-120 floppy
|
||||
sh MAKEDEV vn0 # bdev, virtual disk
|
||||
sh MAKEDEV cd0 matcd0 mcd0 scd0 wcd0 wst0 # bdev, cdrom
|
||||
sh MAKEDEV ft0 st0 wt0 # bdev, tape
|
||||
sh MAKEDEV cd0 matcd0 mcd0 scd0 wcd0 # bdev, cdrom
|
||||
sh MAKEDEV ft0 sa0 wt0 wst0 # bdev, tape
|
||||
sh MAKEDEV vty4 # cdev, virtual tty
|
||||
sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3 # cdev, serial tty
|
||||
sh MAKEDEV pty0 # cdev, pseudo tty
|
||||
@ -208,6 +204,7 @@ all)
|
||||
sh MAKEDEV bpf0 ipl tun0 # cdev, network
|
||||
sh MAKEDEV ch0 perfmon tw0 # cdev, miscellaneous
|
||||
sh MAKEDEV apm card0 card1 # cdev, laptop
|
||||
sh MAKEDEV pass4 xpt2 # cdev, CAM
|
||||
;;
|
||||
std)
|
||||
mknod console c 0 0; chmod 600 console
|
||||
@ -267,12 +264,13 @@ wt*)
|
||||
;;
|
||||
|
||||
# Individual slices.
|
||||
od*s*|sd*s*|vn*s*|wd*s*|wfd*s*|fla*s*)
|
||||
od*s*|da*s*|vn*s*|wd*s*|wfd*s*|fla*s*)
|
||||
umask $disk_umask
|
||||
case $i in
|
||||
fla*s*) name=fla; blk=28; chr=101;;
|
||||
od*s*) name=od; blk=20; chr=70;;
|
||||
od*s*) name=od; blk=4; chr=13;;
|
||||
sd*s*) name=sd; blk=4; chr=13;;
|
||||
da*s*) name=da; blk=4; chr=13;;
|
||||
vn*s*) name=vn; blk=15; chr=43;;
|
||||
wd*s*) name=wd; blk=0; chr=3;;
|
||||
wfd*s*) name=wfd; blk=1; chr=87;;
|
||||
@ -437,12 +435,13 @@ ft*)
|
||||
umask 77
|
||||
;;
|
||||
|
||||
od*|sd*|vn*|wd*|wfd*|fla*)
|
||||
sd*|od*|da*|vn*|wd*|wfd*|fla*)
|
||||
umask $disk_umask
|
||||
case $i in
|
||||
fla*) name=fla; blk=28; chr=101;;
|
||||
od*) name=od; blk=20; chr=70;;
|
||||
sd*) name=sd; blk=4; chr=13;;
|
||||
sd*) name=sd; blk=4; chr=13;;
|
||||
od*) name=od; blk=4; chr=13;;
|
||||
da*) name=da; blk=4; chr=13;;
|
||||
vn*) name=vn; blk=15; chr=43;;
|
||||
wd*) name=wd; blk=0; chr=3;;
|
||||
wfd*) name=wfd; blk=1; chr=87;;
|
||||
@ -461,13 +460,6 @@ od*|sd*|vn*|wd*|wfd*|fla*)
|
||||
do
|
||||
sh MAKEDEV $name$unit$slicepartname
|
||||
done
|
||||
case $name in
|
||||
od|sd)
|
||||
minor=`dkminor 0 $unit 0 0`
|
||||
mknod r${name}${unit}.ctl c $chr $(($minor | $scsictl))
|
||||
chmod 600 r${name}${unit}.ctl
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo bad unit for disk in: $i
|
||||
@ -503,27 +495,6 @@ ssc*)
|
||||
mknod ssc c 49 0
|
||||
;;
|
||||
|
||||
uk*)
|
||||
unit=`expr $i : 'uk\(.*\)'`
|
||||
mknod uk$unit c 31 $unit
|
||||
;;
|
||||
|
||||
worm*)
|
||||
umask $disk_umask
|
||||
unit=`expr $i : 'worm\(.*\)'`
|
||||
if [ "X${unit}" = "X" ]; then
|
||||
unit=0
|
||||
fi
|
||||
chr=62
|
||||
blk=23
|
||||
name=worm
|
||||
mknod ${name}${unit} b $blk ${unit}
|
||||
mknod r${name}${unit} c $chr ${unit}
|
||||
chgrp operator ${name}${unit} r${name}${unit}
|
||||
umask 077
|
||||
mknod r${name}${unit}.ctl c $chr `expr $unit + $scsictl `
|
||||
;;
|
||||
|
||||
# SCSI processor type driver
|
||||
pt[0-9]*)
|
||||
chr=61
|
||||
@ -534,9 +505,58 @@ pt[0-9]*)
|
||||
fi
|
||||
unit=`expr $unit + 1 - 1`
|
||||
mknod ${name}${unit} c $chr $unit
|
||||
mknod ${name}${unit}.ctl c $chr `expr $unit + $scsictl `
|
||||
;;
|
||||
|
||||
# SCSI target mode sample driver
|
||||
targ[0-9]*)
|
||||
chr=65
|
||||
name=targ
|
||||
unit=`expr $i : 'targ\([0-9][0-9]*\)'`
|
||||
if [ "X${unit}" = "X" ]; then
|
||||
unit=0
|
||||
fi
|
||||
unit=`expr $unit + 1 - 1`
|
||||
mknod ${name}${unit} c $chr $unit
|
||||
;;
|
||||
|
||||
# CAM transport layer device
|
||||
xpt*)
|
||||
umask $disk_umask
|
||||
# This major number is temporary
|
||||
chr=104
|
||||
name=xpt
|
||||
units=`expr $i : 'xpt\(.*\)'`
|
||||
if [ "X${units}" = "X" ]; then
|
||||
units=1
|
||||
fi
|
||||
eval `echo ${chr} ${units} ${name} |awk \
|
||||
'{ c=$1; n=$2; name=$3;} END {
|
||||
for (i = 0; i < n; i++)
|
||||
printf("rm -f %s%d r%s%d; mknod %s%d c %d %d; \
|
||||
chgrp operator %s%d;", \
|
||||
name, i, name, i, name, i, c, i, \
|
||||
name, i); }'`
|
||||
umask 077
|
||||
;;
|
||||
# CAM passthrough device
|
||||
pass*|uk*)
|
||||
umask $disk_umask
|
||||
# This major number is temporary
|
||||
chr=31
|
||||
name=pass
|
||||
units=`expr $i : 'pass\(.*\)'`
|
||||
if [ "X${units}" = "X" ]; then
|
||||
units=1
|
||||
fi
|
||||
eval `echo ${chr} ${units} ${name} |awk \
|
||||
'{ c=$1; n=$2; name=$3;} END {
|
||||
for (i = 0; i < n; i++)
|
||||
printf("rm -f %s%d r%s%d; mknod %s%d c %d %d; \
|
||||
chgrp operator %s%d;", \
|
||||
name, i, name, i, name, i, c, i, \
|
||||
name, i); }'`
|
||||
umask 077
|
||||
;;
|
||||
pty*)
|
||||
class=`expr $i : 'pty\(.*\)'`
|
||||
case $class in
|
||||
@ -569,7 +589,7 @@ pty*)
|
||||
esac
|
||||
;;
|
||||
|
||||
st*)
|
||||
sa*)
|
||||
umask $tape_umask
|
||||
unit=`expr $i : '..\(.*\)'`
|
||||
chr=14
|
||||
@ -578,22 +598,17 @@ st*)
|
||||
0|1|2|3|4|5|6)
|
||||
for mode in 0 1 2 3
|
||||
do
|
||||
mknod rst${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 0`
|
||||
mknod nrst${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 1`
|
||||
mknod erst${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 2`
|
||||
mknod st${unit}ctl.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 3`
|
||||
chgrp operator rst${unit}.${mode}\
|
||||
nrst${unit}.${mode} \
|
||||
erst${unit}.${mode} \
|
||||
st${unit}ctl.${mode}
|
||||
chmod 600 st${unit}ctl.${mode}
|
||||
mknod rsa${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 0`
|
||||
mknod nrsa${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 1`
|
||||
mknod ersa${unit}.${mode} c $chr `expr $unit '*' 16 + $mode '*' 4 + 2`
|
||||
chgrp operator rsa${unit}.${mode}\
|
||||
nrsa${unit}.${mode} \
|
||||
ersa${unit}.${mode}
|
||||
done
|
||||
mknod rst${unit}.ctl c $chr `expr $unit '*' 16 + $scsictl `
|
||||
chmod 600 rst${unit}.ctl
|
||||
|
||||
ln rst${unit}.0 rst${unit}
|
||||
ln nrst${unit}.0 nrst${unit}
|
||||
ln erst${unit}.0 erst${unit}
|
||||
ln rsa${unit}.0 rsa${unit}
|
||||
ln nrsa${unit}.0 nrsa${unit}
|
||||
ln ersa${unit}.0 ersa${unit}
|
||||
;;
|
||||
*)
|
||||
echo bad unit for tape in: $i
|
||||
@ -610,10 +625,8 @@ ch*)
|
||||
esac
|
||||
case $unit in
|
||||
0|1|2|3|4|5|6)
|
||||
mknod ${name}${unit} c $chr `expr $unit '*' 16 + 0`
|
||||
mknod ${name}${unit} c $chr $unit
|
||||
chgrp operator ${name}${unit}
|
||||
mknod r${name}${unit}.ctl c $chr `expr $unit '*' 16 + $scsictl `
|
||||
chmod 600 r${name}${unit}.ctl
|
||||
;;
|
||||
*)
|
||||
echo bad unit for media changer in: $i
|
||||
@ -625,28 +638,33 @@ ch*)
|
||||
cd*|mcd*|scd*)
|
||||
umask $disk_umask
|
||||
case $i in
|
||||
cd*) unit=`expr $i : '..\(.*\)'`; name=cd; blk=6; chr=15;;
|
||||
mcd*) unit=`expr $i : '...\(.*\)'`; name=mcd; blk=7; chr=29;;
|
||||
scd*) unit=`expr $i : '...\(.*\)'`; name=scd; blk=16; chr=45;;
|
||||
esac
|
||||
case $unit in
|
||||
0|1|2|3|4|5|6)
|
||||
mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0`
|
||||
mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2`
|
||||
mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0`
|
||||
mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2`
|
||||
chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h]
|
||||
case $name in
|
||||
cd)
|
||||
mknod r${name}${unit}.ctl c $chr `expr $unit '*' 8 + $scsictl `
|
||||
chmod 600 r${name}${unit}.ctl
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo bad unit for disk in: $i
|
||||
;;
|
||||
cd*) units=`expr $i : '..\(.*\)'`; name=cd; blk=6; chr=15;;
|
||||
mcd*) units=`expr $i : '...\(.*\)'`; name=mcd; blk=7; chr=29;;
|
||||
scd*) units=`expr $i : '...\(.*\)'`; name=scd; blk=16; chr=45;;
|
||||
esac
|
||||
if [ "X${units}" = "X" -o ${units} -le 0 ]; then
|
||||
units=1
|
||||
fi
|
||||
if [ "${units}" -le 31 ]; then
|
||||
eval `echo ${chr} ${blk} ${units} ${name} |awk \
|
||||
'{ c=$1; b=$2; n=$3; name=$4;} END{
|
||||
for (i = 0; i < n; i++){
|
||||
printf("rm -f %s%d* r%s%d*; \
|
||||
mknod %s%da b %d %d; \
|
||||
mknod %s%dc b %d %d; \
|
||||
mknod r%s%da c %d %d; \
|
||||
mknod r%s%dc c %d %d; \
|
||||
chgrp operator %s%d* r%s%d*;",
|
||||
name, i, name, i,
|
||||
name, i, b, (i * 8),
|
||||
name, i, b, (i * 8) + 2,
|
||||
name, i, c, (i * 8),
|
||||
name, i, c, (i * 8) + 2,
|
||||
name, i, name, i); }}'`
|
||||
|
||||
else
|
||||
echo "$i is invalid -- can't have more than 32 cd devices"
|
||||
fi
|
||||
umask 77
|
||||
;;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user