projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge needed define.
[bertos.git]
/
kern
/
kfile.h
diff --git
a/kern/kfile.h
b/kern/kfile.h
index 4e529bcff871930804465134f4c934c32cf82d1f..4bb7a2380946748f6063e3d6bc56cc689ba0d707 100644
(file)
--- a/
kern/kfile.h
+++ b/
kern/kfile.h
@@
-33,11
+33,11
@@
*
* \brief Virtual KFile I/O interface.
* KFile is a generic interface for file I/O.
*
* \brief Virtual KFile I/O interface.
* KFile is a generic interface for file I/O.
- *
Uses an of object
oriented model to supply
+ *
It uses an object-
oriented model to supply
* a generic interface for drivers to communicate.
* a generic interface for drivers to communicate.
- * This module contains only definitions,
data
structure
+ * This module contains only definitions,
the instance
structure
* and an API.
* and an API.
- * Each KFile user should implement at least some
core function
s.
+ * Each KFile user should implement at least some
method
s.
* E.G.
* If you have a serial driver and want to comply to KFile interface,
* you have to declare your context structure:
* E.G.
* If you have a serial driver and want to comply to KFile interface,
* you have to declare your context structure:
@@
-74,7
+74,7
@@
* \endcode
* KFILESERIAL macro helps to ensure that obj passed is really a Serial.
*
* \endcode
* KFILESERIAL macro helps to ensure that obj passed is really a Serial.
*
- * KFile interface do not supply the open function: this is d
one deliberately
,
+ * KFile interface do not supply the open function: this is d
eliberate
,
* because in embedded systems each device has its own init parameters.
* For the same reason specific file settings (like baudrate for Serial, for example)
* are demanded to specific driver implementation.
* because in embedded systems each device has its own init parameters.
* For the same reason specific file settings (like baudrate for Serial, for example)
* are demanded to specific driver implementation.
@@
-90,6
+90,7
@@
#include <cfg/compiler.h>
#include <cfg/debug.h>
#include <cfg/compiler.h>
#include <cfg/debug.h>
+#include <cfg/macros.h>
/* fwd decl */
struct KFile;
/* fwd decl */
struct KFile;
@@
-110,7
+111,7
@@
typedef enum KSeekMode
/**
* Prototypes for KFile access functions.
/**
* Prototypes for KFile access functions.
- * I/O file function must be ANSI compliant.
+ * I/O file function
s
must be ANSI compliant.
* \note A KFile user can choose which function subset to implement,
* but has to set to NULL unimplemented features.
* \{
* \note A KFile user can choose which function subset to implement,
* but has to set to NULL unimplemented features.
* \{
@@
-164,19
+165,6
@@
typedef int (*ErrorFunc_t) (struct KFile *fd);
typedef void (*ClearErrFunc_t) (struct KFile *fd);
/* \} */
typedef void (*ClearErrFunc_t) (struct KFile *fd);
/* \} */
-/**
- * KFile type.
- * Used at runtime and in debug mode only to check
- * "dynamic casts".
- * \note Add here new KFile types.
- */
-typedef enum KFileType
-{
- KFT_GENERIC, ///< Generic
- KFT_SERIAL, ///< Serial driver
- KFT_CNT
-} KFileType;
-
/**
* Context data for callback functions which operate on
* pseudo files.
/**
* Context data for callback functions which operate on
* pseudo files.
@@
-192,7
+180,7
@@
typedef struct KFile
FlushFunc_t flush;
ErrorFunc_t error;
ClearErrFunc_t clearerr;
FlushFunc_t flush;
ErrorFunc_t error;
ClearErrFunc_t clearerr;
- DB(
KFileType
_type); ///< Used to keep trace, at runtime, of obj type.
+ DB(
id_t
_type); ///< Used to keep trace, at runtime, of obj type.
/* NOTE: these must _NOT_ be size_t on 16bit CPUs! */
uint32_t seek_pos;
/* NOTE: these must _NOT_ be size_t on 16bit CPUs! */
uint32_t seek_pos;
@@
-200,14
+188,14
@@
typedef struct KFile
} KFile;
/**
} KFile;
/**
- *
Check if \a fd is a generic KFile type
.
+ *
Generic implementation of kfile_seek
.
*/
*/
-#define KFILE_ASSERT_GENERIC(fd) ASSERT(fd->_type == KFT_GENERIC)
+kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode whence);
/**
/**
- * Generic implementation of kfile_
seek
.
+ * Generic implementation of kfile_
reopen
.
*/
*/
-
kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode whence
);
+
struct KFile * kfile_genericReopen(struct KFile *fd
);
int kfile_putc(int c, struct KFile *fd); ///< Generic putc implementation using kfile_write.
int kfile_getc(struct KFile *fd); ///< Generic getc implementation using kfile_read.
int kfile_putc(int c, struct KFile *fd); ///< Generic putc implementation using kfile_write.
int kfile_getc(struct KFile *fd); ///< Generic getc implementation using kfile_read.