comparison dwcompat.c @ 2385:a126b04b9996

iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 23 Mar 2021 20:02:07 +0000
parents 05dd5189099f
children 736282fddac5
comparison
equal deleted inserted replaced
2384:32ebd33be56b 2385:a126b04b9996
10 #endif 10 #endif
11 #define _DW_INTERNAL 11 #define _DW_INTERNAL
12 #include "dwcompat.h" 12 #include "dwcompat.h"
13 #include "dw.h" 13 #include "dw.h"
14 14
15 #if defined(__UNIX__) || defined(__MAC__) 15 #if defined(__UNIX__) || defined(__MAC__) || defined(__IOS__)
16 #if defined(__FreeBSD__) || defined(__MAC__) 16 #if defined(__FreeBSD__) || defined(__MAC__) || defined(__IOS__)
17 #include <sys/param.h> 17 #include <sys/param.h>
18 #include <sys/ucred.h> 18 #include <sys/ucred.h>
19 #include <sys/mount.h> 19 #include <sys/mount.h>
20 #elif defined(__sun__) 20 #elif defined(__sun__)
21 #include <sys/mnttab.h> 21 #include <sys/mnttab.h>
28 #endif 28 #endif
29 #endif 29 #endif
30 #include <time.h> 30 #include <time.h>
31 #include <errno.h> 31 #include <errno.h>
32 32
33 #if defined(__UNIX__) || defined(__MAC__) 33 #if defined(__UNIX__) || defined(__MAC__) || defined(__IOS__)
34 void msleep(long period) 34 void msleep(long period)
35 { 35 {
36 #ifdef __sun__ 36 #ifdef __sun__
37 /* usleep() isn't threadsafe on Solaris */ 37 /* usleep() isn't threadsafe on Solaris */
38 struct timespec req; 38 struct timespec req;
78 78
79 return buf; 79 return buf;
80 } 80 }
81 81
82 /* Get around getmntinfo() not being thread safe */ 82 /* Get around getmntinfo() not being thread safe */
83 #if defined(__FreeBSD__) || defined(__MAC__) 83 #if defined(__FreeBSD__) || defined(__MAC__) || defined(__IOS__)
84 int _getmntinfo_r(struct statfs **mntbufp, int flags) 84 int _getmntinfo_r(struct statfs **mntbufp, int flags)
85 { 85 {
86 static HMTX mutex = 0; 86 static HMTX mutex = 0;
87 int result; 87 int result;
88 88
125 125
126 if(GetDiskFreeSpace(buffer, &spc, &bps, &fc, &tc) == 0) 126 if(GetDiskFreeSpace(buffer, &spc, &bps, &fc, &tc) == 0)
127 return 0; 127 return 0;
128 128
129 return (long double)((double)spc*(double)bps*(double)fc); 129 return (long double)((double)spc*(double)bps*(double)fc);
130 #elif defined(__FreeBSD__) || defined(__MAC__) 130 #elif defined(__FreeBSD__) || defined(__MAC__) || defined(__IOS__)
131 struct statfs *fsp = NULL; 131 struct statfs *fsp = NULL;
132 int entries, index = 1; 132 int entries, index = 1;
133 133
134 entries = _getmntinfo_r(&fsp, MNT_NOWAIT); 134 entries = _getmntinfo_r(&fsp, MNT_NOWAIT);
135 135
231 231
232 if(GetDiskFreeSpace(buffer, &spc, &bps, &fc, &tc) == 0) 232 if(GetDiskFreeSpace(buffer, &spc, &bps, &fc, &tc) == 0)
233 return 0; 233 return 0;
234 234
235 return (long double)((double)spc*(double)bps*(double)tc); 235 return (long double)((double)spc*(double)bps*(double)tc);
236 #elif defined(__FreeBSD__) || defined(__MAC__) 236 #elif defined(__FreeBSD__) || defined(__MAC__) || defined(__IOS__)
237 struct statfs *fsp = NULL; 237 struct statfs *fsp = NULL;
238 int entries, index = 1; 238 int entries, index = 1;
239 239
240 entries = _getmntinfo_r(&fsp, MNT_NOWAIT); 240 entries = _getmntinfo_r(&fsp, MNT_NOWAIT);
241 241
330 330
331 buffer[0] = drive + 'A' - 1; 331 buffer[0] = drive + 'A' - 1;
332 332
333 if(GetVolumeInformation(buffer, volname, 100, &spc, &bps, &fc, NULL, 0) != 0) 333 if(GetVolumeInformation(buffer, volname, 100, &spc, &bps, &fc, NULL, 0) != 0)
334 return 1; 334 return 1;
335 #elif defined(__FreeBSD__) || defined(__MAC__) 335 #elif defined(__FreeBSD__) || defined(__MAC__) || defined(__IOS__)
336 struct statfs *fsp = NULL; 336 struct statfs *fsp = NULL;
337 int entries, index = 1; 337 int entries, index = 1;
338 338
339 entries = _getmntinfo_r(&fsp, MNT_NOWAIT); 339 entries = _getmntinfo_r(&fsp, MNT_NOWAIT);
340 340
400 return 0; 400 return 0;
401 } 401 }
402 402
403 void API getfsname(int drive, char *buf, int len) 403 void API getfsname(int drive, char *buf, int len)
404 { 404 {
405 #if defined(__UNIX__) || defined(__MAC__) 405 #if defined(__UNIX__) || defined(__MAC__) || defined(__IOS__)
406 #if defined(__FreeBSD__) || defined(__MAC__) 406 #if defined(__FreeBSD__) || defined(__MAC__) || defined(__IOS__)
407 struct statfs *fsp = NULL; 407 struct statfs *fsp = NULL;
408 int entries, index = 1; 408 int entries, index = 1;
409 409
410 strncpy(buf, "Unknown", len); 410 strncpy(buf, "Unknown", len);
411 411