-for (( i=0, k=0; i<${#BUSES[*]}; i++ )); do
- for (( j=0; j<${#PORTS[*]}; j++, k++ )); do
- BYPATH=(`ls *:${BUSES[$i]}:*:${PORTS[$j]}* 2>/dev/null | \
- grep -v part | sort -n -k7 -t'-' | cut -f1-6 -d'-'`)
- SLOTS=(`ls *:${BUSES[$i]}:*:${PORTS[$j]}* 2>/dev/null | \
- grep -v part | sort -n -k7 -t'-' | cut -f7 -d'-'`)
+map_shortname_to_by_path() {
+ pushd ${DEV_DISK_DIR} >/dev/null
+ for (( i=0, k=0; i<${#BUSES[*]}; i++ )); do
+ for (( j=0; j<${#HOST_PORTS[*]}; j++, k++ )); do
+ BYPATH=(`ls *:${BUSES[$i]}:*:${HOST_PORTS[$j]}* \
+ 2>/dev/null | grep -v part | \
+ sort -n -k7 -t'-' | cut -f1-6 -d'-'`)
+ SLOTS=(`ls *:${BUSES[$i]}:*:${HOST_PORTS[$j]}* \
+ 2>/dev/null | grep -v part | \
+ sort -n -k7 -t'-' | cut -f7 -d'-'`)
+ TMP_FILE=`mktemp`
+
+ for (( l=0; l<${#SLOTS[*]}; l++ )); do
+ MAPPED_SLOT=`map_slot ${SLOTS[$l]}`
+ printf "%s%d\t%s-%d\n" \
+ ${CHANNELS[$k]} ${MAPPED_SLOT} \
+ ${BYPATH[$l]} ${SLOTS[$l]} >>${TMP_FILE}
+ done
+
+ echo
+ echo -n "# Channel ${CHANNELS[$k]}, "
+ echo "Bus ${BUSES[$i]}, Port ${HOST_PORTS[$j]}"
+ cat ${TMP_FILE} | sort -n -k2 -t${CHANNELS[$k]}
+ rm -f ${TMP_FILE}
+ done
+ done
+ popd >/dev/null
+}
+
+# Generate mapping from <channel><rank> to by-id name.
+map_shortname_to_by_id() {
+ pushd ${DEV_DISK_DIR} >/dev/null
+ for (( i=0; i<${#SWITCH_PORTS[*]}; i++ )); do
+ p=${SWITCH_PORTS[$i]}
+ BYID=(`ls ${LABEL}-+([0-9a-f])-switch-port:${p}-slot:+([0-9]) \
+ 2>/dev/null | grep -v part | sort -k3n -t':' | \
+ cut -f1-2 -d':'`)
+ SLOTS=(`ls ${LABEL}-+([0-9a-f])-switch-port:${p}-slot:+([0-9]) \
+ 2>/dev/null | grep -v part | sort -k3n -t':' | \
+ cut -f3 -d':'`)