New -zisofs parameter bpt_free_ratio=

This commit is contained in:
2020-10-22 13:42:51 +02:00
parent 5a6aa8a71e
commit c4d66ecb19
10 changed files with 152 additions and 78 deletions

View File

@ -664,6 +664,13 @@ int Xorriso_set_zisofs_params(struct XorrisO *xorriso, int flag)
memset(&ctrl, 0, sizeof(ctrl));
ctrl.version= 1;
ret= iso_zisofs_get_params(&ctrl, 0);
if(ret < 0) {
Xorriso_report_iso_error(xorriso, "", ret,
"Error when inquiring zisofs parameters before setting some",
0, "FAILURE", 1);
return(0);
}
ctrl.compression_level= xorriso->zlib_level;
if(xorriso->zisofs_block_size == (1 << 16))
@ -681,6 +688,7 @@ int Xorriso_set_zisofs_params(struct XorrisO *xorriso, int flag)
if(xorriso->zisofs_v2_block_size == (1 << i))
ctrl.v2_block_size_log2= i;
ctrl.block_number_target= xorriso->zisofs_block_number_target;
ctrl.bpt_discard_free_ratio= xorriso->zisofs_bpt_discard_free_ratio;
ret= iso_zisofs_set_params(&ctrl, 0);
Xorriso_process_msg_queues(xorriso,0);
@ -750,19 +758,26 @@ int Xorriso_status_zisofs(struct XorrisO *xorriso, char *filter, FILE *fp,
(double) xorriso->zisofs_block_number_target);
Xorriso_status_result(xorriso, filter, fp, flag & 2);
}
used_blocks= Xorriso_zisofs_current_blocks(xorriso, 0);
if(always || !(
xorriso->zisofs_max_total_blocks ==
xorriso->zisofs_max_total_blocks ==
xorriso->zisofs_max_total_blocks_default &&
xorriso->zisofs_max_file_blocks ==
xorriso->zisofs_max_file_blocks ==
xorriso->zisofs_max_file_blocks_default &&
used_blocks == 0)) {
xorriso->zisofs_bpt_discard_free_ratio ==
xorriso->zisofs_bpt_discard_free_ratio_default)) {
sprintf(xorriso->result_line,
"-zisofs max_bpt=%.f:bpt_used=%.f:max_bpt_f=%.f\n",
(double) xorriso->zisofs_max_total_blocks * 8.0,
"-zisofs max_bpt=%.f:max_bpt_f=%.f:bpt_free_ratio=%.3f\n",
(double) xorriso->zisofs_max_total_blocks * 8.0,
(double) xorriso->zisofs_max_file_blocks * 8.0,
xorriso->zisofs_bpt_discard_free_ratio);
Xorriso_status_result(xorriso, filter, fp, flag & 2);
}
if(always || !(used_blocks == 0)) {
sprintf(xorriso->result_line,
"-zisofs bpt_used=%.f:bpt_ratio_used=%.3f\n",
(double) used_blocks * 8.0,
(double) xorriso->zisofs_max_file_blocks * 8.0);
((double) used_blocks) / (double) xorriso->zisofs_max_total_blocks);
Xorriso_status_result(xorriso, filter, fp, flag & 2);
}
if(always || !(