* adfCheckFile * */
| 304 | * |
| 305 | */ |
| 306 | RETCODE adfCheckFile(struct Volume* vol, SECTNUM nSect, |
| 307 | struct bFileHeaderBlock* file, int level) |
| 308 | { |
| 309 | struct bFileExtBlock extBlock; |
| 310 | struct bOFSDataBlock dataBlock; |
| 311 | struct FileBlocks fileBlocks; |
| 312 | int n; |
| 313 | |
| 314 | adfGetFileBlocks(vol,file,&fileBlocks); |
| 315 | /*printf("data %ld ext %ld\n",fileBlocks.nbData,fileBlocks.nbExtens);*/ |
| 316 | if (isOFS(vol->dosType)) { |
| 317 | /* checks OFS datablocks */ |
| 318 | for(n=0; n<fileBlocks.nbData; n++) { |
| 319 | /*printf("%ld\n",fileBlocks.data[n]);*/ |
| 320 | adfReadDataBlock(vol,fileBlocks.data[n],&dataBlock); |
| 321 | if (dataBlock.headerKey!=fileBlocks.header) |
| 322 | (*adfEnv.wFct)("adfCheckFile : headerKey incorrect"); |
| 323 | if (dataBlock.seqNum!=n+1) |
| 324 | (*adfEnv.wFct)("adfCheckFile : seqNum incorrect"); |
| 325 | if (n<fileBlocks.nbData-1) { |
| 326 | if (dataBlock.nextData!=fileBlocks.data[n+1]) |
| 327 | (*adfEnv.wFct)("adfCheckFile : nextData incorrect"); |
| 328 | if (dataBlock.dataSize!=vol->datablockSize) |
| 329 | (*adfEnv.wFct)("adfCheckFile : dataSize incorrect"); |
| 330 | } |
| 331 | else { /* last datablock */ |
| 332 | if (dataBlock.nextData!=0) |
| 333 | (*adfEnv.wFct)("adfCheckFile : nextData incorrect"); |
| 334 | } |
| 335 | } |
| 336 | } |
| 337 | for(n=0; n<fileBlocks.nbExtens; n++) { |
| 338 | adfReadFileExtBlock(vol,fileBlocks.extens[n],&extBlock); |
| 339 | if (extBlock.parent!=file->headerKey) |
| 340 | (*adfEnv.wFct)("adfCheckFile : extBlock parent incorrect"); |
| 341 | if (n<fileBlocks.nbExtens-1) { |
| 342 | if (extBlock.extension!=fileBlocks.extens[n+1]) |
| 343 | (*adfEnv.wFct)("adfCheckFile : nextData incorrect"); |
| 344 | } |
| 345 | else |
| 346 | if (extBlock.extension!=0) |
| 347 | (*adfEnv.wFct)("adfCheckFile : nextData incorrect"); |
| 348 | } |
| 349 | |
| 350 | free(fileBlocks.data); |
| 351 | free(fileBlocks.extens); |
| 352 | |
| 353 | return RC_OK; |
| 354 | } |
| 355 | |
| 356 | |
| 357 | /* |
no test coverage detected