mptutil, mfitil, expand_number
Eitan Adler
lists at eitanadler.com
Sun Nov 10 03:52:33 UTC 2013
Any thoughts?
commit 20ad9d0a2bd9aea4aaf7c5ae925397
8ae0aed75c
Author: Eitan Adler <lists at eitanadler.com>
Date: Sat Nov 9 22:19:41 2013 -0500
Indicate that expand_number is case-insensitive.
diff --git a/lib/libutil/expand_number.3 b/lib/libutil/expand_number.3
index f78223b..2f5871f 100644
--- a/lib/libutil/expand_number.3
+++ b/lib/libutil/expand_number.3
@@ -51,12 +51,13 @@ argument.
The
.Fn expand_number
function
+is case-insensitive and
follows the SI power of two convention.
.Pp
The prefixes are:
.Bl -column "Prefix" "Description" "1000000000000000000" -offset indent
.It Sy "Prefix" Ta Sy "Description" Ta Sy "Multiplier"
-.It Li k Ta No kilo Ta 1024
+.It Li K Ta No kilo Ta 1024
.It Li M Ta No mega Ta 1048576
.It Li G Ta No giga Ta 1073741824
.It Li T Ta No tera Ta 1099511627776
commit e5d0f01bcea9115bd27394ae27a295717597cf7b
Author: Eitan Adler <lists at eitanadler.com>
Date: Sat Nov 9 22:09:17 2013 -0500
Convert from a hand-rolled function to expand_number.
diff --git a/usr.sbin/mptutil/mpt_config.c b/usr.sbin/mptutil/mpt_config.c
index 17b9945..ae66258 100644
--- a/usr.sbin/mptutil/mpt_config.c
+++ b/usr.sbin/mptutil/mpt_config.c
@@ -43,6 +43,7 @@ __RCSID("$FreeBSD$");
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sysexits.h>
#include <unistd.h>
#include "mptutil.h"
@@ -50,35 +51,6 @@ __RCSID("$FreeBSD$");
static void dump_config(CONFIG_PAGE_RAID_VOL_0 *vol);
#endif
-static long
-dehumanize(const char *value)
-{
- char *vtp;
- long iv;
-
- if (value == NULL)
- return (0);
- iv = strtoq(value, &vtp, 0);
- if (vtp == value || (vtp[0] != '\0' && vtp[1] != '\0')) {
- return (0);
- }
- switch (vtp[0]) {
- case 't': case 'T':
- iv *= 1024;
- case 'g': case 'G':
- iv *= 1024;
- case 'm': case 'M':
- iv *= 1024;
- case 'k': case 'K':
- iv *= 1024;
- case '\0':
- break;
- default:
- return (0);
- }
- return (iv);
-}
-
/*
* Lock the volume by opening its /dev device read/write. This will
* only work if nothing else has it opened (including mounts). We
@@ -666,7 +638,9 @@ create_volume(int ac, char **av)
quick = 1;
break;
case 's':
- stripe_size = dehumanize(optarg);
+ error = expand_number(optarg, &stripe_size);
+ if (error == -1)
+ errx(EX_USAGE, "%s: stripe size incorrect", optarg);
if ((stripe_size < 512) || (!powerof2(stripe_size))) {
warnx("Invalid stripe size %s", optarg);
return (EINVAL);
commit 903b59a53bf479a5aa68ea523e5d0c1a2da7a8d9
Author: Eitan Adler <lists at eitanadler.com>
Date: Sat Nov 9 22:09:17 2013 -0500
Convert from a hand-rolled function to expand_number.
Reviewed by: sbruno
diff --git a/usr.sbin/mfiutil/mfi_config.c b/usr.sbin/mfiutil/mfi_config.c
index a919214..9f64cbc 100644
--- a/usr.sbin/mfiutil/mfi_config.c
+++ b/usr.sbin/mfiutil/mfi_config.c
@@ -41,41 +41,13 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sysexits.h>
#include <unistd.h>
#include "mfiutil.h"
static int add_spare(int ac, char **av);
static int remove_spare(int ac, char **av);
-static long
-dehumanize(const char *value)
-{
- char *vtp;
- long iv;
-
- if (value == NULL)
- return (0);
- iv = strtoq(value, &vtp, 0);
- if (vtp == value || (vtp[0] != '\0' && vtp[1] != '\0')) {
- return (0);
- }
- switch (vtp[0]) {
- case 't': case 'T':
- iv *= 1024;
- case 'g': case 'G':
- iv *= 1024;
- case 'm': case 'M':
- iv *= 1024;
- case 'k': case 'K':
- iv *= 1024;
- case '\0':
- break;
- default:
- return (0);
- }
- return (iv);
-}
-
int
mfi_config_read(int fd, struct mfi_config_data **configp)
{
@@ -629,7 +601,9 @@ create_volume(int ac, char **av)
break;
#endif
case 's':
- stripe_size = dehumanize(optarg);
+ error = expand_number(optarg, &stripe_size);
+ if (error == -1)
+ errx(EX_USAGE, "%s: stripe size incorrect", optarg);
if ((stripe_size < 512) || (!powerof2(stripe_size)))
stripe_size = 64 * 1024;
break;
--
Eitan Adler
More information about the freebsd-scsi
mailing list