- Timestamp:
- Sep 4, 2000, 8:24:43 PM (25 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/disk.cpp
r4171 r4189 1 /* $Id: disk.cpp,v 1.1 5 2000-09-03 09:32:13sandervl Exp $ */1 /* $Id: disk.cpp,v 1.16 2000-09-04 18:24:42 sandervl Exp $ */ 2 2 3 3 /* … … 21 21 #include "unicode.h" 22 22 #include "oslibdos.h" 23 #include "exceptutil.h" 23 24 24 25 #define DBG_LOCALLOG DBG_disk … … 61 62 DWORD dwNumberOfFreeClusters; // address of number of free clusters 62 63 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", 64 65 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); 67 69 if(rc) 68 70 { … … 88 90 dprintf(("KERNEL32: OS2GetDiskFreeSpaceW\n")); 89 91 astring = UnicodeToAsciiString((LPWSTR)arg1); 90 rc = O32_GetDiskFreeSpace(astring, arg2, arg3, arg4, arg5);92 rc = GetDiskFreeSpaceA(astring, arg2, arg3, arg4, arg5); 91 93 FreeAsciiString(astring); 92 94 return(rc); … … 148 150 DWORD dwTotalNumberOfClusters; // address of total number of clusters 149 151 150 rc = O32_GetDiskFreeSpace(lpDirectoryName, &dwSectorsPerCluster, &dwBytesPerSector,151 152 rc = GetDiskFreeSpaceA(lpDirectoryName, &dwSectorsPerCluster, &dwBytesPerSector, 153 &dwNumberOfFreeClusters, &dwTotalNumberOfClusters); 152 154 if(rc) 153 155 { 154 //TODO: Fill in high part (overflow possible)!!!!!!155 156 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)); 158 159 } 159 160 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)); 162 163 } 163 164 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)); 166 167 } 167 168 } -
trunk/src/kernel32/exceptutil.asm
r4106 r4189 1 ; $Id: exceptutil.asm,v 1. 9 2000-08-28 18:35:28sandervl Exp $1 ; $Id: exceptutil.asm,v 1.10 2000-09-04 18:24:42 sandervl Exp $ 2 2 3 3 ;/* … … 209 209 ret 210 210 RestoreOS2FS endp 211 212 PUBLIC _Mul32x32to64 213 _Mul32x32to64 proc near 214 push ebp 215 mov ebp, esp 216 push eax 217 push edx 218 push edi 219 220 mov edi, [ebp+8] ;64 bits result 221 mov eax, [ebp+12] ;op1 222 mov edx, [ebp+16] ;op2 223 mul edx 224 mov [edi], eax 225 mov [edi+4], edx 226 227 pop edi 228 pop edx 229 pop eax 230 pop ebp 231 ret 232 _Mul32x32to64 endp 233 211 234 CODE32 ENDS 212 235 -
trunk/src/kernel32/exceptutil.h
r3483 r4189 1 /* $Id: exceptutil.h,v 1. 8 2000-05-02 20:53:13sandervl Exp $ */1 /* $Id: exceptutil.h,v 1.9 2000-09-04 18:24:42 sandervl Exp $ */ 2 2 3 3 /* … … 43 43 USHORT getGS(); 44 44 45 void CDECL Mul32x32to64(PVOID result, DWORD op1, DWORD op2); 46 45 47 #ifdef __cplusplus 46 48 } -
trunk/src/kernel32/oslibdos.cpp
r4008 r4189 1 /* $Id: oslibdos.cpp,v 1. 39 2000-08-14 08:10:16sandervl Exp $ */1 /* $Id: oslibdos.cpp,v 1.40 2000-09-04 18:24:42 sandervl Exp $ */ 2 2 /* 3 3 * Wrappers for OS/2 Dos* API … … 1938 1938 //****************************************************************************** 1939 1939 //****************************************************************************** 1940 1941 1940 BOOL OSLibGetDiskFreeSpace(LPSTR lpRootPathName, LPDWORD lpSectorsPerCluster, 1941 LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, 1942 LPDWORD lpTotalNumberOfClusters) 1943 { 1944 ULONG diskNum; 1945 FSALLOCATE fsAlloc; 1946 APIRET rc; 1947 1948 if(lpRootPathName == 0) 1949 diskNum = 0; 1950 else 1951 if('A' <= *lpRootPathName && *lpRootPathName <= 'Z' ) 1952 diskNum = *lpRootPathName - 'A' + 1; 1953 else 1954 if('a' <= *lpRootPathName && *lpRootPathName <= 'z' ) 1955 diskNum = *lpRootPathName - 'a' + 1; 1956 else 1957 diskNum = 0; 1958 1959 DosError(FERR_DISABLEHARDERR); 1960 rc = DosQueryFSInfo(diskNum, FSIL_ALLOC, &fsAlloc, sizeof(fsAlloc)); 1961 DosError(FERR_ENABLEHARDERR); 1962 1963 if(rc == 0) 1964 { 1965 *lpSectorsPerCluster = fsAlloc.cSectorUnit; 1966 *lpBytesPerSector = fsAlloc.cbSector; 1967 *lpNumberOfFreeClusters = fsAlloc.cUnitAvail; 1968 *lpTotalNumberOfClusters = fsAlloc.cUnit; 1969 SetLastError(ERROR_SUCCESS_W); 1970 return TRUE; 1971 } 1972 SetLastError(error2WinError(rc)); 1973 return FALSE; 1974 } 1942 1975 //****************************************************************************** 1943 1976 //****************************************************************************** -
trunk/src/kernel32/oslibdos.h
r3819 r4189 1 /* $Id: oslibdos.h,v 1.2 0 2000-07-12 18:21:45sandervl Exp $ */1 /* $Id: oslibdos.h,v 1.21 2000-09-04 18:24:43 sandervl Exp $ */ 2 2 3 3 /* … … 182 182 DWORD OSLibDosQueryVolumeFS(int drive, LPSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize); 183 183 DWORD OSLibDosQueryVolumeSerialAndName(int drive, LPDWORD lpVolumeSerialNumber, LPSTR lpVolumeNameBuffer, DWORD nVolumeNameSize); 184 185 BOOL OSLibGetDiskFreeSpace(LPSTR lpRootPathName, LPDWORD lpSectorsPerCluster, 186 LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, 187 LPDWORD lpTotalNumberOfClusters); 184 188 185 189
Note:
See TracChangeset
for help on using the changeset viewer.