Convert to new Doxygen style.
[bertos.git] / kern / file.h
1 /**
2  * \file
3  * <!--
4  * Copyright 2003,2004 Develer S.r.l. (http://www.develer.com/)
5  * Copyright 1999,2001,2003 Bernardo Innocenti <bernie@develer.com>
6  * This file is part of DevLib - See README.devlib for information.
7  * -->
8  *
9  * \brief Interface to KFile virtual class
10  *
11  * \version $Id$
12  *
13  * \author Bernardo Innocenti <bernie@develer.com>
14  */
15
16 /*#*
17  *#* $Log$
18  *#* Revision 1.7  2006/07/19 12:56:27  bernie
19  *#* Convert to new Doxygen style.
20  *#*
21  *#* Revision 1.6  2005/11/04 16:20:02  bernie
22  *#* Fix reference to README.devlib in header.
23  *#*
24  *#* Revision 1.5  2005/04/11 19:10:28  bernie
25  *#* Include top-level headers from cfg/ subdir.
26  *#*
27  *#* Revision 1.4  2004/08/25 14:12:09  rasky
28  *#* Aggiornato il comment block dei log RCS
29  *#*
30  *#* Revision 1.3  2004/06/06 15:11:38  bernie
31  *#* Doxygenize.
32  *#*
33  *#* Revision 1.2  2004/06/03 11:27:09  bernie
34  *#* Add dual-license information.
35  *#*
36  *#* Revision 1.1  2004/05/23 17:27:00  bernie
37  *#* Import kern/ subdirectory.
38  *#*/
39 #ifndef KERN_KFILE_H
40 #define KERN_KFILE_H
41
42 #ifndef COMPILER_H
43 #include <cfg/compiler.h>
44 #endif
45
46 struct _KFile;
47
48 typedef size_t  (*ReadFunc_t)   (struct _KFile *fd, char *buf, size_t size);
49 typedef size_t  (*WriteFunc_t)  (struct _KFile *fd, const char *buf, size_t size);
50 typedef bool    (*SeekFunc_t)   (struct _KFile *fd, int32_t offset);
51 typedef bool    (*CloseFunc_t)  (struct _KFile *fd);
52 typedef bool    (*OpenFunc_t)   (struct _KFile *fd, const char *name, int mode);
53
54
55 /**
56  * Context data for callback functions which operate on
57  * pseudo files.
58  */
59 typedef struct _KFile
60 {
61         ReadFunc_t              Read;
62         WriteFunc_t             Write;
63         SeekFunc_t              Seek;
64 /*      OpenFunc_t              Open;   unused */
65         CloseFunc_t             Close;
66
67         /* NOTE: these must _NOT_ be size_t on 16bit CPUs! */
68         uint32_t                SeekPos;
69         uint32_t                Size;
70 } KFile;
71
72
73 #endif /* KERN_KFILE_H */