summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bhyveload
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2013-10-09 03:56:07 +0000
committerneel <neel@FreeBSD.org>2013-10-09 03:56:07 +0000
commitf9f9a7e61707f80f49be34d2c1af7490549580f9 (patch)
treeacc9a278b9f141070d676a08d2877d23277d20e2 /usr.sbin/bhyveload
parent97e97b35c8417bc9679c023105f5f38512994440 (diff)
downloadFreeBSD-src-f9f9a7e61707f80f49be34d2c1af7490549580f9.zip
FreeBSD-src-f9f9a7e61707f80f49be34d2c1af7490549580f9.tar.gz
Parse the memory size parameter using expand_number() to allow specifying
the memory size more intuitively (e.g. 512M, 4G etc). Submitted by: rodrigc Reviewed by: grehan Approved by: re (blanket)
Diffstat (limited to 'usr.sbin/bhyveload')
-rw-r--r--usr.sbin/bhyveload/Makefile4
-rw-r--r--usr.sbin/bhyveload/bhyveload.826
-rw-r--r--usr.sbin/bhyveload/bhyveload.c7
3 files changed, 28 insertions, 9 deletions
diff --git a/usr.sbin/bhyveload/Makefile b/usr.sbin/bhyveload/Makefile
index 7b00818..e7b19bd 100644
--- a/usr.sbin/bhyveload/Makefile
+++ b/usr.sbin/bhyveload/Makefile
@@ -4,8 +4,8 @@ PROG= bhyveload
SRCS= bhyveload.c
MAN= bhyveload.8
-DPADD+= ${LIBVMMAPI}
-LDADD+= -lvmmapi
+DPADD+= ${LIBVMMAPI} ${LIBUTIL}
+LDADD+= -lvmmapi -lutil
WARNS?= 3
diff --git a/usr.sbin/bhyveload/bhyveload.8 b/usr.sbin/bhyveload/bhyveload.8
index f2e5e35..2c0edac 100644
--- a/usr.sbin/bhyveload/bhyveload.8
+++ b/usr.sbin/bhyveload/bhyveload.8
@@ -1,4 +1,4 @@
-.\"
+\"
.\" Copyright (c) 2012 NetApp Inc
.\" All rights reserved.
.\"
@@ -60,13 +60,29 @@ and will be created if it does not already exist.
.Sh OPTIONS
The following options are available:
.Bl -tag -width indent
-.It Fl m Ar mem-size
+.It Fl m Ar mem-size Xo
+.Sm off
+.Op Cm K | k | M | m | G | g | T | t
+.Xc
+.Sm on
+.Ar mem-size
+is the amount of memory allocated to the guest.
+.Pp
+The
.Ar mem-size
-is the amount of memory allocated to the guest in units of megabytes.
+argument may be suffixed with one of
+.Cm K ,
+.Cm M ,
+.Cm G
+or
+.Cm T
+(either upper or lower case) to indicate a multiple of
+Kilobytes, Megabytes, Gigabytes or Terabytes
+respectively.
.Pp
The default value of
.Ar mem-size
-is 256.
+is 256M.
.It Fl d Ar disk-path
The
.Ar disk-path
@@ -83,7 +99,7 @@ that boots off the ISO image
.Pa /freebsd/release.iso
and has 1GB memory allocated to it:
.Pp
-.Dl "bhyveload -m 1024 -d /freebsd/release.iso freebsd-vm"
+.Dl "bhyveload -m 1G -d /freebsd/release.iso freebsd-vm"
.Sh SEE ALSO
.Xr bhyve 4 ,
.Xr bhyve 8 ,
diff --git a/usr.sbin/bhyveload/bhyveload.c b/usr.sbin/bhyveload/bhyveload.c
index c4bafd3..6e541e8 100644
--- a/usr.sbin/bhyveload/bhyveload.c
+++ b/usr.sbin/bhyveload/bhyveload.c
@@ -67,12 +67,14 @@ __FBSDID("$FreeBSD$");
#include <dirent.h>
#include <dlfcn.h>
#include <errno.h>
+#include <err.h>
#include <fcntl.h>
#include <getopt.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sysexits.h>
#include <termios.h>
#include <unistd.h>
@@ -581,9 +583,10 @@ main(int argc, char** argv)
break;
case 'm':
- mem_size = strtoul(optarg, NULL, 0) * MB;
+ error = vm_parse_memsize(optarg, &mem_size);
+ if (error != 0)
+ errx(EX_USAGE, "Invalid memsize '%s'", optarg);
break;
-
case '?':
usage();
}
OpenPOWER on IntegriCloud