Context Navigation


Changeset 81 for branches


Ignore:
Timestamp:
Dec 13, 2008, 2:11:21 PM (17 years ago)
Author:
KO Myung-Hun
Message:

Removed unnecessary codes.

Location:
branches/fat32-0.9/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/fat32-0.9/src/ifscache.c

    r80 r81
    479479 break;
    480480 case TRUE :
    481 {
    482 BOOL fIdent = FALSE;
    483
    484 if( fDirty )
    485 {
    486 PCACHE pCache;
    487
    488 pCache = GetAddress(usCBIndex);
    489 fIdent = memcmp(p, pCache->bSector, SECTOR_SIZE) == 0;
    490 }
    491
    492 if( !fIdent )
    493 vReplaceSectorInCache(usCBIndex, p, fDirty);
    481 vReplaceSectorInCache(usCBIndex, p, fDirty);
    494482 UnlockBuffer(pCacheBase + usCBIndex);
    495483 break;
    496(削除) } (削除ここまで)
    497484 }
    498485 p += SECTOR_SIZE;
    998985 while (!f32Parms.fInShutDown && !pOptions->fTerminate &&
    999986 rc == WAIT_TIMED_OUT)
    1000/* f32Parms.usDirtySectors - f32Parms.usPendingFlush <= f32Parms.usDirtyT(削除) h (削除ここまで)reshold */
    987/* f32Parms.usDirtySectors - f32Parms.usPendingFlush <= f32Parms.usDirtyT(追記) (追記ここまで)reshold */
    1001988 {
    1002989 rc = DevHelp_ProcBlock((ULONG)DoEmergencyFlush, 5000L, 1);
    14831470 memcpy(pTar, pCache->bSector, SECTOR_SIZE);
    14841471
    1485(削除) /* (削除ここまで)
    1486(削除) rgfDirty[usCBIndex] = FALSE; (削除ここまで)
    1487(削除) f32Parms.usDirtySectors--; (削除ここまで)
    1488(削除) */ (削除ここまで)
    1489(削除) (削除ここまで)
    14901472 pBase->fFlushPending = SET;
    14911473 f32Parms.usPendingFlush++;
  • branches/fat32-0.9/src/ifsfile.c

    r78 r81
    619619}
    620620
    621(削除) #if 0 (削除ここまで)
    622(削除) /****************************************************************** (削除ここまで)
    623(削除) * (削除ここまで)
    624(削除) ******************************************************************/ (削除ここまで)
    625(削除) int far pascal FS_READ( (削除ここまで)
    626(削除) struct sffsi far * psffsi, /* psffsi */ (削除ここまで)
    627(削除) struct sffsd far * psffsd, /* psffsd */ (削除ここまで)
    628(削除) char far * pData, /* pData */ (削除ここまで)
    629(削除) unsigned short far * pLen, /* pLen */ (削除ここまで)
    630(削除) unsigned short usIOFlag /* IOflag */ (削除ここまで)
    631(削除) ) (削除ここまで)
    632(削除) { (削除ここまで)
    633(削除) USHORT rc; (削除ここまで)
    634(削除) PVOLINFO pVolInfo; (削除ここまで)
    635(削除) POPENINFO pOpenInfo = GetOpenInfo(psffsd); (削除ここまで)
    636(削除) USHORT usOffset; (削除ここまで)
    637(削除) USHORT usBytesAvail; (削除ここまで)
    638(削除) USHORT usBytesRead; (削除ここまで)
    639(削除) USHORT usBytesToRead; (削除ここまで)
    640(削除) PBYTE pbCluster; (削除ここまで)
    641(削除) ULONG ulSector; (削除ここまで)
    642(削除) USHORT usSectors; (削除ここまで)
    643(削除) USHORT usAlign; (削除ここまで)
    644(削除) ULONG ulClusterSector; (削除ここまで)
    645(削除) USHORT usClusterOffset; (削除ここまで)
    646(削除) (削除ここまで)
    647(削除) usBytesToRead = *pLen; (削除ここまで)
    648(削除) *pLen = 0; (削除ここまで)
    649(削除) pbCluster = NULL; (削除ここまで)
    650(削除) (削除ここまで)
    651(削除) if (f32Parms.fMessageActive & LOG_FS) (削除ここまで)
    652(削除) Message("FS_READ, %u bytes at offset %ld", (削除ここまで)
    653(削除) usBytesToRead, psffsi->sfi_position); (削除ここまで)
    654(削除) (削除ここまで)
    655(削除) pVolInfo = GetVolInfo(psffsi->sfi_hVPB); (削除ここまで)
    656(削除) if (IsDriveLocked(pVolInfo)) (削除ここまで)
    657(削除) { (削除ここまで)
    658(削除) rc = ERROR_DRIVE_LOCKED; (削除ここまで)
    659(削除) goto FS_READEXIT; (削除ここまで)
    660(削除) } (削除ここまで)
    661(削除) (削除ここまで)
    662(削除) if (psffsi->sfi_mode & OPEN_ACCESS_WRITEONLY) (削除ここまで)
    663(削除) { (削除ここまで)
    664(削除) rc = ERROR_ACCESS_DENIED; (削除ここまで)
    665(削除) goto FS_READEXIT; (削除ここまで)
    666(削除) } (削除ここまで)
    667(削除) (削除ここまで)
    668(削除) if (!usBytesToRead) (削除ここまで)
    669(削除) { (削除ここまで)
    670(削除) rc = 0; (削除ここまで)
    671(削除) goto FS_READEXIT; (削除ここまで)
    672(削除) } (削除ここまで)
    673(削除) (削除ここまで)
    674(削除) rc = MY_PROBEBUF(PB_OPWRITE, pData, usBytesToRead); (削除ここまで)
    675(削除) if (rc) (削除ここまで)
    676(削除) { (削除ここまで)
    677(削除) Message("Protection VIOLATION in FS_READ! (SYS%d)", rc); (削除ここまで)
    678(削除) return rc; (削除ここまで)
    679(削除) } (削除ここまで)
    680(削除) (削除ここまで)
    681(削除) pbCluster = malloc(pVolInfo->usClusterSize); (削除ここまで)
    682(削除) if (!pbCluster) (削除ここまで)
    683(削除) { (削除ここまで)
    684(削除) rc = ERROR_NOT_ENOUGH_MEMORY; (削除ここまで)
    685(削除) goto FS_READEXIT; (削除ここまで)
    686(削除) } (削除ここまで)
    687(削除) (削除ここまで)
    688(削除) usBytesRead = 0; (削除ここまで)
    689(削除) (削除ここまで)
    690(削除) if (psffsi->sfi_mode & OPEN_FLAGS_DASD) (削除ここまで)
    691(削除) { (削除ここまで)
    692(削除) ulSector = psffsi->sfi_position; (削除ここまで)
    693(削除) (削除ここまで)
    694(削除) if (!pOpenInfo->fSectorMode) (削除ここまで)
    695(削除) ulSector /= SECTOR_SIZE; (削除ここまで)
    696(削除) else (削除ここまで)
    697(削除) usBytesToRead *= SECTOR_SIZE; (削除ここまで)
    698(削除) (削除ここまで)
    699(削除) if (ulSector >= pVolInfo->BootSect.bpb.BigTotalSectors) (削除ここまで)
    700(削除) { (削除ここまで)
    701(削除) rc = ERROR_SECTOR_NOT_FOUND; (削除ここまで)
    702(削除) goto FS_READEXIT; (削除ここまで)
    703(削除) } (削除ここまで)
    704(削除) (削除ここまで)
    705(削除) while (usBytesRead < usBytesToRead && (削除ここまで)
    706(削除) ulSector < pVolInfo->BootSect.bpb.BigTotalSectors) (削除ここまで)
    707(削除) { (削除ここまで)
    708(削除) (削除ここまで)
    709(削除) if (!pOpenInfo->fSectorMode) (削除ここまで)
    710(削除) { (削除ここまで)
    711(削除) usOffset = (USHORT)(psffsi->sfi_position % SECTOR_SIZE); (削除ここまで)
    712(削除) (削除ここまで)
    713(削除) usAlign = ( usBytesToRead - usBytesRead ); (削除ここまで)
    714(削除) if( usOffset ) (削除ここまで)
    715(削除) { (削除ここまで)
    716(削除) if( usAlign <= ( USHORT )( SECTOR_SIZE - usOffset )) (削除ここまで)
    717(削除) usAlign = 0; (削除ここまで)
    718(削除) else (削除ここまで)
    719(削除) usAlign -= SECTOR_SIZE - usOffset; (削除ここまで)
    720(削除) } (削除ここまで)
    721(削除) (削除ここまで)
    722(削除) usSectors = ( USHORT )((( ULONG )usAlign + SECTOR_SIZE - 1 ) / SECTOR_SIZE ); (削除ここまで)
    723(削除) if( usOffset ) (削除ここまで)
    724(削除) usSectors++; (削除ここまで)
    725(削除) } (削除ここまで)
    726(削除) else (削除ここまで)
    727(削除) { (削除ここまで)
    728(削除) usOffset = 0; (削除ここまで)
    729(削除) usSectors = ( usBytesToRead - usBytesRead ) / SECTOR_SIZE; (削除ここまで)
    730(削除) } (削除ここまで)
    731(削除) (削除ここまで)
    732(削除) if(( ULONG )usSectors > ( pVolInfo->BootSect.bpb.BigTotalSectors - ulSector )) (削除ここまで)
    733(削除) usSectors = ( USHORT )( pVolInfo->BootSect.bpb.BigTotalSectors - ulSector ); (削除ここまで)
    734(削除) (削除ここまで)
    735(削除) if( usSectors > pVolInfo->BootSect.bpb.SectorsPerCluster ) (削除ここまで)
    736(削除) usSectors = pVolInfo->BootSect.bpb.SectorsPerCluster; (削除ここまで)
    737(削除) (削除ここまで)
    738(削除) usBytesAvail = (usSectors * pVolInfo->BootSect.bpb.BytesPerSector) - usOffset; (削除ここまで)
    739(削除) if (usBytesAvail > (usBytesToRead - usBytesRead)) (削除ここまで)
    740(削除) usBytesAvail = usBytesToRead - usBytesRead; (削除ここまで)
    741(削除) (削除ここまで)
    742(削除) #ifdef CALL_YIELD (削除ここまで)
    743(削除) Yield(); (削除ここまで)
    744(削除) #endif (削除ここまで)
    745(削除) (削除ここまで)
    746(削除) rc = ReadSector(pVolInfo, ulSector, usSectors, pbCluster, usIOFlag); (削除ここまで)
    747(削除) if (rc) (削除ここまで)
    748(削除) { (削除ここまで)
    749(削除) goto FS_READEXIT; (削除ここまで)
    750(削除) } (削除ここまで)
    751(削除) (削除ここまで)
    752(削除) memcpy(pData, pbCluster + usOffset, usBytesAvail); (削除ここまで)
    753(削除) (削除ここまで)
    754(削除) usBytesRead += usBytesAvail; (削除ここまで)
    755(削除) if (!pOpenInfo->fSectorMode) (削除ここまで)
    756(削除) psffsi->sfi_position += usBytesAvail; (削除ここまで)
    757(削除) else (削除ここまで)
    758(削除) psffsi->sfi_position += usSectors; (削除ここまで)
    759(削除) pData += usBytesAvail; (削除ここまで)
    760(削除) ulSector += usSectors; (削除ここまで)
    761(削除) } (削除ここまで)
    762(削除) (削除ここまで)
    763(削除) if (!pOpenInfo->fSectorMode) (削除ここまで)
    764(削除) *pLen = usBytesRead; (削除ここまで)
    765(削除) else (削除ここまで)
    766(削除) *pLen = usBytesRead / SECTOR_SIZE; (削除ここまで)
    767(削除) psffsi->sfi_tstamp |= ST_SREAD | ST_PREAD; (削除ここまで)
    768(削除) rc = 0; (削除ここまで)
    769(削除) goto FS_READEXIT; (削除ここまで)
    770(削除) } (削除ここまで)
    771(削除) (削除ここまで)
    772(削除) pOpenInfo->pSHInfo->fMustCommit = TRUE; (削除ここまで)
    773(削除) if (pOpenInfo->ulCurCluster == FAT_EOF) (削除ここまで)
    774(削除) pOpenInfo->ulCurCluster = PositionToOffset(pVolInfo, pOpenInfo, psffsi->sfi_position); (削除ここまで)
    775(削除) (削除ここまで)
    776(削除) while (usBytesRead < usBytesToRead && (削除ここまで)
    777(削除) pOpenInfo->ulCurCluster != FAT_EOF && (削除ここまで)
    778(削除) psffsi->sfi_position < psffsi->sfi_size) (削除ここまで)
    779(削除) { (削除ここまで)
    780(削除) (削除ここまで)
    781(削除) #ifdef CALL_YIELD (削除ここまで)
    782(削除) Yield(); (削除ここまで)
    783(削除) #endif (削除ここまで)
    784(削除) (削除ここまで)
    785(削除) ulClusterSector = pVolInfo->ulStartOfData + (削除ここまで)
    786(削除) ( pOpenInfo->ulCurCluster - 2) * pVolInfo->BootSect.bpb.SectorsPerCluster; (削除ここまで)
    787(削除) (削除ここまで)
    788(削除) usClusterOffset = (USHORT)(psffsi->sfi_position % pVolInfo->usClusterSize); (削除ここまで)
    789(削除) ulSector = ulClusterSector + ( usClusterOffset / SECTOR_SIZE ); (削除ここまで)
    790(削除) usOffset = usClusterOffset % SECTOR_SIZE; (削除ここまで)
    791(削除) (削除ここまで)
    792(削除) usAlign = ( usBytesToRead - usBytesRead ); (削除ここまで)
    793(削除) if( usOffset ) (削除ここまで)
    794(削除) { (削除ここまで)
    795(削除) if( usAlign <= ( USHORT )( SECTOR_SIZE - usOffset )) (削除ここまで)
    796(削除) usAlign = 0; (削除ここまで)
    797(削除) else (削除ここまで)
    798(削除) usAlign -= SECTOR_SIZE - usOffset; (削除ここまで)
    799(削除) } (削除ここまで)
    800(削除) (削除ここまで)
    801(削除) usSectors = ( USHORT )((( ULONG ) usAlign + SECTOR_SIZE - 1 ) / SECTOR_SIZE ); (削除ここまで)
    802(削除) if( usOffset ) (削除ここまで)
    803(削除) usSectors++; (削除ここまで)
    804(削除) (削除ここまで)
    805(削除) if( ulSector + usSectors > ulClusterSector + pVolInfo->BootSect.bpb.SectorsPerCluster ) (削除ここまで)
    806(削除) usSectors = ( USHORT )( ulClusterSector + pVolInfo->BootSect.bpb.SectorsPerCluster - ulSector ); (削除ここまで)
    807(削除) (削除ここまで)
    808(削除) usBytesAvail = (usSectors * pVolInfo->BootSect.bpb.BytesPerSector) - usOffset; (削除ここまで)
    809(削除) if (usBytesAvail > (usBytesToRead - usBytesRead)) (削除ここまで)
    810(削除) usBytesAvail = usBytesToRead - usBytesRead; (削除ここまで)
    811(削除) (削除ここまで)
    812(削除) if ((ULONG)usBytesAvail > psffsi->sfi_size - psffsi->sfi_position) (削除ここまで)
    813(削除) usBytesAvail = (USHORT)(psffsi->sfi_size - psffsi->sfi_position); (削除ここまで)
    814(削除) (削除ここまで)
    815(削除) rc = ReadSector(pVolInfo, ulSector, usSectors, pbCluster, usIOFlag ); (削除ここまで)
    816(削除) if (rc) (削除ここまで)
    817(削除) { (削除ここまで)
    818(削除) goto FS_READEXIT; (削除ここまで)
    819(削除) } (削除ここまで)
    820(削除) (削除ここまで)
    821(削除) memcpy(pData, pbCluster + usOffset, usBytesAvail); (削除ここまで)
    822(削除) (削除ここまで)
    823(削除) usBytesRead += usBytesAvail; (削除ここまで)
    824(削除) psffsi->sfi_position += usBytesAvail; (削除ここまで)
    825(削除) pData += usBytesAvail; (削除ここまで)
    826(削除) (削除ここまで)
    827(削除) if (usClusterOffset + usBytesAvail >= pVolInfo->usClusterSize) (削除ここまで)
    828(削除) { (削除ここまで)
    829(削除) pOpenInfo->ulCurCluster = GetNextCluster(pVolInfo, pOpenInfo->ulCurCluster); (削除ここまで)
    830(削除) if (!pOpenInfo->ulCurCluster) (削除ここまで)
    831(削除) pOpenInfo->ulCurCluster = FAT_EOF; (削除ここまで)
    832(削除) } (削除ここまで)
    833(削除) } (削除ここまで)
    834(削除) *pLen = usBytesRead; (削除ここまで)
    835(削除) (削除ここまで)
    836(削除) psffsi->sfi_tstamp |= ST_SREAD | ST_PREAD; (削除ここまで)
    837(削除) rc = 0; (削除ここまで)
    838(削除) (削除ここまで)
    839(削除) FS_READEXIT: (削除ここまで)
    840(削除) (削除ここまで)
    841(削除) if( pbCluster ) (削除ここまで)
    842(削除) free( pbCluster ); (削除ここまで)
    843(削除) (削除ここまで)
    844(削除) if (f32Parms.fMessageActive & LOG_FS) (削除ここまで)
    845(削除) Message("FS_READ returned %u (%u bytes read)", rc, *pLen); (削除ここまで)
    846(削除) return rc; (削除ここまで)
    847(削除) } (削除ここまで)
    848(削除) (削除ここまで)
    849(削除) (削除ここまで)
    850(削除) /****************************************************************** (削除ここまで)
    851(削除) * (削除ここまで)
    852(削除) ******************************************************************/ (削除ここまで)
    853(削除) int far pascal FS_WRITE( (削除ここまで)
    854(削除) struct sffsi far * psffsi, /* psffsi */ (削除ここまで)
    855(削除) struct sffsd far * psffsd, /* psffsd */ (削除ここまで)
    856(削除) char far * pData, /* pData */ (削除ここまで)
    857(削除) unsigned short far * pLen, /* pLen */ (削除ここまで)
    858(削除) unsigned short usIOFlag /* IOflag */ (削除ここまで)
    859(削除) ) (削除ここまで)
    860(削除) { (削除ここまで)
    861(削除) USHORT rc; (削除ここまで)
    862(削除) PVOLINFO pVolInfo; (削除ここまで)
    863(削除) POPENINFO pOpenInfo = GetOpenInfo(psffsd); (削除ここまで)
    864(削除) USHORT usOffset; (削除ここまで)
    865(削除) USHORT usBytesAvail; (削除ここまで)
    866(削除) USHORT usBytesWritten; (削除ここまで)
    867(削除) USHORT usBytesToWrite; (削除ここまで)
    868(削除) PBYTE pbCluster; (削除ここまで)
    869(削除) ULONG ulOldSize; (削除ここまで)
    870(削除) ULONG ulSector; (削除ここまで)
    871(削除) USHORT usSectors; (削除ここまで)
    872(削除) USHORT usAlign; (削除ここまで)
    873(削除) ULONG ulClusterSector; (削除ここまで)
    874(削除) USHORT usClusterOffset; (削除ここまで)
    875(削除) (削除ここまで)
    876(削除) usBytesToWrite = *pLen; (削除ここまで)
    877(削除) *pLen = 0; (削除ここまで)
    878(削除) pbCluster = NULL; (削除ここまで)
    879(削除) (削除ここまで)
    880(削除) if (f32Parms.fMessageActive & LOG_FS) (削除ここまで)
    881(削除) Message("FS_WRITE, %u bytes at offset %ld, ioflag %X, size = %lu", (削除ここまで)
    882(削除) usBytesToWrite, psffsi->sfi_position, usIOFlag, psffsi->sfi_size); (削除ここまで)
    883(削除) (削除ここまで)
    884(削除) pVolInfo = GetVolInfo(psffsi->sfi_hVPB); (削除ここまで)
    885(削除) if (IsDriveLocked(pVolInfo)) (削除ここまで)
    886(削除) { (削除ここまで)
    887(削除) rc = ERROR_DRIVE_LOCKED; (削除ここまで)
    888(削除) goto FS_WRITEEXIT; (削除ここまで)
    889(削除) } (削除ここまで)
    890(削除) (削除ここまで)
    891(削除) if (pVolInfo->fWriteProtected) (削除ここまで)
    892(削除) { (削除ここまで)
    893(削除) rc = ERROR_WRITE_PROTECT; (削除ここまで)
    894(削除) goto FS_WRITEEXIT; (削除ここまで)
    895(削除) } (削除ここまで)
    896(削除) (削除ここまで)
    897(削除) if (psffsi->sfi_mode & OPEN_FLAGS_DASD) (削除ここまで)
    898(削除) { (削除ここまで)
    899(削除) rc = ERROR_NOT_SUPPORTED; (削除ここまで)
    900(削除) goto FS_WRITEEXIT; (削除ここまで)
    901(削除) } (削除ここまで)
    902(削除) (削除ここまで)
    903(削除) if (!(psffsi->sfi_mode & OPEN_ACCESS_WRITEONLY) && (削除ここまで)
    904(削除) !(psffsi->sfi_mode & OPEN_ACCESS_READWRITE)) (削除ここまで)
    905(削除) { (削除ここまで)
    906(削除) rc = ERROR_ACCESS_DENIED; (削除ここまで)
    907(削除) goto FS_WRITEEXIT; (削除ここまで)
    908(削除) } (削除ここまで)
    909(削除) (削除ここまで)
    910(削除) if (!usBytesToWrite) (削除ここまで)
    911(削除) { (削除ここまで)
    912(削除) rc = 0; (削除ここまで)
    913(削除) goto FS_WRITEEXIT; (削除ここまで)
    914(削除) } (削除ここまで)
    915(削除) (削除ここまで)
    916(削除) rc = MY_PROBEBUF(PB_OPREAD, pData, usBytesToWrite); (削除ここまで)
    917(削除) if (rc) (削除ここまで)
    918(削除) { (削除ここまで)
    919(削除) Message("Protection VIOLATION in FS_WRITE! (SYS%d)", rc); (削除ここまで)
    920(削除) goto FS_WRITEEXIT; (削除ここまで)
    921(削除) } (削除ここまで)
    922(削除) (削除ここまで)
    923(削除) pOpenInfo->pSHInfo->fMustCommit = TRUE; (削除ここまで)
    924(削除) (削除ここまで)
    925(削除) /* (削除ここまで)
    926(削除) calculate size whereby old clusters must be read (削除ここまで)
    927(削除) */ (削除ここまで)
    928(削除) ulOldSize = psffsi->sfi_size / SECTOR_SIZE; (削除ここまで)
    929(削除) if (psffsi->sfi_size % SECTOR_SIZE) (削除ここまで)
    930(削除) ulOldSize++; (削除ここまで)
    931(削除) ulOldSize *= SECTOR_SIZE; (削除ここまで)
    932(削除) (削除ここまで)
    933(削除) /* (削除ここまで)
    934(削除) No writes if file is larger than 7FFFFFFF (= 2Gb) (削除ここまで)
    935(削除) */ (削除ここまで)
    936(削除) (削除ここまで)
    937(削除) if (psffsi->sfi_position >= LONG_MAX) (削除ここまで)
    938(削除) { (削除ここまで)
    939(削除) rc = 0; (削除ここまで)
    940(削除) goto FS_WRITEEXIT; (削除ここまで)
    941(削除) } (削除ここまで)
    942(削除) (削除ここまで)
    943(削除) if ((ULONG)LONG_MAX - psffsi->sfi_position < (ULONG)usBytesToWrite) (削除ここまで)
    944(削除) usBytesToWrite = (USHORT)((ULONG)LONG_MAX - psffsi->sfi_position); (削除ここまで)
    945(削除) (削除ここまで)
    946(削除) if (psffsi->sfi_position + usBytesToWrite > psffsi->sfi_size) (削除ここまで)
    947(削除) { (削除ここまで)
    948(削除) ULONG ulLast = FAT_EOF; (削除ここまで)
    949(削除) (削除ここまで)
    950(削除) if (pOpenInfo->ulCurCluster == FAT_EOF && (削除ここまで)
    951(削除) psffsi->sfi_position == psffsi->sfi_size && (削除ここまで)
    952(削除) !(psffsi->sfi_size % pVolInfo->usClusterSize)) (削除ここまで)
    953(削除) ulLast = pOpenInfo->pSHInfo->ulLastCluster; (削除ここまで)
    954(削除) (削除ここまで)
    955(削除) rc = NewSize(pVolInfo, psffsi, psffsd, (削除ここまで)
    956(削除) psffsi->sfi_position + usBytesToWrite, usIOFlag); (削除ここまで)
    957(削除) if (rc) (削除ここまで)
    958(削除) goto FS_WRITEEXIT; (削除ここまで)
    959(削除) (削除ここまで)
    960(削除) if (ulLast != FAT_EOF) (削除ここまで)
    961(削除) { (削除ここまで)
    962(削除) pOpenInfo->ulCurCluster = GetNextCluster(pVolInfo, ulLast); (削除ここまで)
    963(削除) if (!pOpenInfo->ulCurCluster) (削除ここまで)
    964(削除) pOpenInfo->ulCurCluster = FAT_EOF; (削除ここまで)
    965(削除) (削除ここまで)
    966(削除) if (pOpenInfo->ulCurCluster == FAT_EOF) (削除ここまで)
    967(削除) { (削除ここまで)
    968(削除) Message("FS_WRITE (INIT) No next cluster available!"); (削除ここまで)
    969(削除) CritMessage("FAT32: FS_WRITE (INIT) No next cluster available!"); (削除ここまで)
    970(削除) } (削除ここまで)
    971(削除) } (削除ここまで)
    972(削除) } (削除ここまで)
    973(削除) (削除ここまで)
    974(削除) if (pOpenInfo->ulCurCluster == FAT_EOF) (削除ここまで)
    975(削除) pOpenInfo->ulCurCluster = PositionToOffset(pVolInfo, pOpenInfo, psffsi->sfi_position); (削除ここまで)
    976(削除) (削除ここまで)
    977(削除) if (pOpenInfo->ulCurCluster == FAT_EOF) (削除ここまで)
    978(削除) { (削除ここまで)
    979(削除) Message("FS_WRITE (INIT2) No next cluster available!"); (削除ここまで)
    980(削除) CritMessage("FAT32: FS_WRITE (INIT2) No next cluster available!"); (削除ここまで)
    981(削除) return 6; (削除ここまで)
    982(削除) } (削除ここまで)
    983(削除) (削除ここまで)
    984(削除) pbCluster = malloc(pVolInfo->usClusterSize); (削除ここまで)
    985(削除) if (!pbCluster) (削除ここまで)
    986(削除) { (削除ここまで)
    987(削除) rc = ERROR_NOT_ENOUGH_MEMORY; (削除ここまで)
    988(削除) goto FS_WRITEEXIT; (削除ここまで)
    989(削除) } (削除ここまで)
    990(削除) (削除ここまで)
    991(削除) usBytesWritten = 0; (削除ここまで)
    992(削除) while (usBytesWritten < usBytesToWrite) (削除ここまで)
    993(削除) { (削除ここまで)
    994(削除) #ifdef CALL_YIELD (削除ここまで)
    995(削除) Yield(); (削除ここまで)
    996(削除) #endif (削除ここまで)
    997(削除) (削除ここまで)
    998(削除) ulClusterSector = pVolInfo->ulStartOfData + (削除ここまで)
    999(削除) ( pOpenInfo->ulCurCluster - 2) * pVolInfo->BootSect.bpb.SectorsPerCluster; (削除ここまで)
    1000(削除) (削除ここまで)
    1001(削除) usClusterOffset = (USHORT)(psffsi->sfi_position % pVolInfo->usClusterSize); (削除ここまで)
    1002(削除) ulSector = ulClusterSector + ( usClusterOffset / SECTOR_SIZE ); (削除ここまで)
    1003(削除) usOffset = usClusterOffset % SECTOR_SIZE; (削除ここまで)
    1004(削除) (削除ここまで)
    1005(削除) usAlign = ( usBytesToWrite - usBytesWritten ); (削除ここまで)
    1006(削除) if( usOffset ) (削除ここまで)
    1007(削除) { (削除ここまで)
    1008(削除) if( usAlign <= ( USHORT )( SECTOR_SIZE - usOffset )) (削除ここまで)
    1009(削除) usAlign = 0; (削除ここまで)
    1010(削除) else (削除ここまで)
    1011(削除) usAlign -= SECTOR_SIZE - usOffset; (削除ここまで)
    1012(削除) } (削除ここまで)
    1013(削除) (削除ここまで)
    1014(削除) usSectors = ( USHORT )((( ULONG ) usAlign + SECTOR_SIZE - 1 ) / SECTOR_SIZE ); (削除ここまで)
    1015(削除) if( usOffset ) (削除ここまで)
    1016(削除) usSectors++; (削除ここまで)
    1017(削除) (削除ここまで)
    1018(削除) if( ulSector + usSectors > ulClusterSector + pVolInfo->BootSect.bpb.SectorsPerCluster ) (削除ここまで)
    1019(削除) usSectors = ( USHORT )( ulClusterSector + pVolInfo->BootSect.bpb.SectorsPerCluster - ulSector ); (削除ここまで)
    1020(削除) (削除ここまで)
    1021(削除) usBytesAvail = (usSectors * pVolInfo->BootSect.bpb.BytesPerSector) - usOffset; (削除ここまで)
    1022(削除) if (usBytesAvail > (usBytesToWrite - usBytesWritten)) (削除ここまで)
    1023(削除) usBytesAvail = usBytesToWrite - usBytesWritten; (削除ここまで)
    1024(削除) (削除ここまで)
    1025(削除) usAlign = usBytesAvail; (削除ここまで)
    1026(削除) if( usOffset ) (削除ここまで)
    1027(削除) { (削除ここまで)
    1028(削除) if( usAlign <= ( USHORT )( SECTOR_SIZE - usOffset )) (削除ここまで)
    1029(削除) usAlign = 0; (削除ここまで)
    1030(削除) else (削除ここまで)
    1031(削除) usAlign -= SECTOR_SIZE - usOffset; (削除ここまで)
    1032(削除) } (削除ここまで)
    1033(削除) (削除ここまで)
    1034(削除) if( usOffset || ( usAlign % SECTOR_SIZE )) (削除ここまで)
    1035(削除) { (削除ここまで)
    1036(削除) if( psffsi->sfi_position < ulOldSize ) (削除ここまで)
    1037(削除) { (削除ここまで)
    1038(削除) #if 0 (削除ここまで)
    1039(削除) rc = ReadSector(pVolInfo, ulSector, usSectors, pbCluster, usIOFlag ); (削除ここまで)
    1040(削除) if (rc) (削除ここまで)
    1041(削除) { (削除ここまで)
    1042(削除) goto FS_WRITEEXIT; (削除ここまで)
    1043(削除) } (削除ここまで)
    1044(削除) #else (削除ここまで)
    1045(削除) if( usOffset ) (削除ここまで)
    1046(削除) { (削除ここまで)
    1047(削除) rc = ReadSector(pVolInfo, ulSector, 1, pbCluster, usIOFlag ); (削除ここまで)
    1048(削除) if (rc) (削除ここまで)
    1049(削除) { (削除ここまで)
    1050(削除) goto FS_WRITEEXIT; (削除ここまで)
    1051(削除) } (削除ここまで)
    1052(削除) } (削除ここまで)
    1053(削除) (削除ここまで)
    1054(削除) if( usAlign % SECTOR_SIZE ) (削除ここまで)
    1055(削除) { (削除ここまで)
    1056(削除) rc = ReadSector(pVolInfo, ulSector + usSectors - 1, 1, pbCluster + ( usSectors - 1 ) * SECTOR_SIZE, usIOFlag ); (削除ここまで)
    1057(削除) if (rc) (削除ここまで)
    1058(削除) { (削除ここまで)
    1059(削除) goto FS_WRITEEXIT; (削除ここまで)
    1060(削除) } (削除ここまで)
    1061(削除) } (削除ここまで)
    1062(削除) #endif (削除ここまで)
    1063(削除) } (削除ここまで)
    1064(削除) else (削除ここまで)
    1065(削除) memset(pbCluster, 0, pVolInfo->usClusterSize); (削除ここまで)
    1066(削除) } (削除ここまで)
    1067(削除) (削除ここまで)
    1068(削除) memcpy(pbCluster + usOffset, pData, usBytesAvail); (削除ここまで)
    1069(削除) (削除ここまで)
    1070(削除) rc = WriteSector( pVolInfo, ulSector, usSectors, pbCluster, usIOFlag ); (削除ここまで)
    1071(削除) if (rc) (削除ここまで)
    1072(削除) { (削除ここまで)
    1073(削除) goto FS_WRITEEXIT; (削除ここまで)
    1074(削除) } (削除ここまで)
    1075(削除) (削除ここまで)
    1076(削除) usBytesWritten += usBytesAvail; (削除ここまで)
    1077(削除) psffsi->sfi_position += usBytesAvail; (削除ここまで)
    1078(削除) if (psffsi->sfi_size < psffsi->sfi_position) (削除ここまで)
    1079(削除) psffsi->sfi_size = psffsi->sfi_position; (削除ここまで)
    1080(削除) pData += usBytesAvail; (削除ここまで)
    1081(削除) (削除ここまで)
    1082(削除) if (usClusterOffset + usBytesAvail >= pVolInfo->usClusterSize) (削除ここまで)
    1083(削除) { (削除ここまで)
    1084(削除) pOpenInfo->ulCurCluster = GetNextCluster( pVolInfo, pOpenInfo->ulCurCluster); (削除ここまで)
    1085(削除) if (!pOpenInfo->ulCurCluster) (削除ここまで)
    1086(削除) pOpenInfo->ulCurCluster = FAT_EOF; (削除ここまで)
    1087(削除) if (pOpenInfo->ulCurCluster == FAT_EOF && usBytesWritten < usBytesToWrite) (削除ここまで)
    1088(削除) { (削除ここまで)
    1089(削除) Message("FS_WRITE (LOOP) No next cluster available!, (still %u bytes to write)", usBytesToWrite - usBytesWritten); (削除ここまで)
    1090(削除) CritMessage("FAT32: FS_WRITE (LOOP) No next cluster available! (still %u bytes to write)", usBytesToWrite - usBytesWritten); (削除ここまで)
    1091(削除) *pLen = usBytesWritten; (削除ここまで)
    1092(削除) rc = ERROR_DISK_FULL; (削除ここまで)
    1093(削除) goto FS_WRITEEXIT; (削除ここまで)
    1094(削除) } (削除ここまで)
    1095(削除) } (削除ここまで)
    1096(削除) } (削除ここまで)
    1097(削除) (削除ここまで)
    1098(削除) *pLen = usBytesWritten; (削除ここまで)
    1099(削除) (削除ここまで)
    1100(削除) if (usBytesWritten) (削除ここまで)
    1101(削除) { (削除ここまで)
    1102(削除) psffsi->sfi_tstamp |= ST_SWRITE | ST_PWRITE; (削除ここまで)
    1103(削除) pOpenInfo->fCommitAttr = TRUE; (削除ここまで)
    1104(削除) pOpenInfo->pSHInfo->bAttr |= FILE_ARCHIVED; (削除ここまで)
    1105(削除) psffsi->sfi_DOSattr |= FILE_ARCHIVED; (削除ここまで)
    1106(削除) } (削除ここまで)
    1107(削除) (削除ここまで)
    1108(削除) (削除ここまで)
    1109(削除) if (usIOFlag & DVIO_OPWRTHRU) (削除ここまで)
    1110(削除) rc = FS_COMMIT(FS_COMMIT_ONE, usIOFlag, psffsi, psffsd); (削除ここまで)
    1111(削除) else (削除ここまで)
    1112(削除) rc = 0; (削除ここまで)
    1113(削除) (削除ここまで)
    1114(削除) FS_WRITEEXIT: (削除ここまで)
    1115(削除) if( pbCluster ) (削除ここまで)
    1116(削除) free( pbCluster ); (削除ここまで)
    1117(削除) (削除ここまで)
    1118(削除) if (f32Parms.fMessageActive & LOG_FS) (削除ここまで)
    1119(削除) Message("FS_WRITE returned %u (%u bytes written)", rc, *pLen); (削除ここまで)
    1120(削除) return rc; (削除ここまで)
    1121(削除) } (削除ここまで)
    1122(削除) #else (削除ここまで)
    1123621/******************************************************************
    1124622*
    19881486 return rc;
    19891487}
    1990(削除) #endif (削除ここまで)
    19911488
    19921489/******************************************************************
Note: See TracChangeset for help on using the changeset viewer.

AltStyle によって変換されたページ (->オリジナル) /