diff --git a/lib/hssystemfileio-unix.h b/lib/hssystemfileio-unix.h
new file mode 100644
--- /dev/null
+++ b/lib/hssystemfileio-unix.h
@@ -0,0 +1,27 @@
+#ifndef HSSYSTEMFILEIO_UNIX_H
+#define HSSYSTEMFILEIO_UNIX_H
+
+#include <dirent.h>
+
+struct dirent *
+hssystemfileio_alloc_dirent();
+
+void
+hssystemfileio_free_dirent(struct dirent *);
+
+int
+hssystemfileio_readdir(DIR *dir, struct dirent *dirent);
+
+char *
+hssystemfileio_dirent_name(struct dirent *dirent);
+
+char *
+hssystemfileio_getcwd(void);
+
+int
+hssystemfileio_isrealdir(const char *);
+
+int
+hssystemfileio_copy_permissions(const char *old_path, const char *new_path);
+
+#endif
diff --git a/lib/hssystemfileio-win32.h b/lib/hssystemfileio-win32.h
new file mode 100644
--- /dev/null
+++ b/lib/hssystemfileio-win32.h
@@ -0,0 +1,9 @@
+#ifndef HSSYSTEMFILEIO_WIN32_H
+#define HSSYSTEMFILEIO_WIN32_H
+
+#include <wchar.h>
+
+int
+hssystemfileio_copy_permissions(const wchar_t *old_path, const wchar_t *new_path);
+
+#endif
diff --git a/system-fileio.cabal b/system-fileio.cabal
--- a/system-fileio.cabal
+++ b/system-fileio.cabal
@@ -1,5 +1,5 @@
 name: system-fileio
-version: 0.3.4
+version: 0.3.5
 license: MIT
 license-file: license.txt
 author: John Millikin <jmillikin@gmail.com>
@@ -22,6 +22,9 @@
   paths which can't be decoded in the current locale encoding.
 
 extra-source-files:
+  lib/hssystemfileio-unix.h
+  lib/hssystemfileio-win32.h
+  --
   scripts/common.bash
   scripts/run-coverage
   scripts/run-tests
@@ -39,7 +42,7 @@
 source-repository this
   type: bazaar
   location: https://john-millikin.com/branches/system-fileio/0.3/
-  tag: system-fileio_0.3.4
+  tag: system-fileio_0.3.5
 
 library
   ghc-options: -Wall -O2
