]> wimlib.net Git - wimlib/blobdiff - src/win32_replacements.c
Allow configurable case sensitivity
[wimlib] / src / win32_replacements.c
index d3757a3f35ed843039e8c9f085f28a90386a9f3d..27d074e4d47d63b8aae8f85c4fdb3a6d9c159970 100644 (file)
@@ -37,6 +37,7 @@
 #include "wimlib/file_io.h"
 #include "wimlib/glob.h"
 #include "wimlib/error.h"
+#include "wimlib/wildcard.h"
 #include "wimlib/util.h"
 
 /* Replacement for POSIX fsync() */
@@ -57,7 +58,7 @@ err:
        return -1;
 }
 
-/* Use the Win32 API to get the number of processors */
+/* Use the Win32 API to get the number of processors */
 unsigned
 win32_get_number_of_processors(void)
 {
@@ -66,6 +67,17 @@ win32_get_number_of_processors(void)
        return sysinfo.dwNumberOfProcessors;
 }
 
+/* Use the Win32 API to get the amount of available memory.  */
+u64
+win32_get_avail_memory(void)
+{
+       MEMORYSTATUSEX status = {
+               .dwLength = sizeof(status),
+       };
+       GlobalMemoryStatusEx(&status);
+       return status.ullTotalPhys;
+}
+
 /* Replacement for POSIX-2008 realpath().  Warning: partial functionality only
  * (resolved_path must be NULL).   Also I highly doubt that GetFullPathName
  * really does the right thing under all circumstances. */
@@ -88,7 +100,7 @@ realpath(const wchar_t *path, wchar_t *resolved_path)
        ret = GetFullPathNameW(path, ret, resolved_path, NULL);
        if (!ret) {
                err = GetLastError();
-               free(resolved_path);
+               FREE(resolved_path);
                resolved_path = NULL;
                goto fail_win32;
        }
@@ -299,6 +311,7 @@ pwrite(int fd, const void *buf, size_t count, off_t offset)
        return do_pread_or_pwrite(fd, (void*)buf, count, offset, true);
 }
 
+#if 0
 /* Dumb Windows implementation of writev().  It writes the vectors one at a
  * time. */
 ssize_t writev(int fd, const struct iovec *iov, int iovcnt)
@@ -323,6 +336,7 @@ ssize_t writev(int fd, const struct iovec *iov, int iovcnt)
        }
        return total_bytes_written;
 }
+#endif
 
 int
 win32_get_file_and_vol_ids(const wchar_t *path, u64 *ino_ret, u64 *dev_ret)
@@ -455,8 +469,8 @@ globfree(glob_t *pglob)
 {
        size_t i;
        for (i = 0; i < pglob->gl_pathc; i++)
-               free(pglob->gl_pathv[i]);
-       free(pglob->gl_pathv);
+               FREE(pglob->gl_pathv[i]);
+       FREE(pglob->gl_pathv);
 }
 
 #endif /* __WIN32__ */