Deleted Added
sdiff udiff text old ( 252270 ) new ( 253109 )
full compact
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 253109 2013-07-09 21:14:15Z jimharris $");
29
30#include <sys/param.h>
31
32#include
33#include <fcntl.h>
34#include <stddef.h>
35#include <stdio.h>
36#include <stdlib.h>
37#include <string.h>
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);
47 exit(1);
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;
64 int ch, ctrlr, fd, found, ret;
65
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
80 ret = open_dev(name, &fd, 0, 0);
81
82 if (ret != 0) {
83 if (fd < 0) {
84 warnx("could not open /dev/%s\n", name);
85 continue;
86 } else
87 break;
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
111 exit(1);
112}