+storage_devices()
+{
+ black_listed_devices="${1}"
+ white_listed_devices="${2}"
+
+ for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "loop|ram|fd")
+ do
+ fulldevname=$(sys2dev "${sysblock}")
+
+ if echo "${black_listed_devices}" | grep -qw "${fulldevname}" || \
+ [ -n "${white_listed_devices}" ] && \
+ echo "${white_listed_devices}" | grep -vqw "${fulldevname}"
+ then
+ # skip this device entirely
+ continue
+ fi
+
+ for dev in $(subdevices "${sysblock}")
+ do
+ devname=$(sys2dev "${dev}")
+
+ if echo "${black_listed_devices}" | grep -qw "${devname}"
+ then
+ # skip this subdevice
+ continue
+ else
+ echo "${devname}"
+ fi
+ done
+ done
+}
+