#!/bin/sh
#
# ide 1.15 2001/11/21 13:44:09 (David Hinds)
#
# Initialize or shutdown a PCMCIA ATA/IDE adapter
#
# The first argument should be either 'start' or 'stop'.  The second
# argument is the base name for the device.
#
# The script passes an extended device address to 'ide.opts' in the
# ADDRESS variable, to retrieve device-specific configuration options.
# The address format is "scheme,socket,serial_no[,part]" where
# "scheme" is the PCMCIA configuration scheme, "socket" is the socket
# number, "serial_no" is the card's serial number if available, and
# "part" is, optionally, the partition number.
#
# The script first calls ide.opts for the entire device.  If ide.opts
# returns with the PARTS variable set, then this variable contains a
# list of partitions for which options should be read.
#

if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi

# Get device attributes
get_info $DEVICE

if [ ! -b /dev/$DEVICE ] ; then
    log mknod /dev/$DEVICE b $MAJOR $MINOR
    for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
	minor=`expr $part + $MINOR`
	log mknod /dev/${DEVICE}$part b $MAJOR $minor
    done
fi
eval `/sbin/ide_info /dev/$DEVICE` || usage

# Load site-specific settings
ADDRESS="$SCHEME,$SOCKET,$SERIAL_NO"
. $0.opts

case "$ACTION" in

'start')
    [ -n "$VERBOSE" -a -n "$INFO" ] && echo "$INFO"
    add_parts "$ADDRESS" "$PARTS" || exit 1
    ;;

'check')
    is_true $NO_CHECK && exit 0
    if [ -b /dev/$DEVICE ] ; then
	do_fuser -s -m /dev/${DEVICE}* && exit 1
    else
	do_fuser -s /dev/${DEVICE}* && exit 1
    fi
    ;;

'stop')
    rm_parts "$ADDRESS" "$PARTS" || exit 1
    ;;

'cksum')
    chk_parts "$NEW_SCHEME,$SOCKET,$SERIAL_NO" || exit 1
    ;;
    
'suspend'|'resume')
    ;;

*)
    usage
    ;;

esac

exit 0
