Mercurial > dwindows
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 |