Author: jimharris
Date: Wed Jul  3 23:45:58 2013
New Revision: 252656
URL: http://svnweb.freebsd.org/changeset/base/252656

Log:
  MFC r252265:
  
    Break out code related to the devlist command into a separate source file.
  
  Sponsored by: Intel

Added:
  stable/9/sbin/nvmecontrol/devlist.c
     - copied unchanged from r252265, head/sbin/nvmecontrol/devlist.c
  stable/9/sbin/nvmecontrol/nvmecontrol.h
     - copied unchanged from r252265, head/sbin/nvmecontrol/nvmecontrol.h
Modified:
  stable/9/sbin/nvmecontrol/Makefile
  stable/9/sbin/nvmecontrol/nvmecontrol.c
Directory Properties:
  stable/9/sbin/nvmecontrol/   (props changed)

Modified: stable/9/sbin/nvmecontrol/Makefile
==============================================================================
--- stable/9/sbin/nvmecontrol/Makefile  Wed Jul  3 23:42:12 2013        
(r252655)
+++ stable/9/sbin/nvmecontrol/Makefile  Wed Jul  3 23:45:58 2013        
(r252656)
@@ -1,6 +1,7 @@
 # $FreeBSD$
 
 PROG=  nvmecontrol
+SRCS=  nvmecontrol.c devlist.c
 MAN=   nvmecontrol.8
 
 .include <bsd.prog.mk>

