Skip to content

Commit 6ec4694

Browse files
authored
Merge pull request #103 from minwooim/for-chrdev-name
tree: add namespace chrdev name to nvme_ns
2 parents fef2156 + e05fc01 commit 6ec4694

4 files changed

Lines changed: 31 additions & 0 deletions

File tree

src/libnvme.map

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ LIBNVME_1_0 {
192192
nvme_ns_get_model;
193193
nvme_ns_get_model;
194194
nvme_ns_get_name;
195+
nvme_ns_get_generic_name;
195196
nvme_ns_get_nguid;
196197
nvme_ns_get_nsid;
197198
nvme_ns_get_serial;

src/nvme/private.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ struct nvme_ns {
4545
int fd;
4646
__u32 nsid;
4747
char *name;
48+
char *generic_name;
4849
char *sysfs_dir;
4950

5051
int lba_shift;

src/nvme/tree.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,6 +1365,11 @@ const char *nvme_ns_get_name(nvme_ns_t n)
13651365
return n->name;
13661366
}
13671367

1368+
const char *nvme_ns_get_generic_name(nvme_ns_t n)
1369+
{
1370+
return n->generic_name;
1371+
}
1372+
13681373
const char *nvme_ns_get_model(nvme_ns_t n)
13691374
{
13701375
return n->c ? n->c->model : n->s->model;
@@ -1569,6 +1574,20 @@ static int nvme_ns_init(struct nvme_ns *n)
15691574
return 0;
15701575
}
15711576

1577+
static void nvme_ns_set_chrdev_name(struct nvme_ns *n, const char *name)
1578+
{
1579+
char generic_name[PATH_MAX];
1580+
int instance, head_instance;
1581+
int ret;
1582+
1583+
ret = sscanf(name, "nvme%dn%d", &instance, &head_instance);
1584+
if (ret != 2)
1585+
return;
1586+
1587+
sprintf(generic_name, "ng%dn%d", instance, head_instance);
1588+
n->generic_name = strdup(generic_name);
1589+
}
1590+
15721591
static nvme_ns_t nvme_ns_open(const char *name)
15731592
{
15741593
struct nvme_ns *n;
@@ -1584,6 +1603,8 @@ static nvme_ns_t nvme_ns_open(const char *name)
15841603
if (n->fd < 0)
15851604
goto free_ns;
15861605

1606+
nvme_ns_set_chrdev_name(n, name);
1607+
15871608
if (nvme_get_nsid(n->fd, &n->nsid) < 0)
15881609
goto close_fd;
15891610

src/nvme/tree.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,14 @@ const char *nvme_ns_get_sysfs_dir(nvme_ns_t n);
452452
*/
453453
const char *nvme_ns_get_name(nvme_ns_t n);
454454

455+
/**
456+
* nvme_ns_get_generic_name() - Returns name of generic namesapce chardev.
457+
* @n: Namespace instance
458+
*
459+
* Return: Name of generic namespace chardev
460+
*/
461+
const char *nvme_ns_get_generic_name(nvme_ns_t n);
462+
455463
/**
456464
* nvme_ns_get_firmware() -
457465
* @n:

0 commit comments

Comments
 (0)