summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure184
-rw-r--r--configure.in5
-rw-r--r--lib/Makefile.in8
-rw-r--r--lib/activate/activate.c80
-rw-r--r--lib/activate/activate.h14
-rw-r--r--lib/commands/toolcontext.c4
-rw-r--r--lib/config/defaults.h6
-rw-r--r--lib/display/display.c4
-rw-r--r--lib/report/report.c2
-rw-r--r--make.tmpl.in4
-rw-r--r--tools/Makefile.in8
-rw-r--r--tools/lvremove.c2
-rw-r--r--tools/lvresize.c2
-rw-r--r--tools/lvscan.c2
14 files changed, 221 insertions, 104 deletions
diff --git a/configure b/configure
index 0b2b01393..3c94eb3b5 100755
--- a/configure
+++ b/configure
@@ -28,6 +28,8 @@ ac_help="$ac_help
--enable-readline Enable readline support"
ac_help="$ac_help
--enable-debug Enable debugging"
+ac_help="$ac_help
+ --disable-devmapper Disable device-mapper interaction"
# Initialize some variables set by options.
# The variables have the same names as the options, with
@@ -564,7 +566,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:568: checking for $ac_word" >&5
+echo "configure:570: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -596,7 +598,7 @@ done
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:600: checking for $ac_word" >&5
+echo "configure:602: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -626,7 +628,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:630: checking for $ac_word" >&5
+echo "configure:632: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -677,7 +679,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:681: checking for $ac_word" >&5
+echo "configure:683: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -709,7 +711,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:713: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:715: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -720,12 +722,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 724 "configure"
+#line 726 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -751,12 +753,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:755: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:757: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:760: checking whether we are using GNU C" >&5
+echo "configure:762: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -765,7 +767,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:769: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:771: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -784,7 +786,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:788: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:790: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -827,7 +829,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:831: checking for a BSD compatible install" >&5
+echo "configure:833: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -880,7 +882,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:884: checking whether ln -s works" >&5
+echo "configure:886: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -901,7 +903,7 @@ else
fi
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:905: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:907: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -930,7 +932,7 @@ fi
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:934: checking for $ac_word" >&5
+echo "configure:936: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -963,12 +965,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:967: checking for $ac_hdr that defines DIR" >&5
+echo "configure:969: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 972 "configure"
+#line 974 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -976,7 +978,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -1001,7 +1003,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1005: checking for opendir in -ldir" >&5
+echo "configure:1007: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1009,7 +1011,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1013 "configure"
+#line 1015 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1020,7 +1022,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:1024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1042,7 +1044,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:1046: checking for opendir in -lx" >&5
+echo "configure:1048: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1050,7 +1052,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1054 "configure"
+#line 1056 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1061,7 +1063,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:1065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1084,7 +1086,7 @@ fi
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1088: checking how to run the C preprocessor" >&5
+echo "configure:1090: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1099,13 +1101,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1103 "configure"
+#line 1105 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1111: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1116,13 +1118,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1120 "configure"
+#line 1122 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1126: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1128: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1133,13 +1135,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1137 "configure"
+#line 1139 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1143: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1145: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1164,12 +1166,12 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1168: checking for ANSI C header files" >&5
+echo "configure:1170: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1173 "configure"
+#line 1175 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1177,7 +1179,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1181: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1183: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1194,7 +1196,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1198 "configure"
+#line 1200 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1212,7 +1214,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1216 "configure"
+#line 1218 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1233,7 +1235,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 1237 "configure"
+#line 1239 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1244,7 +1246,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1271,17 +1273,17 @@ for ac_hdr in fcntl.h malloc.h sys/ioctl.h unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1275: checking for $ac_hdr" >&5
+echo "configure:1277: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1280 "configure"
+#line 1282 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1287: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1309,12 +1311,12 @@ done
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1313: checking for working const" >&5
+echo "configure:1315: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1318 "configure"
+#line 1320 "configure"
#include "confdefs.h"
int main() {
@@ -1363,7 +1365,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1367: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1384,21 +1386,21 @@ EOF
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1388: checking for inline" >&5
+echo "configure:1390: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 1395 "configure"
+#line 1397 "configure"
#include "confdefs.h"
int main() {
} int $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:1402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -1424,12 +1426,12 @@ EOF
esac
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:1428: checking for off_t" >&5
+echo "configure:1430: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1433 "configure"
+#line 1435 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1457,12 +1459,12 @@ EOF
fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:1461: checking for pid_t" >&5
+echo "configure:1463: checking for pid_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1466 "configure"
+#line 1468 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1490,12 +1492,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1494: checking for size_t" >&5
+echo "configure:1496: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1499 "configure"
+#line 1501 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1523,12 +1525,12 @@ EOF
fi
echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6
-echo "configure:1527: checking for st_rdev in struct stat" >&5
+echo "configure:1529: checking for st_rdev in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1532 "configure"
+#line 1534 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1536,7 +1538,7 @@ int main() {
struct stat s; s.st_rdev;
; return 0; }
EOF
-if { (eval echo configure:1540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1542: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_rdev=yes
else
@@ -1557,12 +1559,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1561: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:1563: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1566 "configure"
+#line 1568 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -1571,7 +1573,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:1575: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -1665,19 +1667,29 @@ else
fi
+# Check whether --enable-devmapper or --disable-devmapper was given.
+if test "${enable_devmapper+set}" = set; then
+ enableval="$enable_devmapper"
+ \
+DEVMAPPER=no
+else
+ DEVMAPPER=yes
+fi
+
+
if [ "x$exec_prefix" = xNONE -a "x$prefix" = xNONE ];
then exec_prefix="";
fi;
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:1675: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:1687: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
-#line 1681 "configure"
+#line 1693 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@@ -1695,7 +1707,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
-#line 1699 "configure"
+#line 1711 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@@ -1717,12 +1729,12 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1721: checking return type of signal handlers" >&5
+echo "configure:1733: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1726 "configure"
+#line 1738 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -1739,7 +1751,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:1743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -1758,12 +1770,12 @@ EOF
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:1762: checking for vprintf" >&5
+echo "configure:1774: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1767 "configure"
+#line 1779 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@@ -1786,7 +1798,7 @@ vprintf();
; return 0; }
EOF
-if { (eval echo configure:1790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@@ -1810,12 +1822,12 @@ fi
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:1814: checking for _doprnt" >&5
+echo "configure:1826: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1819 "configure"
+#line 1831 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@@ -1838,7 +1850,7 @@ _doprnt();
; return 0; }
EOF
-if { (eval echo configure:1842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@@ -1865,12 +1877,12 @@ fi
for ac_func in mkdir rmdir uname
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1869: checking for $ac_func" >&5
+echo "configure:1881: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1874 "configure"
+#line 1886 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1893,7 +1905,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1921,14 +1933,14 @@ done
if test x$READLINE = xyes; then
echo $ac_n "checking for library containing tgetent""... $ac_c" 1>&6
-echo "configure:1925: checking for library containing tgetent" >&5
+echo "configure:1937: checking for library containing tgetent" >&5
if eval "test \"`echo '$''{'ac_cv_search_tgetent'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_tgetent="no"
cat > conftest.$ac_ext <<EOF
-#line 1932 "configure"
+#line 1944 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1939,7 +1951,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_tgetent="none required"
else
@@ -1950,7 +1962,7 @@ rm -f conftest*
test "$ac_cv_search_tgetent" = "no" && for i in ncurses curses termcap termlib; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1954 "configure"
+#line 1966 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1961,7 +1973,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:1965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_tgetent="-l$i"
break
@@ -1995,7 +2007,7 @@ fi
if test x$READLINE = xyes; then
echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
-echo "configure:1999: checking for readline in -lreadline" >&5
+echo "configure:2011: checking for readline in -lreadline" >&5
ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2003,7 +2015,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lreadline $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2007 "configure"
+#line 2019 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2014,7 +2026,7 @@ int main() {
readline()
; return 0; }
EOF
-if { (eval echo configure:2018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2051,12 +2063,12 @@ package as well (which may be called readline-devel or something similar).
fi
echo $ac_n "checking for rl_completion_matches""... $ac_c" 1>&6
-echo "configure:2055: checking for rl_completion_matches" >&5
+echo "configure:2067: checking for rl_completion_matches" >&5
if eval "test \"`echo '$''{'ac_cv_func_rl_completion_matches'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2060 "configure"
+#line 2072 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char rl_completion_matches(); below. */
@@ -2079,7 +2091,7 @@ rl_completion_matches();
; return 0; }
EOF
-if { (eval echo configure:2083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_rl_completion_matches=yes"
else
@@ -2117,6 +2129,7 @@ fi
+
trap '' 1 2 15
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
@@ -2294,6 +2307,7 @@ s%@OWNER@%$OWNER%g
s%@GROUP@%$GROUP%g
s%@LVM_VERSION@%$LVM_VERSION%g
s%@DEBUG@%$DEBUG%g
+s%@DEVMAPPER@%$DEVMAPPER%g
CEOF
EOF
diff --git a/configure.in b/configure.in
index c5241c275..f570f516e 100644
--- a/configure.in
+++ b/configure.in
@@ -89,6 +89,10 @@ dnl Enable Debugging
AC_ARG_ENABLE(debug, [ --enable-debug Enable debugging], \
DEBUG=yes, DEBUG=no)
+dnl Disable devmapper
+AC_ARG_ENABLE(devmapper, [ --disable-devmapper Disable device-mapper interaction], \
+DEVMAPPER=no, DEVMAPPER=yes)
+
dnl Mess with default exec_prefix
if [[ "x$exec_prefix" = xNONE -a "x$prefix" = xNONE ]];
then exec_prefix="";
@@ -150,6 +154,7 @@ AC_SUBST(GROUP)
AC_SUBST(LIBS)
AC_SUBST(LVM_VERSION)
AC_SUBST(DEBUG)
+AC_SUBST(DEVMAPPER)
dnl First and last lines should not contain files to generate in order to
dnl keep utility scripts running properly
AC_OUTPUT( \
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 2b6076d41..433dccc9c 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -14,8 +14,6 @@ endif
SOURCES=\
activate/activate.c \
- activate/dev_manager.c \
- activate/fs.c \
cache/cache.c \
commands/toolcontext.c \
config/config.c \
@@ -75,6 +73,12 @@ ifeq ("@DEBUG@", "yes")
mm/dbg_malloc.c
endif
+ifeq ("@DEVMAPPER@", "yes")
+ SOURCES+=\
+ activate/dev_manager.c \
+ activate/fs.c
+endif
+
TARGETS=liblvm.a
include ../make.tmpl
diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index 2cfad92fa..3ac2653ec 100644
--- a/lib/activate/activate.c
+++ b/lib/activate/activate.c
@@ -20,6 +20,60 @@
#define _skip(fmt, args...) log_very_verbose("Skipping: " fmt , ## args)
+#ifndef DEVMAPPER_SUPPORT
+void set_activation(int act)
+{
+ if (act)
+ log_error("Compiled without libdevmapper support. "
+ "Can't enable activation.");
+}
+int activation(void)
+{
+ return 0;
+}
+int library_version(char *version, size_t size)
+{
+ return 0;
+}
+int driver_version(char *version, size_t size)
+{
+ return 0;
+}
+int lv_info(const struct logical_volume *lv, struct lvinfo *info)
+{
+ return 0;
+}
+int lv_snapshot_percent(struct logical_volume *lv, float *percent)
+{
+ return 0;
+}
+int lvs_in_vg_activated(struct volume_group *vg)
+{
+ return 0;
+}
+int lvs_in_vg_opened(struct volume_group *vg)
+{
+ return 0;
+}
+int lv_suspend_if_active(struct cmd_context *cmd, const char *lvid_s)
+{
+ return 1;
+}
+int lv_resume_if_active(struct cmd_context *cmd, const char *lvid_s)
+{
+ return 1;
+}
+int lv_deactivate(struct cmd_context *cmd, const char *lvid_s)
+{
+ return 1;
+}
+int lv_activate(struct cmd_context *cmd, const char *lvid_s)
+{
+ return 1;
+}
+
+#else /* DEVMAPPER_SUPPORT */
+
static int _activation = 1;
void set_activation(int act)
@@ -82,10 +136,11 @@ int driver_version(char *version, size_t size)
/*
* Returns 1 if info structure populated, else 0 on failure.
*/
-int lv_info(const struct logical_volume *lv, struct dm_info *info)
+int lv_info(const struct logical_volume *lv, struct lvinfo *info)
{
int r;
struct dev_manager *dm;
+ struct dm_info dminfo;
if (!activation())
return 0;
@@ -95,9 +150,16 @@ int lv_info(const struct logical_volume *lv, struct dm_info *info)
return 0;
}
- if (!(r = dev_manager_info(dm, lv, info)))
+ if (!(r = dev_manager_info(dm, lv, &dminfo)))
stack;
+ info->exists = dminfo.exists;
+ info->suspended = dminfo.suspended;
+ info->open_count = dminfo.open_count;
+ info->major = dminfo.major;
+ info->minor = dminfo.minor;
+ info->read_only = dminfo.read_only;
+
dev_manager_destroy(dm);
return r;
}
@@ -128,7 +190,7 @@ int lv_snapshot_percent(struct logical_volume *lv, float *percent)
static int _lv_active(struct logical_volume *lv)
{
- struct dm_info info;
+ struct lvinfo info;
if (!lv_info(lv, &info)) {
stack;
@@ -140,7 +202,7 @@ static int _lv_active(struct logical_volume *lv)
static int _lv_open_count(struct logical_volume *lv)
{
- struct dm_info info;
+ struct lvinfo info;
if (!lv_info(lv, &info)) {
stack;
@@ -244,7 +306,7 @@ int lvs_in_vg_opened(struct volume_group *vg)
int lv_suspend_if_active(struct cmd_context *cmd, const char *lvid_s)
{
struct logical_volume *lv;
- struct dm_info info;
+ struct lvinfo info;
if (!activation())
return 1;
@@ -274,7 +336,7 @@ int lv_suspend_if_active(struct cmd_context *cmd, const char *lvid_s)
int lv_resume_if_active(struct cmd_context *cmd, const char *lvid_s)
{
struct logical_volume *lv;
- struct dm_info info;
+ struct lvinfo info;
if (!activation())
return 1;
@@ -301,7 +363,7 @@ int lv_resume_if_active(struct cmd_context *cmd, const char *lvid_s)
int lv_deactivate(struct cmd_context *cmd, const char *lvid_s)
{
struct logical_volume *lv;
- struct dm_info info;
+ struct lvinfo info;
if (!activation())
return 1;
@@ -328,7 +390,7 @@ int lv_deactivate(struct cmd_context *cmd, const char *lvid_s)
int lv_activate(struct cmd_context *cmd, const char *lvid_s)
{
struct logical_volume *lv;
- struct dm_info info;
+ struct lvinfo info;
if (!activation())
return 1;
@@ -351,3 +413,5 @@ int lv_activate(struct cmd_context *cmd, const char *lvid_s)
return 1;
}
+
+#endif
diff --git a/lib/activate/activate.h b/lib/activate/activate.h
index 608f8b7a8..303f4dfd1 100644
--- a/lib/activate/activate.h
+++ b/lib/activate/activate.h
@@ -8,7 +8,19 @@
#define LVM_ACTIVATE_H
#include "metadata.h"
+
+#ifdef DEVMAPPER_SUPPORT
#include <libdevmapper.h>
+#endif
+
+struct lvinfo {
+ int exists;
+ int suspended;
+ unsigned int open_count;
+ int major;
+ int minor;
+ int read_only;
+};
void set_activation(int activation);
int activation(void);
@@ -19,7 +31,7 @@ int library_version(char *version, size_t size);
/*
* Returns 1 if info structure has been populated, else 0.
*/
-int lv_info(const struct logical_volume *lv, struct dm_info *info);
+int lv_info(const struct logical_volume *lv, struct lvinfo *info);
/*
* Returns 1 if percent has been set, else 0.
*/
diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
index cf6d51f1b..3427888c3 100644
--- a/lib/commands/toolcontext.c
+++ b/lib/commands/toolcontext.c
@@ -113,7 +113,9 @@ static void _init_logging(struct cmd_context *cmd)
log_verbose("Logging initialised at %s", ctime(&t));
/* Tell device-mapper about our logging */
+#ifdef DEVMAPPER_SUPPORT
dm_log_init(print_log);
+#endif
}
static int _process_config(struct cmd_context *cmd)
@@ -137,7 +139,9 @@ static int _process_config(struct cmd_context *cmd)
return 0;
}
+#ifdef DEVMAPPER_SUPPORT
dm_set_dev_dir(cmd->dev_dir);
+#endif
/* proc dir */
if (lvm_snprintf(cmd->proc_dir, sizeof(cmd->proc_dir), "%s",
diff --git a/lib/config/defaults.h b/lib/config/defaults.h
index 3cffe134f..8369507d5 100644
--- a/lib/config/defaults.h
+++ b/lib/config/defaults.h
@@ -51,7 +51,11 @@
#define DEFAULT_UNITS "h"
#define DEFAULT_SUFFIX 1
-#define DEFAULT_ACTIVATION 1
+#ifdef DEVMAPPER_SUPPORT
+ #define DEFAULT_ACTIVATION 1
+#else
+ #define DEFAULT_ACTIVATION 0
+#endif
#ifdef READLINE_SUPPORT
#define DEFAULT_MAX_HISTORY 100
diff --git a/lib/display/display.c b/lib/display/display.c
index 1989e70a3..10bc66965 100644
--- a/lib/display/display.c
+++ b/lib/display/display.c
@@ -335,7 +335,7 @@ int pvdisplay_short(struct cmd_context *cmd, struct volume_group *vg,
void lvdisplay_colons(struct logical_volume *lv)
{
int inkernel;
- struct dm_info info;
+ struct lvinfo info;
inkernel = lv_info(lv, &info) && info.exists;
log_print("%s%s/%s:%s:%d:%d:-1:%d:%" PRIu64 ":%d:-1:%d:%d:%d:%d",
@@ -355,7 +355,7 @@ void lvdisplay_colons(struct logical_volume *lv)
int lvdisplay_full(struct cmd_context *cmd, struct logical_volume *lv,
void *handle)
{
- struct dm_info info;
+ struct lvinfo info;
int inkernel, snap_active;
char uuid[64];
struct snapshot *snap = NULL;
diff --git a/lib/report/report.c b/lib/report/report.c
index 7293de23c..974856d36 100644
--- a/lib/report/report.c
+++ b/lib/report/report.c
@@ -163,7 +163,7 @@ static int _lvstatus_disp(struct report_handle *rh, struct field *field,
const void *data)
{
const struct logical_volume *lv = (const struct logical_volume *) data;
- struct dm_info info;
+ struct lvinfo info;
char *repstr;
if (!(repstr = pool_zalloc(rh->mem, 7))) {
diff --git a/make.tmpl.in b/make.tmpl.in
index ab1b5db90..01debe4ef 100644
--- a/make.tmpl.in
+++ b/make.tmpl.in
@@ -85,6 +85,10 @@ ifeq ("@READLINE@", "yes")
CFLAGS += -DREADLINE_SUPPORT
endif
+ifeq ("@DEVMAPPER@", "yes")
+ CFLAGS += -DDEVMAPPER_SUPPORT
+endif
+
ifeq ("@HAVE_RL_COMPLETION_MATCHES@", "yes")
CFLAGS += -DHAVE_RL_COMPLETION_MATCHES
endif
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 604e942bb..d3df40750 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -62,11 +62,17 @@ TARGETS=\
.commands \
lvm
+LVMLIBS=-llvm
+
+ifeq ("@DEVMAPPER@", "yes")
+ LVMLIBS += -ldevmapper
+endif
+
include ../make.tmpl
lvm: $(OBJECTS) $(top_srcdir)/lib/liblvm.a
$(CC) -o lvm $(OBJECTS) $(LD_FLAGS) -L$(top_srcdir)/lib \
- -L$(DESTDIR)/lib -llvm -ldevmapper $(LIBS) -ldl -rdynamic
+ -L$(DESTDIR)/lib $(LVMLIBS) $(LIBS) -ldl -rdynamic
.commands: commands.h cmdnames.h Makefile
$(CC) -E -P cmdnames.h | egrep -v '(help|version)' > .commands
diff --git a/tools/lvremove.c b/tools/lvremove.c
index a41c1e59d..69bb019a9 100644
--- a/tools/lvremove.c
+++ b/tools/lvremove.c
@@ -24,7 +24,7 @@ static int lvremove_single(struct cmd_context *cmd, struct logical_volume *lv,
void *handle)
{
struct volume_group *vg;
- struct dm_info info;
+ struct lvinfo info;
vg = lv->vg;
diff --git a/tools/lvresize.c b/tools/lvresize.c
index a02d638a8..b92fed39c 100644
--- a/tools/lvresize.c
+++ b/tools/lvresize.c
@@ -24,7 +24,7 @@ int lvresize(struct cmd_context *cmd, int argc, char **argv)
{
struct volume_group *vg;
struct logical_volume *lv;
- struct dm_info info;
+ struct lvinfo info;
uint32_t extents = 0;
uint32_t size = 0;
uint32_t stripes = 0, ssize = 0, stripesize_extents = 0;
diff --git a/tools/lvscan.c b/tools/lvscan.c
index 27b447ae5..996f19c97 100644
--- a/tools/lvscan.c
+++ b/tools/lvscan.c
@@ -23,7 +23,7 @@
static int lvscan_single(struct cmd_context *cmd, struct logical_volume *lv,
void *handle)
{
- struct dm_info info;
+ struct lvinfo info;
int lv_total = 0;
ulong lv_capacity_total = 0;