@@ -424,7 +424,7 @@ dz_if_dev_open(char *path)
424424 G_TYPE_UINT64 ,
425425 G_TYPE_UINT64 ,
426426 G_TYPE_UINT64 );
427- for (i = 0 ; i < dzd -> nr_zones ; i ++ ) {
427+ for (i = 0 ; i < dzd -> max_nr_zones ; i ++ ) {
428428 gtk_list_store_append (dzd -> zlist_store , & iter );
429429 }
430430 dzd -> zlist_model = GTK_TREE_MODEL (dzd -> zlist_store );
@@ -679,7 +679,7 @@ dz_if_zlist_print_zone_type(GtkTreeViewColumn *col,
679679 int i ;
680680
681681 gtk_tree_model_get (model , iter , DZ_ZONE_NUM , & i , -1 );
682- z = & dzd -> zones [i ];
682+ z = & dzd -> zones [i ]. info ;
683683
684684 /* Normal black font */
685685 g_object_set (renderer , "foreground" , "Black" , "foreground-set" , TRUE, NULL );
@@ -711,7 +711,7 @@ dz_if_zlist_print_zone_cond(GtkTreeViewColumn *col,
711711 int i ;
712712
713713 gtk_tree_model_get (model , iter , DZ_ZONE_NUM , & i , -1 );
714- z = & dzd -> zones [i ];
714+ z = & dzd -> zones [i ]. info ;
715715
716716 /* Normal black font by default */
717717 g_object_set (renderer , "foreground" , "Black" , "foreground-set" , TRUE, NULL );
@@ -757,7 +757,7 @@ dz_if_zlist_print_zone_need_reset(GtkTreeViewColumn *col,
757757 int i ;
758758
759759 gtk_tree_model_get (model , iter , DZ_ZONE_NUM , & i , -1 );
760- z = & dzd -> zones [i ];
760+ z = & dzd -> zones [i ]. info ;
761761
762762 /* Zone need reset */
763763 if ( zbc_zone_need_reset (z ) ) {
@@ -786,7 +786,7 @@ dz_if_zlist_print_zone_nonseq(GtkTreeViewColumn *col,
786786 int i ;
787787
788788 gtk_tree_model_get (model , iter , DZ_ZONE_NUM , & i , -1 );
789- z = & dzd -> zones [i ];
789+ z = & dzd -> zones [i ]. info ;
790790
791791 /* Zone non seq */
792792 if ( zbc_zone_non_seq (z ) ) {
@@ -815,7 +815,7 @@ dz_if_zlist_print_zone_start(GtkTreeViewColumn *col,
815815 int i ;
816816
817817 gtk_tree_model_get (model , iter , DZ_ZONE_NUM , & i , -1 );
818- z = & dzd -> zones [i ];
818+ z = & dzd -> zones [i ]. info ;
819819
820820 /* Zone start LBA */
821821 g_object_set (renderer , "foreground" , "Black" , "foreground-set" , TRUE, NULL );
@@ -843,7 +843,7 @@ dz_if_zlist_print_zone_length(GtkTreeViewColumn *col,
843843 int i ;
844844
845845 gtk_tree_model_get (model , iter , DZ_ZONE_NUM , & i , -1 );
846- z = & dzd -> zones [i ];
846+ z = & dzd -> zones [i ]. info ;
847847
848848 /* Zone length */
849849 g_object_set (renderer , "foreground" , "Black" , "foreground-set" , TRUE, NULL );
@@ -871,7 +871,7 @@ dz_if_zlist_print_zone_wp(GtkTreeViewColumn *col,
871871 int i ;
872872
873873 gtk_tree_model_get (model , iter , DZ_ZONE_NUM , & i , -1 );
874- z = & dzd -> zones [i ];
874+ z = & dzd -> zones [i ]. info ;
875875
876876 /* Zone wp LBA */
877877 if ( zbc_zone_not_wp (z ) ) {
@@ -908,12 +908,16 @@ dz_if_zlist_fill(dz_dev_t *dzd)
908908
909909 gtk_tree_model_get_iter_first (dzd -> zlist_model , & iter );
910910
911- for (i = 0 ; i < dzd -> nr_zones ; i ++ ) {
911+ for (i = 0 ; i < dzd -> max_nr_zones ; i ++ ) {
912912
913- z = & dzd -> zones [i ];
913+ if ( ! dzd -> zones [i ].show ) {
914+ continue ;
915+ }
916+
917+ z = & dzd -> zones [i ].info ;
914918
915919 gtk_list_store_set (dzd -> zlist_store , & iter ,
916- DZ_ZONE_NUM , i ,
920+ DZ_ZONE_NUM , dzd -> zones [ i ]. no ,
917921 DZ_ZONE_TYPE , z -> zbz_type ,
918922 DZ_ZONE_COND , z -> zbz_condition ,
919923 DZ_ZONE_NEED_RESET , zbc_zone_need_reset (z ),
@@ -959,15 +963,11 @@ dz_if_zlist_update_range(dz_dev_t *dzd)
959963 if ( gtk_tree_model_get_iter (dzd -> zlist_model , & iter , end ) == TRUE ) {
960964 gtk_tree_model_get (dzd -> zlist_model , & iter , DZ_ZONE_NUM , & dzd -> zlist_end_no , -1 );
961965 } else {
962- dzd -> zlist_end_no = dzd -> nr_zones - 1 ;
966+ dzd -> zlist_end_no = dzd -> max_nr_zones - 1 ;
963967 }
964968 gtk_tree_path_free (end );
965969 } else {
966- dzd -> zlist_end_no = dzd -> nr_zones - 1 ;
967- }
968-
969- if ( dzd -> zlist_end_no >= dzd -> nr_zones ) {
970- dzd -> zlist_end_no = dzd -> nr_zones - 1 ;
970+ dzd -> zlist_end_no = dzd -> max_nr_zones - 1 ;
971971 }
972972
973973 return ;
@@ -1048,7 +1048,7 @@ dz_if_zblock_set(dz_dev_t *dzd)
10481048 if ( dzd -> zlist_selection < 0 ) {
10491049 block = -1 ;
10501050 } else {
1051- block = dz_if_lba2block (dzd , zbc_zone_start_lba (& dzd -> zones [dzd -> zlist_selection ]));
1051+ block = dz_if_lba2block (dzd , zbc_zone_start_lba (& dzd -> zones [dzd -> zlist_selection ]. info ));
10521052 }
10531053
10541054 if ( dzd -> use_hexa ) {
@@ -1158,7 +1158,7 @@ dz_if_znum_set_cb(GtkEntry *entry,
11581158 int zno ;
11591159
11601160 zno = atoi (gtk_entry_get_text (entry ));
1161- if ( (zno < 0 ) || (zno >= (gint )dzd -> nr_zones ) ) {
1161+ if ( (zno < 0 ) || (zno >= (gint )dzd -> max_nr_zones ) ) {
11621162 dz_if_zlist_do_unselect (dzd );
11631163 return ;
11641164 }
@@ -1183,8 +1183,8 @@ dz_if_zblock_set_cb(GtkEntry *entry,
11831183 if ( (block >= 0 )
11841184 && (block < dz_if_lba2block (dzd , dzd -> info .zbd_logical_blocks )) ) {
11851185 /* Search zone */
1186- for (i = 0 ; i < dzd -> nr_zones ; i ++ ) {
1187- z = & dzd -> zones [i ];
1186+ for (i = 0 ; i < dzd -> max_nr_zones ; i ++ ) {
1187+ z = & dzd -> zones [i ]. info ;
11881188 if ( (block >= dz_if_lba2block (dzd , zbc_zone_start_lba (z )))
11891189 && (block < dz_if_lba2block (dzd , zbc_zone_start_lba (z ) + zbc_zone_length (z ))) ) {
11901190 zno = i ;
@@ -1463,24 +1463,32 @@ dz_if_zones_draw_cb(GtkWidget *widget,
14631463 h = allocation .height ;
14641464
14651465 /* Get total viewed capacity */
1466- if ( dzd -> zlist_end_no >= dzd -> nr_zones ) {
1467- dzd -> zlist_end_no = dzd -> nr_zones - 1 ;
1466+ if ( dzd -> zlist_end_no >= dzd -> max_nr_zones ) {
1467+ dzd -> zlist_end_no = dzd -> max_nr_zones - 1 ;
14681468 }
14691469 for (i = dzd -> zlist_start_no ; i <= dzd -> zlist_end_no ; i ++ ) {
1470- cap += zbc_zone_length (& dzd -> zones [i ]);
1470+ if ( dzd -> zones [i ].show ) {
1471+ cap += zbc_zone_length (& dzd -> zones [i ].info );
1472+ }
14711473 }
14721474
14731475 /* Center overall drawing using x offset */
14741476 zw = 0 ;
14751477 for (i = dzd -> zlist_start_no ; i <= dzd -> zlist_end_no ; i ++ ) {
1476- zw += ((unsigned long long )w * zbc_zone_length (& dzd -> zones [i ])) / cap ;
1478+ if ( dzd -> zones [i ].show ) {
1479+ zw += ((unsigned long long )w * zbc_zone_length (& dzd -> zones [i ].info )) / cap ;
1480+ }
14771481 }
14781482 x = DZ_DRAW_WOFST + (w - zw ) / 2 ;
14791483
14801484 /* Draw zones */
14811485 for (i = dzd -> zlist_start_no ; i <= dzd -> zlist_end_no ; i ++ ) {
14821486
1483- z = & dzd -> zones [i ];
1487+ if ( ! dzd -> zones [i ].show ) {
1488+ continue ;
1489+ }
1490+
1491+ z = & dzd -> zones [i ].info ;
14841492
14851493 /* Draw zone outline */
14861494 zw = (w * zbc_zone_length (z )) / cap ;
@@ -1519,7 +1527,7 @@ dz_if_zones_draw_cb(GtkWidget *widget,
15191527 cairo_set_font_size (cr , 10 );
15201528
15211529 /* Write zone number */
1522- sprintf (str , "%05d" , i );
1530+ sprintf (str , "%05d" , dzd -> zones [ i ]. no );
15231531 cairo_text_extents (cr , str , & te );
15241532 cairo_move_to (cr , x + zw / 2 - te .width / 2 - te .x_bearing , DZ_DRAW_HOFST - te .height / 2 );
15251533 cairo_show_text (cr , str );
0 commit comments