struct KFile;
typedef int32_t kfile_off_t; ///< KFile offset type, used by kfile_seek().
-typedef uint32_t kfile_size_t; ///< KFile size type, used in struct KFile.
/**
* Costants for repositioning read/write file offset.
/**
* Context data for callback functions which operate on
* pseudo files.
- * \note If you change interface, remember to add corresponding access function.
+ *
+ * \note Remember to add the corresponding accessor functions
+ * when extending this interface.
*/
typedef struct KFile
{
FlushFunc_t flush;
ErrorFunc_t error;
ClearErrFunc_t clearerr;
- DB(id_t _type); ///< Used to keep trace, at runtime, of obj type.
+ DB(id_t _type); ///< Used to keep track, at runtime, of the class type.
/* NOTE: these must _NOT_ be size_t on 16bit CPUs! */
- kfile_off_t seek_pos;
- kfile_size_t size;
+ kfile_off_t seek_pos;
+ kfile_off_t size;
} KFile;
/**
*/
struct KFile * kfile_genericReopen(struct KFile *fd);
+int kfile_genericClose(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, ...);
int kfile_print(struct KFile *fd, const char *s);
int kfile_gets(struct KFile *fd, char *buf, int size);
int kfile_gets_echo(struct KFile *fd, char *buf, int size, bool echo);
+void kfile_resync(KFile *fd, mtime_t delay);
/**
* Interface functions for KFile access.
/**
* Kfile test function.
*/
-int kfile_testSetUp(void);
-int kfile_testRun(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size);
+int kfile_testSetup(void);
+int kfile_testRunGeneric(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size);
int kfile_testTearDown(void);
#endif /* KERN_KFILE_H */