1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #!/bin/sh
- #
- # memory 1.28 2000/12/15 19:04:03 (David Hinds)
- #
- # Initialize or shutdown a PCMCIA memory device
- #
- # The first argument should be either 'start' or 'stop'. The second
- # argument is the base name for the device.
- #
- # This script creates character devices for direct access to the PCMCIA
- # address spaces:
- #
- # /dev/{name}c - common memory direct access device
- # /dev/{name}a - attribute memory direct access device
- #
- # It also creates character and block devices for accessing the first
- # attribute and common memory partitions:
- #
- # /dev/{name}c0c - common memory, character device
- # /dev/{name}c0b - common memory, block device
- # /dev/{name}a0c - attribute memory, character device
- #
- # The script passes an extended device address to 'memory.opts' in the
- # ADDRESS variable, to retrieve device-specific configuration options
- # for the common-memory block device.
- #
- # The address format is "scheme,socket" where "scheme" is the current
- # PCMCIA device configuration scheme, and "socket" is the socket number.
- #
- if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi
- # Get device attributes
- get_info $DEVICE
- # Load site-specific settings
- ADDRESS="$SCHEME,$SOCKET"
- . $0.opts
- case "$ACTION" in
- 'start')
- [ "$VERBOSE" -a "$INFO" ] && echo "$INFO"
- rm -f /dev/${DEVICE}*
- if [ "$DRIVER" = "memory_cb" ] ; then
- for N in 0 1 2 3 4 5 6 7 ; do
- log mknod /dev/${DEVICE}s${N} c $MAJOR `expr $MINOR + $N`
- done
- else
- log mknod /dev/${DEVICE}c0c c $MAJOR `expr $MINOR`
- log mknod /dev/${DEVICE}c0b b $MAJOR `expr $MINOR`
- log mknod /dev/${DEVICE}a0c c $MAJOR `expr $MINOR + 4`
- log mknod /dev/${DEVICE}c c $MAJOR `expr $MINOR + 8`
- log mknod /dev/${DEVICE}a c $MAJOR `expr $MINOR + 8 + 4`
- add_blkdev /dev/${DEVICE}c0b || exit 1
- fi
- ;;
- 'check')
- is_true $NO_CHECK && exit 0
- do_fuser -s /dev/${DEVICE}* && exit 1
- if [ "$DRIVER" != "memory_cb" ] ; then
- do_fuser -s -m /dev/${DEVICE}c0b && exit 1
- fi
- ;;
- 'stop')
- do_fuser -k /dev/${DEVICE}* > /dev/null
- if [ "$DRIVER" != "memory_cb" ] ; then
- rm_blkdev /dev/${DEVICE}c0b || exit 1
- fi
- rm -f /dev/${DEVICE}*
- ;;
- 'cksum')
- chk_simple "$NEW_SCHEME,$SOCKET,$INSTANCE" || exit 1
- ;;
-
- 'suspend'|'resume')
- ;;
- *)
- usage
- ;;
- esac
- exit 0
|