X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=kern%2Fkfile.h;h=3bb0d09fe369088fc12b1d264b45603bcad91bcf;hb=1b38e2c9925d6ec7fc50b327fc46d490f20d7ee0;hp=fd6f1d15e47020590e06427e8329a9b2a31ff1d8;hpb=36153df3b7f47e9f04c93b22017437700f184e8c;p=bertos.git diff --git a/kern/kfile.h b/kern/kfile.h old mode 100755 new mode 100644 index fd6f1d15..3bb0d09f --- a/kern/kfile.h +++ b/kern/kfile.h @@ -1,9 +1,34 @@ /** * \file * * * \brief Virtual KFile I/O interface. @@ -12,36 +37,6 @@ * \author Bernardo Innocenti */ -/*#* - *#* $Log$ - *#* Revision 1.2 2007/10/03 12:06:54 batt - *#* Add whence parameter to seek; change from char * to void * read/write input buffers. - *#* - *#* Revision 1.1 2007/06/14 14:42:48 batt - *#* Move kfile to kern/ directory; remove duplicate file.h. - *#* - *#* Revision 1.7 2007/06/08 14:25:43 batt - *#* Merge from project_ks. - *#* - *#* Revision 1.6 2006/07/19 12:56:28 bernie - *#* Convert to new Doxygen style. - *#* - *#* Revision 1.5 2005/11/04 16:20:02 bernie - *#* Fix reference to README.devlib in header. - *#* - *#* Revision 1.4 2005/04/11 19:10:28 bernie - *#* Include top-level headers from cfg/ subdir. - *#* - *#* Revision 1.3 2004/12/31 16:43:23 bernie - *#* Move seek function last in VT. - *#* - *#* Revision 1.2 2004/08/25 14:12:09 rasky - *#* Aggiornato il comment block dei log RCS - *#* - *#* Revision 1.1 2004/08/04 02:40:25 bernie - *#* Add virtual file I/O interface. - *#* - *#*/ #ifndef MWARE_KFILE_H #define MWARE_KFILE_H @@ -50,14 +45,29 @@ /* fwd decl */ struct _KFile; +typedef int32_t kfile_off_t; + +/** + * Costants for repositioning read/write file offset. + * These are needed because on some embedded platforms + * ANSI I/O library may not be present. + */ +typedef enum KSeekMode +{ + KSM_SEEK_SET, ///< Seek from file beginning. + KSM_SEEK_CUR, ///< Seek from file current position. + KSM_SEEK_END, ///< Seek from file end. +} KSeekMode; + + typedef size_t (*ReadFunc_t) (struct _KFile *fd, void *buf, size_t size); typedef size_t (*WriteFunc_t) (struct _KFile *fd, const void *buf, size_t size); -typedef int32_t (*SeekFunc_t) (struct _KFile *fd, int32_t offset, int whence); +typedef kfile_off_t (*SeekFunc_t) (struct _KFile *fd, kfile_off_t offset, KSeekMode whence); typedef bool (*OpenFunc_t) (struct _KFile *fd, const char *name, int mode); typedef bool (*CloseFunc_t) (struct _KFile *fd); - -/* Context data for callback functions which operate on +/** + * Context data for callback functions which operate on * pseudo files. */ typedef struct _KFile @@ -73,4 +83,15 @@ typedef struct _KFile uint32_t size; } KFile; + +/* + * Generic implementation of seek function. + */ +kfile_off_t kfile_seek(struct _KFile *fd, kfile_off_t offset, KSeekMode whence); + +/* + * Kfile test function + */ +bool kfile_test(uint8_t *buf, size_t _size , uint8_t *save_buf, size_t save_buf_size); + #endif /* MWARE_KFILE_H */