Ignore:
Timestamp:
Sep 4, 2000, 8:24:43 PM (25 years ago)
Author:
sandervl
Message:

GetDiskFreeSpace(Ex) changes/fixes

File:
1 edited

Legend:

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

    r4171 r4189  
    1 /* $Id: disk.cpp,v 1.15 2000-09-03 09:32:13 sandervl Exp $ */
     1/* $Id: disk.cpp,v 1.16 2000-09-04 18:24:42 sandervl Exp $ */
    22
    33/*
     
    2121#include "unicode.h"
    2222#include "oslibdos.h"
     23#include "exceptutil.h"
    2324
    2425#define DBG_LOCALLOG  DBG_disk
     
    6162    DWORD dwNumberOfFreeClusters;       // address of number of free clusters
    6263    DWORD dwTotalNumberOfClusters;      // address of total number of clusters
    63     dprintf(("KERNEL32:  OS2GetDiskFreeSpaceA %s, 0x%08X, 0x%08X, 0x%08X, 0x%08X,\n",
     64    dprintf(("KERNEL32:  GetDiskFreeSpaceA %s, 0x%08X, 0x%08X, 0x%08X, 0x%08X,\n",
    6465             arg1!=NULL?arg1:"NULL", arg2,arg3,arg4,arg5));
    65     rc = O32_GetDiskFreeSpace(arg1, &dwSectorsPerCluster, &dwBytesPerSector,
    66                               &dwNumberOfFreeClusters, &dwTotalNumberOfClusters);
     66
     67    rc = OSLibGetDiskFreeSpace((LPSTR)arg1, &dwSectorsPerCluster, &dwBytesPerSector,
     68                               &dwNumberOfFreeClusters, &dwTotalNumberOfClusters);
    6769    if(rc)
    6870    {
     
    8890    dprintf(("KERNEL32:  OS2GetDiskFreeSpaceW\n"));
    8991    astring = UnicodeToAsciiString((LPWSTR)arg1);
    90     rc = O32_GetDiskFreeSpace(astring, arg2, arg3, arg4, arg5);
     92    rc = GetDiskFreeSpaceA(astring, arg2, arg3, arg4, arg5);
    9193    FreeAsciiString(astring);
    9294    return(rc);
     
    148150    DWORD dwTotalNumberOfClusters;      // address of total number of clusters
    149151
    150     rc = O32_GetDiskFreeSpace(lpDirectoryName, &dwSectorsPerCluster, &dwBytesPerSector,
    151                               &dwNumberOfFreeClusters, &dwTotalNumberOfClusters);
     152    rc = GetDiskFreeSpaceA(lpDirectoryName, &dwSectorsPerCluster, &dwBytesPerSector,
     153                           &dwNumberOfFreeClusters, &dwTotalNumberOfClusters);
    152154    if(rc)
    153155    {
    154         //TODO: Fill in high part (overflow possible)!!!!!!
    155156        if(lpFreeBytesAvailableToCaller!=NULL) {
    156                 lpFreeBytesAvailableToCaller->LowPart  = dwNumberOfFreeClusters*dwSectorsPerCluster*dwBytesPerSector;
    157                 lpFreeBytesAvailableToCaller->HighPart = 0;
     157                Mul32x32to64(lpFreeBytesAvailableToCaller, dwNumberOfFreeClusters, (dwSectorsPerCluster*dwBytesPerSector));
     158                dprintf(("lpFreeBytesAvailableToCaller %x%x", lpFreeBytesAvailableToCaller->LowPart, lpFreeBytesAvailableToCaller->HighPart));
    158159        }
    159160        if(lpTotalNumberOfBytes!=NULL) {
    160                 lpTotalNumberOfBytes->LowPart  = dwTotalNumberOfClusters*dwSectorsPerCluster*dwBytesPerSector;
    161                 lpTotalNumberOfBytes->HighPart = 0;
     161                Mul32x32to64(lpTotalNumberOfBytes, dwTotalNumberOfClusters, (dwSectorsPerCluster*dwBytesPerSector));
     162                dprintf(("lpTotalNumberOfBytes %x%x", lpTotalNumberOfBytes->LowPart, lpTotalNumberOfBytes->HighPart));
    162163        }
    163164        if(lpTotalNumberOfFreeBytes!=NULL) {
    164                 lpTotalNumberOfFreeBytes->LowPart  = dwNumberOfFreeClusters*dwSectorsPerCluster*dwBytesPerSector;
    165                 lpTotalNumberOfFreeBytes->HighPart = 0;
     165                memcpy(lpTotalNumberOfFreeBytes, lpFreeBytesAvailableToCaller, sizeof(*lpFreeBytesAvailableToCaller));
     166                dprintf(("lpTotalNumberOfFreeBytes %x%x", lpTotalNumberOfFreeBytes->LowPart, lpTotalNumberOfFreeBytes->HighPart));
    166167        }
    167168    }
Note: See TracChangeset for help on using the changeset viewer.