#! /bin/bash

if [ $# -ne 6 ]; then
    echo "Usage: `basename $0` {<dev> <offset>} * 3" 1>&2
    echo "Each device chunk must be at least 1G in size" 1>&2
    exit 1
fi

declare -a dev
declare -a offset

for ((i = 0; i < 3; i++)); do
    dev[$i]=$1; shift
    offset[$i]=$1; shift
done

cat <<EOF
# error

# linear
LINEAR,QUICK:Linear - single page sized target:targets/linear/contiguous ${dev[0]} 1 8 $(( ${offset[0]} + 32 ))
LINEAR,QUICK:Linear - 2 page sized targets:targets/linear/contiguous ${dev[0]} 2 8 $(( ${offset[0]} + 40 ))
LINEAR:Linear - 1024 page sized targets:targets/linear/contiguous ${dev[0]} 1024 8 $(( ${offset[0]} + 40 ))
LINEAR,QUICK:Linear - single 256k target:targets/linear/contiguous ${dev[0]} 1 512 $(( ${offset[0]} + 48 ))
LINEAR,QUICK:Linear - 2 256k targets:targets/linear/contiguous ${dev[0]} 2 512 $(( ${offset[0]} + 56 ))
LINEAR:Linear - 1024 256k targets:targets/linear/contiguous ${dev[0]} 1024 512 $(( ${offset[0]} + 56 ))
LINEAR:Linear - single 1 G target:targets/linear/contiguous ${dev[0]} 1 2097152 ${offset[0]}

# stripe
STRIPED,QUICK:Striped - 1 4M seg, 2 stripe, no offsets:targets/stripe/n-way 1 8192 128 2 ${dev[0]} ${offset[0]} ${dev[1]} ${offset[1]}
STRIPED,QUICK:Striped - 1 2M seg, 2 stripe, offsets:targets/stripe/n-way 1 4096 128 2 ${dev[0]} $(( ${offset[0]} + 56 )) ${dev[1]} $(( ${offset[1]} + 16 ))
STRIPED,QUICK:Striped - 1 3M seg, 3 stripe, offsets:targets/stripe/n-way 1 3072 128 3 ${dev[0]} $(( ${offset[0]} + 56 )) ${dev[1]} $(( ${offset[1]} + 2064 ))
STRIPED:Striped - 64 4M seg, 2 stripe, no offsets:targets/stripe/n-way 64 8192 128 2 ${dev[0]} ${offset[0]} ${dev[1]} ${offset[1]}
STRIPED:Striped - 64 2M seg, 2 stripe, offsets:targets/stripe/n-way 64 4096 128 2 ${dev[0]} $(( ${offset[0]} + 56 )) ${dev[1]} $(( ${offset[1]} + 16 ))

# mirror
MIRROR,QUICK:Mirror - 2 way, core log, 4M, no offsets:targets/mirror/n-way 8192 2 ${dev[0]} ${offset[0]} ${dev[1]} ${offset[1]}
MIRROR,QUICK:Mirror - 3 way, core log, 4M, no offsets:targets/mirror/n-way 8192 3 ${dev[0]} ${offset[0]} ${dev[1]} ${offset[1]} ${dev[2]} ${offset[2]}
MIRROR,QUICK:Mirror - 3 way, core log, 4M, offsets:targets/mirror/n-way 8192 3 ${dev[0]} $(( ${offset[0]} + 64 )) ${dev[1]} $(( ${offset[1]} + 32 )) ${dev[2]} $(( ${offset[2]} + 16 ))
MIRROR:Mirror - 3 way, core log, 400M, offsets:targets/mirror/n-way 819200 3 ${dev[0]} $(( ${offset[0]} + 64 )) ${dev[1]} $(( ${offset[1]} + 32 )) ${dev[2]} $(( ${offset[2]} + 16 ))

# snapshot


# zero

EOF
