#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#

#
# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#

#
# Copyright (c) 2012 by Delphix. All rights reserved.
#

export DISK=${DISKS%% *}
export SIZE="200m"
export DISK_ARRAY_NUM=$(echo ${DISKS} | nawk '{print NF}')
export DISKSARRAY=$DISKS

if is_linux; then
	set_device_dir
	set_slice_prefix
	export SLICE0=1
	export SLICE1=2
	export SLICE2=3
	export SLICE3=4
	export SLICE4=5
	export SLICE5=6
	export SLICE6=7
	export SLICE7=8
else
	export SLICE_PREFIX="s"
	export SLICE0=0
	export SLICE1=1
	export SLICE2=2
	export SLICE3=3
	export SLICE4=4
	export SLICE5=5
	export SLICE6=6
	export SLICE7=7
fi
