From 4ce821445da18cea824dc2b6ef69a68f2e53e341 Mon Sep 17 00:00:00 2001 From: batt Date: Fri, 15 Feb 2008 22:33:13 +0000 Subject: [PATCH] Add kfile_genericReopen. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1106 38d2e660-2303-0410-9eaa-f027e97ec537 --- kern/kfile.c | 14 +++++++++++++- kern/kfile.h | 5 +++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/kern/kfile.c b/kern/kfile.c index ab8016c3..1e542a33 100644 --- a/kern/kfile.c +++ b/kern/kfile.c @@ -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 /** diff --git a/kern/kfile.h b/kern/kfile.h index b80e8625..b46207a0 100644 --- a/kern/kfile.h +++ b/kern/kfile.h @@ -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, ...); -- 2.25.1