+function _generateTagOptions
+{
+ local vdir="$1"
+ local tag
+
+ getFileValue tag "$vdir/tag" "$vdir/context"
+ test -n "$tag" || return 0
+
+ OPTS_VTAG_CREATE=( --tag "$tag" )
+ OPTS_VTAG_ENTER=( --tag "$tag" )
+}
+
+function _generateMemctrlOptions
+{
+ local vdir="$1"
+ local badness
+
+ getFileValue badness "$vdir/badness"
+ test -n "$badness" || return 0
+
+ OPTS_VMEMCTRL=( --badness "$badness" )
+}
+
+function _generateSpaceOptions
+{
+ local vdir="$1"
+ local d="$vdir"/spaces
+
+ test ! -e "$d"/pid || \
+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid )
+
+ test ! -e "$d"/net || {
+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net )
+ # network context and namespace don't make much sense
+ _HAVE_CHBIND_OPTIONS=1
+ CHBIND_CMD=()
+ }
+
+ local mask
+ getFileValue mask "$d"/mask || \
+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --mask "$mask" )
+}
+