#ifndef _WIMLIB_WIN32_H
#define _WIMLIB_WIN32_H

#ifdef __WIN32__

#include "wimlib/types.h"

struct blob_descriptor;
struct read_blob_callbacks;

extern int
read_winnt_stream_prefix(const struct blob_descriptor *blob, u64 size,
			 const struct read_blob_callbacks *cbs);

extern int
read_win32_encrypted_file_prefix(const struct blob_descriptor *blob,
				 u64 size,
				 const struct read_blob_callbacks *cbs);

extern int
win32_global_init(int init_flags);

extern void
win32_global_cleanup(void);

extern int
fsync(int fd);

extern tchar *
realpath(const tchar *path, tchar *resolved_path);

extern int
win32_rename_replacement(const tchar *oldpath, const tchar *newpath);

extern int
win32_truncate_replacement(const tchar *path, off_t size);

extern int
win32_strerror_r_replacement(int errnum, tchar *buf, size_t buflen);

extern FILE *
win32_open_logfile(const wchar_t *path);

extern ssize_t
pread(int fd, void *buf, size_t count, off_t offset);

extern ssize_t
pwrite(int fd, const void *buf, size_t count, off_t offset);

#endif /* __WIN32__ */

#endif /* _WIMLIB_WIN32_H */
