xref: /aosp_15_r20/external/sg3_utils/scripts/scsi_readcap (revision 44704f698541f6367e81f991ef8bb54ccbf3fc18)
1#!/bin/bash
2
3###################################################################
4#
5#  Fetch READ CAPACITY information for the given SCSI device(s).
6#
7#  This script assumes the sg3_utils package is installed.
8#
9##################################################################
10
11verbose=""
12brief=""
13long_opt=""
14
15usage()
16{
17  echo "Usage: scsi_readcap [-b] [-h] [-l] [-v] <device>+"
18  echo "  where:"
19  echo "    -b, --brief          output brief capacity data"
20  echo "    -h, --help           print usage message"
21  echo "    -l, --long           send longer SCSI READ CAPACITY (16) cdb"
22  echo "    -v, --verbose        more verbose output"
23  echo ""
24  echo "Use SCSI READ CAPACITY command to fetch the size of each <device>"
25}
26
27opt="$1"
28while test ! -z "$opt" -a -z "${opt##-*}"; do
29  opt=${opt#-}
30  case "$opt" in
31    b|-brief) brief="-b" ;;
32    h|-help) usage ; exit 0 ;;
33    l|-long) long_opt="--16" ;;
34    v|-verbose) verbose="-v" ;;
35    vv) verbose="-vv" ;;
36    vvv) verbose="-vvv" ;;
37    *) echo "Unknown option: -$opt " ; exit 1 ;;
38  esac
39  shift
40  opt="$1"
41done
42
43if [ $# -lt 1 ]
44  then
45    usage
46    exit 1
47fi
48
49for i
50do
51	if [ $brief ] ; then
52        	sg_readcap $brief $long_opt $verbose $i 2> /dev/null
53	else
54		echo "sg_readcap $brief $long_opt $verbose $i"
55        	sg_readcap $brief $long_opt $verbose $i
56	fi
57done
58