Add virtual file I/O interface.
authorbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 4 Aug 2004 02:40:25 +0000 (02:40 +0000)
committerbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 4 Aug 2004 02:40:25 +0000 (02:40 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@104 38d2e660-2303-0410-9eaa-f027e97ec537

mware/kfile.h [new file with mode: 0755]

diff --git a/mware/kfile.h b/mware/kfile.h
new file mode 100755 (executable)
index 0000000..a752830
--- /dev/null
@@ -0,0 +1,52 @@
+/*!
+ * \file
+ * <!--
+ * Copyright 2004 Develer S.r.l. (http://www.develer.com/)
+ * Copyright 1999, 2000, 2001, 2003 Bernardo Innocenti <bernie@develer.com>
+ * This file is part of DevLib - See devlib/README for information.
+ * -->
+ *
+ * \brief Virtual KFile I/O interface.
+ *
+ * \version $Id$
+ * \author Bernardo Innocenti <bernie@develer.com>
+ */
+
+/*
+ * $Log$
+ * Revision 1.1  2004/08/04 02:40:25  bernie
+ * Add virtual file I/O interface.
+ *
+ */
+#ifndef MWARE_KFILE_H
+#define MWARE_KFILE_H
+
+#include <compiler.h>
+
+/* 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);
+
+
+/* Context data for callback functions which operate on
+ * pseudo files.
+ */
+typedef struct _KFile
+{
+       ReadFunc_t              read;
+       WriteFunc_t             write;
+       SeekFunc_t              seek;
+       OpenFunc_t              open;
+       CloseFunc_t             close;
+
+       /* NOTE: these must _NOT_ be size_t on 16bit CPUs! */
+       uint32_t                SeekPos;
+       uint32_t                Size;
+} KFile;
+
+#endif /* MWARE_KFILE_H */