Changeset 115 for branches/fat32-0.10/src/ifs/ifsmount.c
- Timestamp:
- Aug 17, 2016, 10:16:30 AM (9 years ago)
- Author:
- Valery V. Sedletski
- Message:
-
fat32.ifs: Fix a trap after FS_MOUNT on REDETERMINEMEDIA ioctl. Added push es/pop es on enter/exit of each top-level IFS routine.
- File:
-
- 1 edited
- branches/fat32-0.10/src/ifs/ifsmount.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/fat32-0.10/src/ifs/ifsmount.c
r109 r115 18 18 PRIVATE BOOL IsFAT32(PBOOTSECT pBoot); 19 19 20 int far pascal _loadds (削除) (削除ここまで)FS_MOUNT(unsigned short usFlag, /* flag */20 int far pascal _loadds (追記) (追記ここまで)FS_MOUNT(unsigned short usFlag, /* flag */ 21 21 struct vpfsi far * pvpfsi, /* pvpfsi */ 22 22 struct vpfsd far * pvpfsd, /* pvpfsd */ … … 34 34 35 35 _asm push es; 36 (削除) //_asm push bx; (削除ここまで)37 36 38 37 if (f32Parms.fMessageActive & LOG_FS) … … 217 216 if (rc && rc != ERROR_WRITE_PROTECT) 218 217 { 219 Message("Cannot access drive, rc = %u", rc); 218 if (f32Parms.fMessageActive & LOG_FS) 219 Message("Cannot access drive, rc = %u", rc); 220 220 goto FS_MOUNT_EXIT; 221 221 } … … 224 224 225 225 pVolInfo->fDiskCleanOnMount = pVolInfo->fDiskClean = GetDiskStatus(pVolInfo); 226 if (!pVolInfo->fDiskCleanOnMount (削除) (削除ここまで))226 if (!pVolInfo->fDiskCleanOnMount(追記) && f32Parms.fMessageActive & LOG_FS (追記ここまで)) 227 227 Message("DISK IS DIRTY!"); 228 228 if (pVolInfo->fWriteProtected) … … 239 239 pVolChars = pvpfsi->vpi_pVCS; 240 240 241 if (pDevCaps->Capabilities & GDC_DD_Read2) 242 Message("Read2 supported"); 243 if (pDevCaps->Capabilities & GDC_DD_DMA_Word) 244 Message("DMA on word alligned buffers supported"); 245 if (pDevCaps->Capabilities & GDC_DD_DMA_Byte) 246 Message("DMA on byte alligned buffers supported"); 247 if (pDevCaps->Capabilities & GDC_DD_Mirror) 248 Message("Disk Mirroring supported"); 249 if (pDevCaps->Capabilities & GDC_DD_Duplex) 250 Message("Disk Duplexing supported"); 251 if (pDevCaps->Capabilities & GDC_DD_No_Block) 252 Message("Strategy2 does not block"); 253 if (pDevCaps->Capabilities & GDC_DD_16M) 254 Message(">16M supported"); 241 if (f32Parms.fMessageActive & LOG_FS) 242 { 243 if (pDevCaps->Capabilities & GDC_DD_Read2) 244 Message("Read2 supported"); 245 if (pDevCaps->Capabilities & GDC_DD_DMA_Word) 246 Message("DMA on word alligned buffers supported"); 247 if (pDevCaps->Capabilities & GDC_DD_DMA_Byte) 248 Message("DMA on byte alligned buffers supported"); 249 if (pDevCaps->Capabilities & GDC_DD_Mirror) 250 Message("Disk Mirroring supported"); 251 if (pDevCaps->Capabilities & GDC_DD_Duplex) 252 Message("Disk Duplexing supported"); 253 if (pDevCaps->Capabilities & GDC_DD_No_Block) 254 Message("Strategy2 does not block"); 255 if (pDevCaps->Capabilities & GDC_DD_16M) 256 Message(">16M supported"); 257 } 258 255 259 if (pDevCaps->Strategy2) 256 { 257 Message("Strategy2 address at %lX", pDevCaps->Strategy2); 258 Message("ChgPriority address at %lX", pDevCaps->ChgPriority); 260 { 261 if (f32Parms.fMessageActive & LOG_FS) 262 { 263 Message("Strategy2 address at %lX", pDevCaps->Strategy2); 264 Message("ChgPriority address at %lX", pDevCaps->ChgPriority); 265 } 259 266 260 267 pVolInfo->pfnStrategy = (STRATFUNC)pDevCaps->Strategy2; 261 268 pVolInfo->pfnPriority = (STRATFUNC)pDevCaps->ChgPriority; 262 (削除) (削除ここまで)}269 (追記) (追記ここまで)} 263 270 264 271 rc = 0; … … 343 350 pVolChars = pvpfsi->vpi_pVCS; 344 351 345 if (pDevCaps->Capabilities & GDC_DD_Read2) 346 Message("Read2 supported"); 347 if (pDevCaps->Capabilities & GDC_DD_DMA_Word) 348 Message("DMA on word alligned buffers supported"); 349 if (pDevCaps->Capabilities & GDC_DD_DMA_Byte) 350 Message("DMA on byte alligned buffers supported"); 351 if (pDevCaps->Capabilities & GDC_DD_Mirror) 352 Message("Disk Mirroring supported"); 353 if (pDevCaps->Capabilities & GDC_DD_Duplex) 354 Message("Disk Duplexing supported"); 355 if (pDevCaps->Capabilities & GDC_DD_No_Block) 356 Message("Strategy2 does not block"); 357 if (pDevCaps->Capabilities & GDC_DD_16M) 358 Message(">16M supported"); 352 if (f32Parms.fMessageActive & LOG_FS) 353 { 354 if (pDevCaps->Capabilities & GDC_DD_Read2) 355 Message("Read2 supported"); 356 if (pDevCaps->Capabilities & GDC_DD_DMA_Word) 357 Message("DMA on word alligned buffers supported"); 358 if (pDevCaps->Capabilities & GDC_DD_DMA_Byte) 359 Message("DMA on byte alligned buffers supported"); 360 if (pDevCaps->Capabilities & GDC_DD_Mirror) 361 Message("Disk Mirroring supported"); 362 if (pDevCaps->Capabilities & GDC_DD_Duplex) 363 Message("Disk Duplexing supported"); 364 if (pDevCaps->Capabilities & GDC_DD_No_Block) 365 Message("Strategy2 does not block"); 366 if (pDevCaps->Capabilities & GDC_DD_16M) 367 Message(">16M supported"); 368 } 369 359 370 if (pDevCaps->Strategy2) 360 { 361 Message("Strategy2 address at %lX", pDevCaps->Strategy2); 362 Message("ChgPriority address at %lX", pDevCaps->ChgPriority); 371 { 372 if (f32Parms.fMessageActive & LOG_FS) 373 { 374 Message("Strategy2 address at %lX", pDevCaps->Strategy2); 375 Message("ChgPriority address at %lX", pDevCaps->ChgPriority); 376 } 363 377 364 378 pVolInfo->pfnStrategy = (STRATFUNC)pDevCaps->Strategy2; 365 379 pVolInfo->pfnPriority = (STRATFUNC)pDevCaps->ChgPriority; 366 (削除) (削除ここまで)}380 (追記) (追記ここまで)} 367 381 368 382 rc = 0; … … 435 449 usVolCount--; 436 450 } 437 } (削除) (削除ここまで)438 */ 451 } (追記) */ (追記ここまで) 452 439 453 RemoveVolume(pVolInfo); 440 454 freeseg(pVolInfo); … … 451 465 Message("FS_MOUNT returned %u\n", rc); 452 466 453 (削除) //_asm int 3 (削除ここまで)454 (削除) //_asm pop bx; (削除ここまで)455 467 _asm pop es; 456 468
Note:
See TracChangeset
for help on using the changeset viewer.