#!/bin/bash

random_lio_serial() {
    dd if=/dev/urandom bs=12 count=1 2>/dev/null |
	od -v -tx1 -w99 | {
	    read -r offset bytes
	    echo "${bytes// }"
	    echo "$offset" > /dev/null
	}
}

tcm_node() {
    local vdev=$2 path=$3 size=$4 serial=$5

    case $1 in
	--fileio|--block)
	    (
		cd /sys/kernel/config/target/core &&
		    mkdir -p "$vdev" &&
		    cd "$vdev" &&
		    if [ -b "$path" ]; then
			echo "udev_path=$path," >control
		    else
			echo "fd_dev_name=$path,fd_dev_size=$size," >control
		    fi &&
		    echo "${serial}" >wwn/vpd_unit_serial &&
		    echo 1 > enable
	    )
	    ;;
	*)
	    return 1;;
    esac
}
