10
extern void Log (int lev, char *s,...);
12
unsigned long getfree (char *path)
14
struct diskfree_t fsa;
18
if (isalpha (path[0]) && path[1] == ':')
19
disknum = toupper (path[0]) - 'A' + 1;
21
rc=_dos_getdiskfree(disknum,&fsa);
25
Log (1, "_dos_gwtdiskfree error: return code = %u", rc);
26
return ULONG_MAX; /* Assume enough disk space */
30
if (fsa.sectors_per_cluster * fsa.bytes_per_sector >= 1024)
31
return (unsigned long)fsa.avail_clusters * (fsa.sectors_per_cluster * fsa.bytes_per_sector / 1024);
33
return (unsigned long)fsa.avail_clusters / (1024 / (fsa.sectors_per_cluster * fsa.bytes_per_sector));