Deleted Added
full compact
devlist.c (252270) devlist.c (253109)
1/*-
2 * Copyright (C) 2012-2013 Intel Corporation
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (C) 2012-2013 Intel Corporation
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sbin/nvmecontrol/devlist.c 252270 2013-06-26 23:20:08Z jimharris $");
28__FBSDID("$FreeBSD: head/sbin/nvmecontrol/devlist.c 253109 2013-07-09 21:14:15Z jimharris $");
29
30#include <sys/param.h>
31
29
30#include <sys/param.h>
31
32#include <errno.h>
32#include
33#include <fcntl.h>
34#include <stddef.h>
35#include <stdio.h>
36#include <stdlib.h>
37#include <string.h>
33#include <fcntl.h>
34#include <stddef.h>
35#include <stdio.h>
36#include <stdlib.h>
37#include <string.h>
38#include <sysexits.h>
39#include <unistd.h>
40
41#include "nvmecontrol.h"
42
43static void
44devlist_usage(void)
45{
46 fprintf(stderr, "usage:\n");
47 fprintf(stderr, DEVLIST_USAGE);
38#include <unistd.h>
39
40#include "nvmecontrol.h"
41
42static void
43devlist_usage(void)
44{
45 fprintf(stderr, "usage:\n");
46 fprintf(stderr, DEVLIST_USAGE);
48 exit(EX_USAGE);
47 exit(1);
49}
50
51static inline uint32_t
52ns_get_sector_size(struct nvme_namespace_data *nsdata)
53{
54
55 return (1 << nsdata->lbaf[0].lbads);
56}
57
58void
59devlist(int argc, char *argv[])
60{
61 struct nvme_controller_data cdata;
62 struct nvme_namespace_data nsdata;
63 char name[64];
64 uint32_t i;
48}
49
50static inline uint32_t
51ns_get_sector_size(struct nvme_namespace_data *nsdata)
52{
53
54 return (1 << nsdata->lbaf[0].lbads);
55}
56
57void
58devlist(int argc, char *argv[])
59{
60 struct nvme_controller_data cdata;
61 struct nvme_namespace_data nsdata;
62 char name[64];
63 uint32_t i;
65 int ch, ctrlr, exit_code, fd, found;
64 int ch, ctrlr, fd, found, ret;
66
65
67 exit_code = EX_OK;
68
69 while ((ch = getopt(argc, argv, "")) != -1) {
70 switch ((char)ch) {
71 default:
72 devlist_usage();
73 }
74 }
75
76 ctrlr = -1;
77 found = 0;
78
79 while (1) {
80 ctrlr++;
81 sprintf(name, "%s%d", NVME_CTRLR_PREFIX, ctrlr);
82
66 while ((ch = getopt(argc, argv, "")) != -1) {
67 switch ((char)ch) {
68 default:
69 devlist_usage();
70 }
71 }
72
73 ctrlr = -1;
74 found = 0;
75
76 while (1) {
77 ctrlr++;
78 sprintf(name, "%s%d", NVME_CTRLR_PREFIX, ctrlr);
79
83 exit_code = open_dev(name, &fd, 0, 0);
80 ret = open_dev(name, &fd, 0, 0);
84
81
85 if (exit_code == EX_NOINPUT)
86 break;
87 else if (exit_code == EX_NOPERM) {
88 printf("Could not open /dev/%s, errno = %d (%s)\n",
89 name, errno, strerror(errno));
90 continue;
82 if (ret != 0) {
83 if (fd < 0) {
84 warnx("could not open /dev/%s\n", name);
85 continue;
86 } else
87 break;
91 }
92
93 found++;
94 read_controller_data(fd, &cdata);
95 printf("%6s: %s\n", name, cdata.mn);
96
97 for (i = 0; i < cdata.nn; i++) {
98 sprintf(name, "%s%d%s%d", NVME_CTRLR_PREFIX, ctrlr,

--- 7 unchanged lines hidden (view full) ---

106 }
107
108 close(fd);
109 }
110
111 if (found == 0)
112 printf("No NVMe controllers found.\n");
113
88 }
89
90 found++;
91 read_controller_data(fd, &cdata);
92 printf("%6s: %s\n", name, cdata.mn);
93
94 for (i = 0; i < cdata.nn; i++) {
95 sprintf(name, "%s%d%s%d", NVME_CTRLR_PREFIX, ctrlr,

--- 7 unchanged lines hidden (view full) ---

103 }
104
105 close(fd);
106 }
107
108 if (found == 0)
109 printf("No NVMe controllers found.\n");
110
114 exit(EX_OK);
111 exit(1);
115}
112}