home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / etc / pcmcia / scsi < prev    next >
Text File  |  1999-10-31  |  2KB  |  77 lines

  1. #!/bin/bash
  2. #
  3. # scsi 1.30 1997/05/13 02:18:00 (David Hinds)
  4. #
  5. # Initialize or shutdown a PCMCIA SCSI adapter
  6. #
  7. # The first argument should be either 'start' or 'stop'.  The second
  8. # argument is the base name for the device.
  9. #
  10. # The script passes an extended device address to 'scsi.opts' in the
  11. # ADDRESS variable, to retrieve device-specific configuration options.
  12. # The address format is "scheme,device,socket,channel,id,lun[,part]"
  13. # where "scheme" is the PCMCIA configuration scheme; "device" is the
  14. # SCSI device type (sd, sr, st, sg); "socket" is the socket number;
  15. # "channel", "id", and "lun" are the SCSI device ID's; and "part" is,
  16. # optionally, the partition number.
  17. #
  18. # The script first calls scsi.opts for the entire device.  If
  19. # scsi.opts returns with the PARTS variable set, then this variable
  20. # contains a list of partitions for which options should be read.
  21. #
  22.  
  23. if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi
  24.  
  25. # Get device attributes
  26. get_info $DEVICE
  27.  
  28. case "$DEVICE" in
  29. sd*)  TYPE="sd" ;;
  30. st*)  TYPE="st" ;;
  31. scd*) TYPE="sr" ;;
  32. sg*)  TYPE="sg" ;;
  33. esac
  34. eval `/sbin/scsi_info /dev/$DEVICE` || usage
  35.  
  36. # Load site-specific settings
  37. ADDRESS="$SCHEME,$TYPE,$SOCKET,$SCSI_ID"
  38. . $0.opts
  39.  
  40. case "$ACTION" in
  41.  
  42. 'start')
  43.     add_parts $ADDRESS "$PARTS" || exit 1
  44.     ;;
  45.  
  46. 'stop')
  47.     if [ -b /dev/$DEVICE ] ; then
  48.     rm_parts $ADDRESS "$PARTS"
  49.     else
  50.     fuser -s -k /dev/$DEVICE
  51.     fi
  52.     exit $?
  53.     ;;
  54.  
  55. 'check')
  56.     if [ -b /dev/$DEVICE ] ; then
  57.     fuser -s -m /dev/${DEVICE}* && exit 1
  58.     elif [ -c /dev/$DEVICE ] ; then
  59.     fuser -s /dev/${DEVICE}* && exit 1
  60.     fi
  61.     ;;
  62.  
  63. 'cksum')
  64.     chk_parts "$3,$TYPE,$SOCKET,$SCSI_ID" || exit 1
  65.     ;;
  66.     
  67. 'suspend'|'resume')
  68.     ;;
  69.  
  70. *)
  71.     usage
  72.     ;;
  73.  
  74. esac
  75.  
  76. exit 0
  77.