Add missing header.
[bertos.git] / mware / kfile.h
1 /*!
2  * \file
3  * <!--
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 devlib/README for information.
7  * -->
8  *
9  * \brief Virtual KFile I/O interface.
10  *
11  * \version $Id$
12  * \author Bernardo Innocenti <bernie@develer.com>
13  */
14
15 /*#*
16  *#* $Log$
17  *#* Revision 1.2  2004/08/25 14:12:09  rasky
18  *#* Aggiornato il comment block dei log RCS
19  *#*
20  *#* Revision 1.1  2004/08/04 02:40:25  bernie
21  *#* Add virtual file I/O interface.
22  *#*
23  *#*/
24 #ifndef MWARE_KFILE_H
25 #define MWARE_KFILE_H
26
27 #include <compiler.h>
28
29 /* fwd decl */
30 struct _KFile;
31
32 typedef size_t  (*ReadFunc_t)   (struct _KFile *fd, char *buf, size_t size);
33 typedef size_t  (*WriteFunc_t)  (struct _KFile *fd, const char *buf, size_t size);
34 typedef bool    (*SeekFunc_t)   (struct _KFile *fd, int32_t offset);
35 typedef bool    (*OpenFunc_t)   (struct _KFile *fd, const char *name, int mode);
36 typedef bool    (*CloseFunc_t)  (struct _KFile *fd);
37
38
39 /* Context data for callback functions which operate on
40  * pseudo files.
41  */
42 typedef struct _KFile
43 {
44         ReadFunc_t              read;
45         WriteFunc_t             write;
46         SeekFunc_t              seek;
47         OpenFunc_t              open;
48         CloseFunc_t             close;
49
50         /* NOTE: these must _NOT_ be size_t on 16bit CPUs! */
51         uint32_t                SeekPos;
52         uint32_t                Size;
53 } KFile;
54
55 #endif /* MWARE_KFILE_H */