Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 253614
Collapse All | Expand All

(-)/usr/sbin/ofpath (-33 / +44 lines)
Lines 337-351 Link Here
337
337
338
ide_ofpath()
338
ide_ofpath()
339
{
339
{
340
    if [ ! -L "/proc/ide/$DEVNODE" ] ; then
340
    if [ ! -L "/proc/ide/$DEVNODE" ] && [ ! -e "/sys/block/$DEVNODE" ] ; then
341
	echo 1>&2 "$PRG: /dev/$DEVNODE: Device not configured"
341
	echo 1>&2 "$PRG: /dev/$DEVNODE: Device not configured"
342
	return 1
342
	return 1
343
    fi
343
    fi
344
344
345
    local IDEBUS="$(v=`readlink /proc/ide/$DEVNODE` ; echo ${v%%/*} )"
345
    if [ -L "/proc/ide/$DEVNODE" ] ; then
346
    if [ -z "$IDEBUS" ] ; then
346
    	    local USE_OLD_PROC=1
347
	echo 1>&2 "$PRG: BUG: IDEBUS == NULL"
347
	    local IDEBUS="$(v=`readlink /proc/ide/$DEVNODE` ; echo ${v%%/*} )"
348
	return 1
348
	    if [ -z "$IDEBUS" ] ; then
349
		echo 1>&2 "$PRG: BUG: IDEBUS == NULL"
350
		return 1
351
   	 fi
349
    fi
352
    fi
350
353
351
    case "$(uname -r)" in
354
    case "$(uname -r)" in
Lines 363-369 Link Here
363
		echo 1>&2 "$PRG: Unable to determine sysfs mountpoint"
366
		echo 1>&2 "$PRG: Unable to determine sysfs mountpoint"
364
		return 1
367
		return 1
365
	    fi
368
	    fi
366
	    local OF1275IDE="${SYS}/block/${DEVNODE}/device/../../devspec"
369
	    local OF1275IDE=$(cd -P "${SYS}/block/${DEVNODE}/device" && pwd)
370
	    OF1275IDE="${OF1275IDE}/../../devspec"
367
	    ;;
371
	    ;;
368
	*)
372
	*)
369
	    local OF1275IDE="/proc/ide/$IDEBUS/devspec"
373
	    local OF1275IDE="/proc/ide/$IDEBUS/devspec"
Lines 402-435 Link Here
402
	    return 1
406
	    return 1
403
	fi
407
	fi
404
408
405
	if [ ! -f "/proc/ide/${IDEBUS}/channel" ] ; then
409
	
406
	    echo 1>&2 "$PRG: KERNEL BUG: /proc/ide/${IDEBUS}/channel does not exist"
410
	if [ "${USE_OLD_PROC}" = "1" ] ; then
407
	    return 1
411
		if [ ! -f "/proc/ide/${IDEBUS}/channel" ] ; then
408
	fi
412
		    echo 1>&2 "$PRG: KERNEL BUG: /proc/ide/${IDEBUS}/channel does not exist"
409
413
		    return 1
410
	case "$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)" in
414
		fi
411
	    ide|ata)
412
		local MASTER="/disk@0"
413
		local SLAVE="/disk@1"
414
		;;
415
	    pci-ide|pci-ata)
416
		local MASTER="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@0"
417
		local SLAVE="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@1"
418
		;;
419
	    scsi) ## some lame controllers pretend they are scsi, hopefully all kludges are created equal.
420
		local MASTER="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 0))"
421
		local SLAVE="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 1))"
422
		;;
423
	    spi)
424
		local MASTER="/disk@$(cat /proc/ide/${IDEBUS}/channel),0"
425
		local SLAVE="/disk@$(cat /proc/ide/${IDEBUS}/channel),1"
426
		;;
427
	    *)
428
		echo 1>&2 "$PRG: Unsupported IDE device type: \"$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)\""
429
		return 1
430
		;;
431
	esac
432
415
416
		case "$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)" in
417
		    ide|ata)
418
			local MASTER="/disk@0"
419
			local SLAVE="/disk@1"
420
			;;
421
		    pci-ide|pci-ata)
422
			local MASTER="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@0"
423
			local SLAVE="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@1"
424
			;;
425
		    scsi) ## some lame controllers pretend they are scsi, hopefully all kludges are created equal.
426
			local MASTER="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 0))"
427
			local SLAVE="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 1))"
428
			;;
429
		    spi)
430
			local MASTER="/disk@$(cat /proc/ide/${IDEBUS}/channel),0"
431
			local SLAVE="/disk@$(cat /proc/ide/${IDEBUS}/channel),1"
432
			;;
433
		    *)
434
			echo 1>&2 "$PRG: Unsupported IDE device type: \"$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)\""
435
			return 1
436
			;;
437
		esac
438
	else
439
	    ### I don't know what other disks would look like... FIXME
440
	    local MASTER="/disk@0"
441
	    local SLAVE="/disk@1"
442
	fi
443
	
433
	case "$DEVNODE" in
444
	case "$DEVNODE" in
434
	    hda|hdc|hde|hdg|hdi|hdk|hdm|hdo)
445
	    hda|hdc|hde|hdg|hdi|hdk|hdm|hdo)
435
		echo "${DEVSPEC}${MASTER}:$PARTITION"
446
		echo "${DEVSPEC}${MASTER}:$PARTITION"

Return to bug 253614