typedef void (*ClearErrFunc_t) (struct KFile *fd);
/* \} */
-/**
- * KFile type.
- * Used at runtime and in debug mode only to check
- * "dynamic casts".
- * \note Add here new KFile types.
- */
-typedef enum KFileType
-{
- KFT_GENERIC, ///< Generic
- KFT_SERIAL, ///< Serial driver
- KFT_CNT
-} KFileType;
-
/**
* Context data for callback functions which operate on
* pseudo files.
FlushFunc_t flush;
ErrorFunc_t error;
ClearErrFunc_t clearerr;
- DB(KFileType _type); ///< Used to keep trace, at runtime, of obj type.
+ DB(id_t _type); ///< Used to keep trace, at runtime, of obj type.
/* NOTE: these must _NOT_ be size_t on 16bit CPUs! */
uint32_t seek_pos;
} KFile;
/**
- * Check if \a fd is a generic KFile type.
+ * Generic implementation of kfile_seek.
*/
-#define KFILE_ASSERT_GENERIC(fd) ASSERT(fd->_type == KFT_GENERIC)
+kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode whence);
/**
- * Generic implementation of kfile_seek.
+ * Generic implementation of kfile_reopen.
*/
-kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode whence);
+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.