File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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;
Original file line number Diff line number Diff 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 ;
Original file line number Diff line number Diff 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+
13681373const 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+
15721591static 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
Original file line number Diff line number Diff line change @@ -452,6 +452,14 @@ const char *nvme_ns_get_sysfs_dir(nvme_ns_t n);
452452 */
453453const 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:
You can’t perform that action at this time.
0 commit comments