New -check_media option async_chunks=

This commit is contained in:
2012-05-01 07:49:46 +00:00
parent f0d4714db6
commit 79628f8551
7 changed files with 510 additions and 188 deletions

View File

@ -571,6 +571,7 @@ int Checkmediajob_new(struct CheckmediajoB **o, int flag)
m->min_lba= -1;
m->max_lba= -1;
m->min_block_size= 0;
m->async_chunks= 0;
m->mode= 0;
m->start_time= time(NULL);
m->time_limit= 28800;
@ -655,6 +656,12 @@ int Xorriso_check_media_setup_job(struct XorrisO *xorriso,
ret= Sfile_str(job->abort_file_path, argv[i] + 11, 0);
if(ret <= 0)
goto ex;
} else if(strncmp(argv[i], "async_chunks=", 13) == 0) {
num= Scanf_io_size(argv[i] + 13, 1);
if(num >= 0 && num <= 1024)
job->async_chunks= num;
else
goto bad_value;
} else if(strncmp(argv[i], "bad_limit=", 10) == 0) {
if(strcmp(argv[i] + 10, "good") == 0)
xorriso->check_media_bad_limit= Xorriso_read_quality_gooD;
@ -689,7 +696,7 @@ int Xorriso_check_media_setup_job(struct XorrisO *xorriso,
if(num >= 2048 || num == 0)
job->min_block_size= num / 2048;
else
goto unknown_value;
goto bad_value;
} else if(strncmp(argv[i], "event=", 6) == 0) {
strncpy(sev_text, argv[i] + 6, 19);
sev_text[19]= 0;
@ -731,7 +738,7 @@ int Xorriso_check_media_setup_job(struct XorrisO *xorriso,
num= -1;
sscanf(argv[i] + 11, "%lf", &num);
if(num > 0x7fffffff || num < 0)
goto unknown_value;
goto bad_value;
job->patch_lba0_msc1= num;
job->patch_lba0= (num >= 32) + (strstr(argv[i] + 11, ":force") != NULL);
} else
@ -815,6 +822,11 @@ unknown_value:;
"-check_media: Unknown value with option %s", argv[i]);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
bad_value:;
sprintf(xorriso->info_text,
"-check_media: Unsuitable value with option %s", argv[i]);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
} else {
sprintf(xorriso->info_text, "-check_media: Unknown option '%s'", argv[i]);