@@ -39,7 +39,7 @@ static int detect_zns(nvme_ns_t ns, int *out_supported)
3939 return err ;
4040}
4141
42- static int print_zns_list_ns (nvme_ns_t ns )
42+ static int print_zns_list_ns (nvme_ns_t ns , struct table * t )
4343{
4444 int supported ;
4545 int err = 0 ;
@@ -51,12 +51,12 @@ static int print_zns_list_ns(nvme_ns_t ns)
5151 }
5252
5353 if (supported )
54- nvme_show_list_item (ns );
54+ nvme_show_list_item (ns , t );
5555
5656 return err ;
5757}
5858
59- static int print_zns_list (nvme_root_t nvme_root )
59+ static int print_zns_list (nvme_root_t nvme_root , struct table * t )
6060{
6161 int err = 0 ;
6262 nvme_host_t h ;
@@ -67,14 +67,14 @@ static int print_zns_list(nvme_root_t nvme_root)
6767 nvme_for_each_host (nvme_root , h ) {
6868 nvme_for_each_subsystem (h , s ) {
6969 nvme_subsystem_for_each_ns (s , n ) {
70- err = print_zns_list_ns (n );
70+ err = print_zns_list_ns (n , t );
7171 if (err )
7272 return err ;
7373 }
7474
7575 nvme_subsystem_for_each_ctrl (s , c ) {
7676 nvme_ctrl_for_each_ns (c , n ) {
77- err = print_zns_list_ns (n );
77+ err = print_zns_list_ns (n , t );
7878 if (err )
7979 return err ;
8080 }
@@ -90,21 +90,31 @@ static int list(int argc, char **argv, struct command *cmd,
9090{
9191 int err = 0 ;
9292 nvme_root_t nvme_root ;
93-
94- printf ("%-21s %-20s %-40s %-9s %-26s %-16s %-8s\n" , "Node" , "SN" ,
95- "Model" , "Namespace" , "Usage" , "Format" , "FW Rev" );
96- printf ("%-.21s %-.20s %-.40s %-.9s %-.26s %-.16s %-.8s\n" , dash , dash ,
97- dash , dash , dash , dash , dash );
93+ struct table_column columns [] = {
94+ { "Node" , LEFT , 21 },
95+ { "Generic" , LEFT , 21 },
96+ { "SN" , LEFT , 20 },
97+ { "Model" , LEFT , 40 },
98+ { "Namespace" , LEFT , 10 },
99+ { "Usage" , LEFT , 26 },
100+ { "Format" , LEFT , 16 },
101+ { "FW Rev" , LEFT , 8 },
102+ };
103+ struct table * t = table_init_with_columns (columns , ARRAY_SIZE (columns ));
98104
99105 nvme_root = nvme_scan (NULL );
100- if (nvme_root ) {
101- err = print_zns_list (nvme_root );
102- nvme_free_tree (nvme_root );
103- } else {
106+ if (!nvme_root ) {
104107 fprintf (stderr , "Failed to scan nvme subsystems\n" );
105- err = - errno ;
108+ return - errno ;
106109 }
107110
111+ err = print_zns_list (nvme_root , t );
112+ nvme_free_tree (nvme_root );
113+
114+ table_print (t );
115+
116+ table_free (t );
117+
108118 return err ;
109119}
110120
0 commit comments