Copied: stable/9/sbin/nvmecontrol/devlist.c (from r252265, 
head/sbin/nvmecontrol/devlist.c)
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ stable/9/sbin/nvmecontrol/devlist.c Wed Jul  3 23:45:58 2013        
(r252656, copy of r252265, head/sbin/nvmecontrol/devlist.c)
@@ -0,0 +1,114 @@
+/*-
+ * Copyright (C) 2012-2013 Intel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sysexits.h>
+#include <unistd.h>
+
+#include "nvmecontrol.h"
+
+static void
+devlist_usage(void)
+{
+       fprintf(stderr, "usage:\n");
+       fprintf(stderr, DEVLIST_USAGE);
+       exit(EX_USAGE);
+}
+
+static inline uint32_t
+ns_get_sector_size(struct nvme_namespace_data *nsdata)
+{
+
+       return (1 << nsdata->lbaf[0].lbads);
+}
+
+void
+devlist(int argc, char *argv[])
+{
+       struct nvme_controller_data     cdata;
+       struct nvme_namespace_data      nsdata;
+       char                            name[64];
+       uint32_t                        i;
+       int                             ch, ctrlr, exit_code, fd, found;
+
+       exit_code = EX_OK;
+
+       while ((ch = getopt(argc, argv, "")) != -1) {
+               switch ((char)ch) {
+               default:
+                       devlist_usage();
+               }
+       }
+
+       ctrlr = -1;
+       found = 0;
+
+       while (1) {
+               ctrlr++;
+               sprintf(name, "nvme%d", ctrlr);
+
+               exit_code = open_dev(name, &fd, 0, 0);
+
+               if (exit_code == EX_NOINPUT)
+                       break;
+               else if (exit_code == EX_NOPERM) {
+                       printf("Could not open /dev/%s, errno = %d (%s)\n",
+                           name, errno, strerror(errno));
+                       continue;
+               }
+
+               found++;
+               read_controller_data(fd, &cdata);
+               printf("%6s: %s\n", name, cdata.mn);
+
+               for (i = 0; i < cdata.nn; i++) {
+                       sprintf(name, "nvme%dns%d", ctrlr, i+1);
+                       read_namespace_data(fd, i+1, &nsdata);
+                       printf("  %10s (%lldGB)\n",
+                               name,
+                               nsdata.nsze *
+                               (long long)ns_get_sector_size(&nsdata) /
+                               1024 / 1024 / 1024);
+               }
+
+               close(fd);
+       }
+
+       if (found == 0)
+               printf("No NVMe controllers found.\n");
+
+       exit(EX_OK);
+}

Modified: stable/9/sbin/nvmecontrol/nvmecontrol.c
==============================================================================
--- stable/9/sbin/nvmecontrol/nvmecontrol.c     Wed Jul  3 23:42:12 2013        
(r252655)
+++ stable/9/sbin/nvmecontrol/nvmecontrol.c     Wed Jul  3 23:45:58 2013        
(r252656)
@@ -31,8 +31,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/ioccom.h>
 #include <sys/stat.h>
 
-#include <dev/nvme/nvme.h>
-
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -44,20 +42,7 @@ __FBSDID("$FreeBSD$");
 #include <sysexits.h>
 #include <unistd.h>
 
-#define DEVLIST_USAGE                                                         \
-"       nvmecontrol devlist\n"
-
-#define IDENTIFY_USAGE                                                        \
-"       nvmecontrol identify <controller id|namespace id>\n"
-
-#define PERFTEST_USAGE                                                        \
-"       nvmecontrol perftest <-n num_threads> <-o read|write>\n"              \
-"                            <-s size_in_bytes> <-t time_in_seconds>\n"        
       \
-"                            <-i intr|wait> [-f refthread] [-p]\n"            \
-"                            <namespace id>\n"
-
-#define RESET_USAGE                                                           \
-"       nvmecontrol reset <controller id>\n"
+#include "nvmecontrol.h"
 
 static void perftest_usage(void);
 
@@ -203,14 +188,7 @@ print_namespace(struct nvme_namespace_da
        }
 }
 
-static uint32_t
-ns_get_sector_size(struct nvme_namespace_data *nsdata)
-{
-
-       return (1 << nsdata->lbaf[0].lbads);
-}
-
-static void
+void
 read_controller_data(int fd, struct nvme_controller_data *cdata)
 {
        struct nvme_pt_command  pt;
@@ -234,7 +212,7 @@ read_controller_data(int fd, struct nvme
        }
 }
 
-static void
+void
 read_namespace_data(int fd, int nsid, struct nvme_namespace_data *nsdata)
 {
        struct nvme_pt_command  pt;
@@ -258,7 +236,7 @@ read_namespace_data(int fd, int nsid, st
        }
 }
 
-static int
+int
 open_dev(const char *str, int *fd, int show_error, int exit_on_error)
 {
        struct stat     devstat;
@@ -289,72 +267,6 @@ open_dev(const char *str, int *fd, int s
 }
 
 static void
-devlist_usage(void)
-{
-       fprintf(stderr, "usage:\n");
-       fprintf(stderr, DEVLIST_USAGE);
-       exit(EX_USAGE);
-}
-
-static void
-devlist(int argc, char *argv[])
-{
-       struct nvme_controller_data     cdata;
-       struct nvme_namespace_data      nsdata;
-       char                            name[64];
-       uint32_t                        i;
-       int                             ch, ctrlr, exit_code, fd, found;
-
-       exit_code = EX_OK;
-
-       while ((ch = getopt(argc, argv, "")) != -1) {
-               switch ((char)ch) {
-               default:
-                       devlist_usage();
-               }
-       }
-
-       ctrlr = -1;
-       found = 0;
-
-       while (1) {
-               ctrlr++;
-               sprintf(name, "nvme%d", ctrlr);
-
-               exit_code = open_dev(name, &fd, 0, 0);
-
-               if (exit_code == EX_NOINPUT)
-                       break;
-               else if (exit_code == EX_NOPERM) {
-                       printf("Could not open /dev/%s, errno = %d (%s)\n",
-                           name, errno, strerror(errno));
-                       continue;
-               }
-
-               found++;
-               read_controller_data(fd, &cdata);
-               printf("%6s: %s\n", name, cdata.mn);
-
-               for (i = 0; i < cdata.nn; i++) {
-                       sprintf(name, "nvme%dns%d", ctrlr, i+1);
-                       read_namespace_data(fd, i+1, &nsdata);
-                       printf("  %10s (%lldGB)\n",
-                               name,
-                               nsdata.nsze *
-                               (long long)ns_get_sector_size(&nsdata) /
-                               1024 / 1024 / 1024);
-               }
-
-               close(fd);
-       }
-
-       if (found == 0)
-               printf("No NVMe controllers found.\n");
-
-       exit(EX_OK);
-}
-
-static void
 identify_usage(void)
 {
        fprintf(stderr, "usage:\n");

Copied: stable/9/sbin/nvmecontrol/nvmecontrol.h (from r252265, 
head/sbin/nvmecontrol/nvmecontrol.h)
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ stable/9/sbin/nvmecontrol/nvmecontrol.h     Wed Jul  3 23:45:58 2013        
(r252656, copy of r252265, head/sbin/nvmecontrol/nvmecontrol.h)
@@ -0,0 +1,56 @@
+/*-
+ * Copyright (C) 2012-2013 Intel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef __NVMECONTROL_H__
+#define __NVMECONTROL_H__
+
+#include <dev/nvme/nvme.h>
+
+#define DEVLIST_USAGE                                                         \
+"       nvmecontrol devlist\n"
+
+#define IDENTIFY_USAGE                                                        \
+"       nvmecontrol identify <controller id|namespace id>\n"
+
+#define PERFTEST_USAGE                                                        \
+"       nvmecontrol perftest <-n num_threads> <-o read|write>\n"              \
+"                            <-s size_in_bytes> <-t time_in_seconds>\n"        
       \
+"                            <-i intr|wait> [-f refthread] [-p]\n"            \
+"                            <namespace id>\n"
+
+#define RESET_USAGE                                                           \
+"       nvmecontrol reset <controller id>\n"
+
+int open_dev(const char *str, int *fd, int show_error, int exit_on_error);
+void read_controller_data(int fd, struct nvme_controller_data *cdata);
+void read_namespace_data(int fd, int nsid, struct nvme_namespace_data *nsdata);
+
+void devlist(int argc, char *argv[]);
+
+#endif
+
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to