#! /bin/sh

disk=$1
if [ -z "$disk" ]; then
	echo "Usage: ${0##*/} disk"
	exit 1
fi

# figure out the linux device name
dunit=`echo $disk | sed -e 's/..\([0-7]\)/\1/'`
case $disk in
	# IDE
	ad[0-3])
		old_dtype="hd"
		dtype="sd"
		d=`echo $dunit | sed -e 'y/0123/048c/'`
		;;
	# SATA
	ad[4-7])
		old_dtype="sd"
		dtype="sd"
		dunit=`expr $dunit - 4`
		;;
	ad2[4-7])
		old_dtype="sd"
		dtype="sd"
		dunit=`expr $dunit - 24`
		;;
	# SATA, new names
	ada[0-9]|ada[0-9][0-9])
		old_dtype="sd"
		dtype="sd"
		dunit=`echo $disk | sed -e 's/ada\([0-9][0-9]*\)$/\1/'`
		;;
	# NVM disks
	nvd[0-9]|nda[0-9])
		dtype="nvme"
		old_dtype="nvme"
		dunit=`echo $disk | sed -e 's/nvd\([0-9][0-9]*\)$/\1/'`
		;;
	# SCSI
	da[0-7])
		old_dtype="sd"
		dtype="sd"
		lrootdev="8${dunit}${part}"
		;;
	# PERC
	mfid[0-9]|mfisyspd[0-9])
		dunit=`echo $disk | sed -e 's/.*\([0-9]\)$/\1/'`
		dtype="sd"
		old_dtype="sd"
		;;
	# Adaptec
	aacd[0-7])
		dunit=`echo $disk | sed -e 's/aacd\([0-7]\)/\1/'`
		dtype="sd"
		old_dtype="sd"
		;;
	# Megaraid
	amrd[0-7])
		dunit=`echo $disk | sed -e 's/amrd\([0-7]\)/\1/'`
		dtype="sd"
		old_dtype="sd"
		;;
	*)
		echo "${0##*/}: linux: unknown disk $disk" 1>&2
		return 1
		;;
esac
if [ $dtype = "nvme" ]; then
	# XXX assume "n1"
	ldisk="${dtype}${dunit}n1"
	old_ldisk="$ldisk"
else
	# XXX hey, it works!
	case $dunit in
	    2[0-5])
		dunit=`expr $dunit \- 20 | sed -e 'y/012345/uvwxyz/'`
		;;
	    1[0-9])
		dunit=`expr $dunit \- 10 | sed -e 'y/0123456789/klmnopqrst/'`
		;;
	    [0-9])
		dunit=`echo $dunit | sed -e 'y/0123456789/abcdefghij/'`
		;;
	    *)
		echo "${0##*/}: cannot handle more than 26 disks" 1>&2
		return 1
		;;
	esac
	dunit=`echo $dunit | sed -e 'y/01234567/abcdefgh/'`;
	ldisk=$dtype$dunit
	old_ldisk=$old_dtype$dunit
fi

echo $ldisk $old_ldisk
