]> wimlib.net Git - wimlib/blobdiff - src/win32.h
Add Windows implementations of pread(), pwrite(), writev()
[wimlib] / src / win32.h
index 518b30e6d2b9f560438ef661fe259823f1d4585b..51e2f3f208c9d0b274cf3457cf4febb151c470ba 100644 (file)
@@ -7,46 +7,45 @@
 
 extern int
 win32_build_dentry_tree(struct wim_dentry **root_ret,
-                       const mbchar *root_disk_path,
-                       struct wim_lookup_table *lookup_table,
-                       struct wim_security_data *sd,
-                       const struct capture_config *config,
-                       int add_image_flags,
-                       wimlib_progress_func_t progress_func,
-                       void *extra_arg);
+                       const tchar *root_disk_path,
+                       struct add_image_params *params);
 
 extern int
-win32_read_file(const mbchar *filename, void *handle, u64 offset,
-               size_t size, void *buf);
+win32_get_file_and_vol_ids(const wchar_t *path, u64 *ino_ret, u64 *dev_ret);
 
-extern HANDLE
-win32_open_file_readonly(const wchar_t *path_utf16, bool data_only);
+extern int
+win32_read_file(const tchar *filename, HANDLE handle,
+               u64 offset, size_t size, void *buf);
 
-extern void
-win32_close_file(void *handle);
+extern int
+read_win32_file_prefix(const struct wim_lookup_table_entry *lte,
+                      u64 size,
+                      consume_data_callback_t cb,
+                      void *ctx_or_buf,
+                      int _ignored_flags);
 
-#ifdef ENABLE_ERROR_MESSAGES
-extern void win32_error(u32 err);
-extern void win32_error_last();
-#else
-#  define win32_error(err)
-#  define win32_error_last()
-#endif
+extern int
+read_win32_encrypted_file_prefix(const struct wim_lookup_table_entry *lte,
+                                u64 size,
+                                consume_data_callback_t cb,
+                                void *ctx_or_buf,
+                                int _ignored_flags);
 
 #define FNM_PATHNAME 0x1
+#define FNM_NOESCAPE 0x2
 #define FNM_NOMATCH 1
 extern int
-fnmatch(const mbchar *pattern, const mbchar *string, int flags);
+fnmatch(const tchar *pattern, const tchar *string, int flags);
 
 extern int
-win32_do_apply_dentry(const mbchar *output_path,
-                     size_t output_path_len,
+win32_do_apply_dentry(const tchar *output_path,
+                     size_t output_path_nbytes,
                      struct wim_dentry *dentry,
                      struct apply_args *args);
 
 extern int
-win32_do_apply_dentry_timestamps(const mbchar *output_path,
-                                size_t output_path_len,
+win32_do_apply_dentry_timestamps(const tchar *output_path,
+                                size_t output_path_nbytes,
                                 const struct wim_dentry *dentry,
                                 const struct apply_args *args);
 
@@ -56,24 +55,35 @@ fsync(int fd);
 extern unsigned
 win32_get_number_of_processors();
 
-extern mbchar *
-realpath(const mbchar *path, mbchar *resolved_path);
-
-/* Microsoft's swprintf() violates the C standard and they require programmers
- * to do this weird define to get the correct function.  */
-#define swprintf _snwprintf
-
-/* Use Microsoft's weird _mkdir() function instead of mkdir() */
-#define mkdir(name, mode) _mkdir(name)
+extern tchar *
+realpath(const tchar *path, tchar *resolved_path);
 
 typedef enum {
        CODESET
 } nl_item;
 
-extern char *
-nl_langinfo(nl_item item);
+extern int
+win32_rename_replacement(const tchar *oldpath, const tchar *newpath);
+
+extern int
+win32_truncate_replacement(const tchar *path, off_t size);
+
+extern void
+win32_global_init();
+
+extern void
+win32_global_cleanup();
+
+extern int
+win32_strerror_r_replacement(int errnum, tchar *buf, size_t buflen);
+
+extern ssize_t
+win32_pread(int fd, void *buf, size_t count, off_t offset);
+
+extern ssize_t
+win32_pwrite(int fd, const void *buf, size_t count, off_t offset);
 
-extern int rename_replacement(const char *oldpath, const char *newpath);
-#define rename(oldpath, newpath) rename_replacement(oldpath, newpath)
+extern ssize_t
+win32_writev(int fd, const struct iovec *iov, int iovcnt);
 
 #endif /* _WIMLIB_WIN32_H */