X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=kern%2Fkfile.h;h=7fb0216566f56d83d7329f154e410fee8ba01a76;hb=c338086be997ecb73aacaea64b5a8eb1c11a614c;hp=974502e62297a42c7d43eef190cf0b2b8e44de5d;hpb=1f1cc18019bbaf2509ab5f11096bd019bb9c780b;p=bertos.git diff --git a/kern/kfile.h b/kern/kfile.h old mode 100755 new mode 100644 index 974502e6..7fb02165 --- a/kern/kfile.h +++ b/kern/kfile.h @@ -1,9 +1,34 @@ /** * \file * * * \brief Virtual KFile I/O interface. @@ -14,6 +39,9 @@ /*#* *#* $Log$ + *#* Revision 1.3 2007/10/04 19:39:25 batt + *#* Add seek constants. + *#* *#* Revision 1.1 2007/06/14 14:42:48 batt *#* Move kfile to kern/ directory; remove duplicate file.h. *#* @@ -47,14 +75,27 @@ /* fwd decl */ struct _KFile; -typedef size_t (*ReadFunc_t) (struct _KFile *fd, char *buf, size_t size); -typedef size_t (*WriteFunc_t) (struct _KFile *fd, const char *buf, size_t size); -typedef bool (*SeekFunc_t) (struct _KFile *fd, int32_t offset); -typedef bool (*OpenFunc_t) (struct _KFile *fd, const char *name, int mode); -typedef bool (*CloseFunc_t) (struct _KFile *fd); +/** + * 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, 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