4 * Copyright 2004 Develer S.r.l. (http://www.develer.com/)
5 * Copyright 1999, 2000, 2001, 2003 Bernardo Innocenti <bernie@develer.com>
6 * This file is part of DevLib - See README.devlib for information.
9 * \brief Virtual KFile I/O interface.
12 * \author Bernardo Innocenti <bernie@develer.com>
17 *#* Revision 1.3 2007/10/04 19:39:25 batt
18 *#* Add seek constants.
20 *#* Revision 1.1 2007/06/14 14:42:48 batt
21 *#* Move kfile to kern/ directory; remove duplicate file.h.
23 *#* Revision 1.7 2007/06/08 14:25:43 batt
24 *#* Merge from project_ks.
26 *#* Revision 1.6 2006/07/19 12:56:28 bernie
27 *#* Convert to new Doxygen style.
29 *#* Revision 1.5 2005/11/04 16:20:02 bernie
30 *#* Fix reference to README.devlib in header.
32 *#* Revision 1.4 2005/04/11 19:10:28 bernie
33 *#* Include top-level headers from cfg/ subdir.
35 *#* Revision 1.3 2004/12/31 16:43:23 bernie
36 *#* Move seek function last in VT.
38 *#* Revision 1.2 2004/08/25 14:12:09 rasky
39 *#* Aggiornato il comment block dei log RCS
41 *#* Revision 1.1 2004/08/04 02:40:25 bernie
42 *#* Add virtual file I/O interface.
48 #include <cfg/compiler.h>
54 * Costants for repositioning read/write file offset.
55 * These are needed because on some embedded platforms
56 * ANSI I/O library may not be present.
58 typedef enum KSeekMode
60 KSM_SEEK_SET, ///< Seek from file beginning.
61 KSM_SEEK_CUR, ///< Seek from file current position.
62 KSM_SEEK_END, ///< Seek from file end.
66 typedef size_t (*ReadFunc_t) (struct _KFile *fd, void *buf, size_t size);
67 typedef size_t (*WriteFunc_t) (struct _KFile *fd, const void *buf, size_t size);
68 typedef int32_t (*SeekFunc_t) (struct _KFile *fd, int32_t offset, KSeekMode whence);
69 typedef bool (*OpenFunc_t) (struct _KFile *fd, const char *name, int mode);
70 typedef bool (*CloseFunc_t) (struct _KFile *fd);
73 * Context data for callback functions which operate on
84 /* NOTE: these must _NOT_ be size_t on 16bit CPUs! */
89 #endif /* MWARE_KFILE_H */