Ignore:
Timestamp:
Dec 4, 2000, 1:42:22 PM (25 years ago)
Author:
bird
Message:

Added inclusion of profile.h.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/disk.cpp

    r4749 r4753  
    1 /* $Id: disk.cpp,v 1.21 2000-12-03 22:20:31 sandervl Exp $ */
     1/* $Id: disk.cpp,v 1.22 2000-12-04 12:42:22 bird Exp $ */
    22
    33/*
     
    2222#include "oslibdos.h"
    2323#include "exceptutil.h"
     24#include "profile.h"
    2425
    2526#define DBG_LOCALLOG  DBG_disk
     
    5657//******************************************************************************
    5758ODINFUNCTION5(BOOL, GetDiskFreeSpaceA,
    58               LPCSTR, arg1, 
     59              LPCSTR, arg1,
    5960              PDWORD, arg2,
    6061              PDWORD, arg3,
     
    6364{
    6465  BOOL rc;
    65   DWORD dwSectorsPerCluster;    // address of sectors per cluster ter
    66   DWORD dwBytesPerSector;       // address of bytes per sector
    67   DWORD dwNumberOfFreeClusters; // address of number of free clusters
    68   DWORD dwTotalNumberOfClusters;        // address of total number of clusters
    69  
     66  DWORD dwSectorsPerCluster;    // address of sectors per cluster ter
     67  DWORD dwBytesPerSector;   // address of bytes per sector
     68  DWORD dwNumberOfFreeClusters; // address of number of free clusters
     69  DWORD dwTotalNumberOfClusters;    // address of total number of clusters
     70
    7071  dprintf(("KERNEL32:  GetDiskFreeSpaceA %s, 0x%08X, 0x%08X, 0x%08X, 0x%08X,\n",
    7172             arg1!=NULL?arg1:"NULL", arg2,arg3,arg4,arg5));
     
    8788       a TVFS drive. This fakes the clustersizes to 32. The following
    8889       entry must be present in ODIN.INI:
    89        
     90
    9091       [DRIVESPACE]
    9192       TVFSTOHPFS = 1
     
    103104
    104105  }
    105  
     106
    106107  return rc;
    107108}
     
    174175{
    175176    BOOL rc;
    176     DWORD dwSectorsPerCluster;  // address of sectors per cluster ter
    177     DWORD dwBytesPerSector;     // address of bytes per sector
    178     DWORD dwNumberOfFreeClusters;       // address of number of free clusters
    179     DWORD dwTotalNumberOfClusters;      // address of total number of clusters
     177    DWORD dwSectorsPerCluster;  // address of sectors per cluster ter
     178    DWORD dwBytesPerSector; // address of bytes per sector
     179    DWORD dwNumberOfFreeClusters;   // address of number of free clusters
     180    DWORD dwTotalNumberOfClusters;  // address of total number of clusters
    180181
    181182    rc = GetDiskFreeSpaceA(lpDirectoryName, &dwSectorsPerCluster, &dwBytesPerSector,
     
    183184    if(rc)
    184185    {
    185         if(lpFreeBytesAvailableToCaller!=NULL) {
    186                 Mul32x32to64(lpFreeBytesAvailableToCaller, dwNumberOfFreeClusters, (dwSectorsPerCluster*dwBytesPerSector));
    187                 dprintf(("lpFreeBytesAvailableToCaller %x%x", lpFreeBytesAvailableToCaller->LowPart, lpFreeBytesAvailableToCaller->HighPart));
    188         }
    189         if(lpTotalNumberOfBytes!=NULL) {
    190                 Mul32x32to64(lpTotalNumberOfBytes, dwTotalNumberOfClusters, (dwSectorsPerCluster*dwBytesPerSector));
    191                 dprintf(("lpTotalNumberOfBytes %x%x", lpTotalNumberOfBytes->LowPart, lpTotalNumberOfBytes->HighPart));
    192         }
    193         if(lpTotalNumberOfFreeBytes!=NULL) {
    194                 memcpy(lpTotalNumberOfFreeBytes, lpFreeBytesAvailableToCaller, sizeof(*lpFreeBytesAvailableToCaller));
    195                 dprintf(("lpTotalNumberOfFreeBytes %x%x", lpTotalNumberOfFreeBytes->LowPart, lpTotalNumberOfFreeBytes->HighPart));
    196         }
     186        if(lpFreeBytesAvailableToCaller!=NULL) {
     187        Mul32x32to64(lpFreeBytesAvailableToCaller, dwNumberOfFreeClusters, (dwSectorsPerCluster*dwBytesPerSector));
     188        dprintf(("lpFreeBytesAvailableToCaller %x%x", lpFreeBytesAvailableToCaller->LowPart, lpFreeBytesAvailableToCaller->HighPart));
     189    }
     190        if(lpTotalNumberOfBytes!=NULL) {
     191        Mul32x32to64(lpTotalNumberOfBytes, dwTotalNumberOfClusters, (dwSectorsPerCluster*dwBytesPerSector));
     192        dprintf(("lpTotalNumberOfBytes %x%x", lpTotalNumberOfBytes->LowPart, lpTotalNumberOfBytes->HighPart));
     193    }
     194        if(lpTotalNumberOfFreeBytes!=NULL) {
     195        memcpy(lpTotalNumberOfFreeBytes, lpFreeBytesAvailableToCaller, sizeof(*lpFreeBytesAvailableToCaller));
     196        dprintf(("lpTotalNumberOfFreeBytes %x%x", lpTotalNumberOfFreeBytes->LowPart, lpTotalNumberOfFreeBytes->HighPart));
     197    }
    197198    }
    198199    return rc;
     
    235236
    236237    if(lpszDrive == (LPCWSTR)-1) {
    237         return DRIVE_CANNOTDETERMINE;   //NT 4, SP6 returns this (VERIFIED)
     238    return DRIVE_CANNOTDETERMINE;   //NT 4, SP6 returns this (VERIFIED)
    238239    }
    239240    astring = UnicodeToAsciiString((LPWSTR)lpszDrive);
     
    262263
    263264   if(lpRootPathName == NULL) {
    264         GetCurrentDirectoryA(sizeof(tmpstring), tmpstring);
    265         lpRootPathName = tmpstring;
     265    GetCurrentDirectoryA(sizeof(tmpstring), tmpstring);
     266    lpRootPathName = tmpstring;
    266267   }
    267268
    268269   if('A' <= *lpRootPathName && *lpRootPathName <= 'Z') {
    269         drive = *lpRootPathName - 'A' + 1;
    270    }
    271    else 
     270        drive = *lpRootPathName - 'A' + 1;
     271   }
     272   else
    272273   if('a' <= *lpRootPathName && *lpRootPathName <= 'z') {
    273         drive = *lpRootPathName - 'a' + 1;
     274        drive = *lpRootPathName - 'a' + 1;
    274275   }
    275276   else {
    276         SetLastError(ERROR_INVALID_PARAMETER);
    277         return FALSE;
     277    SetLastError(ERROR_INVALID_PARAMETER);
     278    return FALSE;
    278279   }
    279280
    280281   if(lpVolumeSerialNumber || lpVolumeNameBuffer) {
    281         rc = OSLibDosQueryVolumeSerialAndName(drive, lpVolumeSerialNumber, lpVolumeNameBuffer, nVolumeNameSize);
     282    rc = OSLibDosQueryVolumeSerialAndName(drive, lpVolumeSerialNumber, lpVolumeNameBuffer, nVolumeNameSize);
    282283        if(lpVolumeSerialNumber) {
    283                 dprintf2(("Volume serial number: %x", *lpVolumeSerialNumber));
    284         }
     284        dprintf2(("Volume serial number: %x", *lpVolumeSerialNumber));
     285    }
    285286        if(lpVolumeNameBuffer) {
    286                 dprintf2(("Volume name: %s", lpVolumeNameBuffer));
    287         }
     287        dprintf2(("Volume name: %s", lpVolumeNameBuffer));
     288    }
    288289   }
    289290   if(lpFileSystemNameBuffer || lpMaximumComponentLength) {
    290         if(!lpFileSystemNameBuffer) {
    291                 lpFileSystemNameBuffer = tmpstring;
    292                 nFileSystemNameSize    = sizeof(tmpstring);
    293         }
    294         rc = OSLibDosQueryVolumeFS(drive, lpFileSystemNameBuffer, nFileSystemNameSize);
     291    if(!lpFileSystemNameBuffer) {
     292        lpFileSystemNameBuffer = tmpstring;
     293        nFileSystemNameSize    = sizeof(tmpstring);
     294    }
     295    rc = OSLibDosQueryVolumeFS(drive, lpFileSystemNameBuffer, nFileSystemNameSize);
    295296        if(lpFileSystemNameBuffer) {
    296                 dprintf2(("File system name: %s", lpFileSystemNameBuffer));
    297         }
     297        dprintf2(("File system name: %s", lpFileSystemNameBuffer));
     298    }
    298299   }
    299300   if(lpMaximumComponentLength) {
    300         if(!strcmp(lpFileSystemNameBuffer, "FAT")) {
    301                 *lpMaximumComponentLength = 12;
    302         }
    303         else    *lpMaximumComponentLength = 255; //TODO: Always correct? (CDFS?)
     301    if(!strcmp(lpFileSystemNameBuffer, "FAT")) {
     302        *lpMaximumComponentLength = 12;
     303    }
     304    else    *lpMaximumComponentLength = 255; //TODO: Always correct? (CDFS?)
    304305   }
    305306   if(lpFileSystemFlags) {
    306         if(strcmp(lpFileSystemNameBuffer, "FAT")) {
    307                 *lpFileSystemFlags = FS_CASE_IS_PRESERVED;
    308         }
    309         else
    310         if(!strcmp(lpFileSystemNameBuffer, "CDFS")) {
    311                 *lpFileSystemFlags = FS_CASE_SENSITIVE; //NT4 returns this
    312         }
    313         else
    314         if(!strcmp(lpFileSystemNameBuffer, "UDF")) {//TODO: correct?
    315                 *lpFileSystemFlags = FS_CASE_SENSITIVE | FS_UNICODE_STORED_ON_DISK;
    316         }
    317         else    *lpFileSystemFlags = 0;
    318 
    319         dprintf2(("File system flags: %x", lpFileSystemFlags));
     307    if(strcmp(lpFileSystemNameBuffer, "FAT")) {
     308        *lpFileSystemFlags = FS_CASE_IS_PRESERVED;
     309    }
     310    else
     311    if(!strcmp(lpFileSystemNameBuffer, "CDFS")) {
     312        *lpFileSystemFlags = FS_CASE_SENSITIVE; //NT4 returns this
     313    }
     314    else
     315    if(!strcmp(lpFileSystemNameBuffer, "UDF")) {//TODO: correct?
     316        *lpFileSystemFlags = FS_CASE_SENSITIVE | FS_UNICODE_STORED_ON_DISK;
     317    }
     318    else    *lpFileSystemFlags = 0;
     319
     320    dprintf2(("File system flags: %x", lpFileSystemFlags));
    320321   }
    321322
    322323   if(rc) {
    323         SetLastError(rc);
    324         return FALSE;
     324    SetLastError(rc);
     325    return FALSE;
    325326   }
    326327   SetLastError(ERROR_SUCCESS);
Note: See TracChangeset for help on using the changeset viewer.