Add kfile_genericReopen.
authorbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 15 Feb 2008 22:33:13 +0000 (22:33 +0000)
committerbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 15 Feb 2008 22:33:13 +0000 (22:33 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1106 38d2e660-2303-0410-9eaa-f027e97ec537

kern/kfile.c
kern/kfile.h

index ab8016c32cda080421fd2ba2bb03103a0a50758c..1e542a333a66e2a44060a9491f6640aa9fb4278b 100644 (file)
@@ -170,7 +170,7 @@ int kfile_gets_echo(struct KFile *fd, char *buf, int size, bool echo)
  * Move \a fd file seek position of \a offset bytes from \a whence.
  *
  * This is a generic implementation of seek function, you can redefine
- * it in your local module is needed.
+ * it in your local module if needed.
  */
 kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode whence)
 {
@@ -206,6 +206,18 @@ kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode wh
        return fd->seek_pos;
 }
 
+/**
+ * Reopen file \a fd.
+ * This is a generic implementation that only flush file
+ * and reset seek_pos to 0.
+ */
+struct KFile * kfile_genericReopen(struct KFile *fd)
+{
+       kfile_flush(fd);
+       kfile_seek(fd, 0, KSM_SEEK_SET);
+       return fd;
+}
+
 #if CONFIG_TEST
 
 /**
index b80e86253d9142b9fa6b5f5c1410e730e7a3a4fe..b46207a091fb6ac7a9fcfded43e3e361e542666e 100644 (file)
@@ -210,6 +210,11 @@ typedef struct KFile
  */
 kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode whence);
 
+/**
+ * Generic implementation of kfile_reopen.
+ */
+struct KFile * kfile_genericReopen(struct KFile *fd);
+
 int kfile_putc(int c, struct KFile *fd); ///< Generic putc implementation using kfile_write.
 int kfile_getc(struct KFile *fd);  ///< Generic getc implementation using kfile_read.
 int kfile_printf(struct KFile *fd, const char *format, ...);