]> mj.ucw.cz Git - libucw.git/blobdiff - ucw/io.h
LibUCW: Fixed broken DARY_ALLOC() on 64bit architectures.
[libucw.git] / ucw / io.h
index 593dcf7d727c196e8587ae7162263061fd610d9a..a1e4c6bd9876f3d33ea46a1e8ffc401fd9a6e3c1 100644 (file)
--- a/ucw/io.h
+++ b/ucw/io.h
@@ -7,13 +7,13 @@
  *     of the GNU Lesser General Public License.
  */
 
-#ifndef _UCW_LFS_H
-#define _UCW_LFS_H
+#ifndef _UCW_IO_H
+#define _UCW_IO_H
 
 #include <fcntl.h>
 #include <unistd.h>
 
-#ifdef CONFIG_LFS
+#ifdef CONFIG_UCW_LARGE_FILES
 
 #define ucw_open open64
 #define ucw_seek lseek64
@@ -27,7 +27,7 @@
 #define ucw_fstat fstat64
 typedef struct stat64 ucw_stat_t;
 
-#else  /* !CONFIG_LFS */
+#else  /* !CONFIG_UCW_LARGE_FILES */
 
 #define ucw_open open
 #define ucw_seek(f,o,w) lseek(f,o,w)
@@ -39,7 +39,7 @@ typedef struct stat64 ucw_stat_t;
 #define ucw_fstat fstat
 typedef struct stat ucw_stat_t;
 
-#endif /* !CONFIG_LFS */
+#endif /* !CONFIG_UCW_LARGE_FILES */
 
 #if defined(_POSIX_SYNCHRONIZED_IO) && (_POSIX_SYNCHRONIZED_IO > 0)
 #define ucw_fdatasync fdatasync
@@ -49,15 +49,22 @@ typedef struct stat ucw_stat_t;
 
 #define HAVE_PREAD
 
-static inline ucw_off_t
-ucw_file_size(const char *name)
-{
-  int fd = ucw_open(name, O_RDONLY);
-  if (fd < 0)
-    die("Cannot open %s: %m", name);
-  ucw_off_t len = ucw_seek(fd, 0, SEEK_END);
-  close(fd);
-  return len;
-}
-
-#endif /* !_UCW_LFS_H */
+/* io-size.c */
+
+ucw_off_t ucw_file_size(const char *name);
+
+/* io-mmap.c */
+
+void *mmap_file(const char *name, unsigned *len, int writeable);
+void munmap_file(void *start, unsigned len);
+
+/* io-careful.c */
+
+int careful_read(int fd, void *buf, int len);
+int careful_write(int fd, const void *buf, int len);
+
+/* io-sync.c */
+
+void sync_dir(const char *name);
+
+#endif /* !_UCW_IO_H */