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

  1. #!/bin/bash
  2. #
  3. # memory 1.24 1998/10/08 19:44:18 (David Hinds)
  4. #
  5. # Initialize or shutdown a PCMCIA memory device
  6. #
  7. # The first argument should be either 'start' or 'stop'.  The second
  8. # argument is the base name for the device.
  9. #
  10. # This script creates character devices for direct access to the PCMCIA
  11. # address spaces:
  12. #
  13. #    /dev/{name}c    - common memory direct access device
  14. #    /dev/{name}a    - attribute memory direct access device
  15. #
  16. # It also creates character and block devices for accessing the first
  17. # attribute and common memory partitions:
  18. #
  19. #       /dev/{name}c0c  - common memory, character device
  20. #       /dev/{name}c0b  - common memory, block device
  21. #       /dev/{name}a0c  - attribute memory, character device
  22. #
  23. # The script passes an extended device address to 'memory.opts' in the 
  24. # ADDRESS variable, to retrieve device-specific configuration options
  25. # for the common-memory block device.
  26. #
  27. # The address format is "scheme,socket" where "scheme" is the current
  28. # PCMCIA device configuration scheme, and "socket" is the socket number.
  29. #
  30.  
  31. if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi
  32.  
  33. # Get device attributes
  34. get_info $DEVICE
  35.  
  36. # Load site-specific settings
  37. ADDRESS="$SCHEME,$SOCKET"
  38. . $0.opts
  39.  
  40. case "$ACTION" in
  41.  
  42. 'start')
  43.     rm -f /dev/${DEVICE}*
  44.     if [ "$DRIVER" = "memory_cb" ] ; then
  45.     for N in 0 1 2 3 4 5 6 7 ; do
  46.         mknod /dev/${DEVICE}s${N} c $MAJOR `expr $MINOR + $N`
  47.     done
  48.     else
  49.     mknod /dev/${DEVICE}c0c c $MAJOR `expr $MINOR`
  50.     mknod /dev/${DEVICE}c0b b $MAJOR `expr $MINOR`
  51.     mknod /dev/${DEVICE}a0c c $MAJOR `expr $MINOR + 4`
  52.     mknod /dev/${DEVICE}c c $MAJOR `expr $MINOR + 8`
  53.     mknod /dev/${DEVICE}a c $MAJOR `expr $MINOR + 8 + 4`
  54.     add_blkdev /dev/${DEVICE}c0b || exit 1
  55.     fi
  56.     ;;
  57.  
  58. 'check')
  59.     fuser -s /dev/${DEVICE}* && exit 1
  60.     if [ "$DRIVER" != "memory_cb" ] ; then
  61.     fuser -s -m /dev/${DEVICE}c0b && exit 1
  62.     fi
  63.     ;;
  64.  
  65. 'stop')
  66.     fuser -s -k /dev/${DEVICE}*
  67.     if [ "$DRIVER" != "memory_cb" ] ; then
  68.     rm_blkdev /dev/${DEVICE}c0b || exit 1
  69.     fi
  70.     rm -f /dev/${DEVICE}*
  71.     ;;
  72.  
  73. 'cksum')
  74.     chk_simple "$3,$SOCKET,$INSTANCE" || exit 1
  75.     ;;
  76.     
  77. 'suspend'|'resume')
  78.     ;;
  79.  
  80. *)
  81.     usage
  82.     ;;
  83.  
  84. esac
  85.  
  86. exit 0
  87.