Handle reading outside EOF.
[bertos.git] / bertos / kern / kfile.c
index 1ec3266488e4970d1ec611c4d8e6594d4cd8a5b1..2d8a2f841bbfa6c2c8fb6a4174e0e4ee6d9b7c8a 100644 (file)
  * the GNU General Public License.
  *
  * Copyright 2007 Develer S.r.l. (http://www.develer.com/)
- *
  * -->
  *
  * \brief Virtual KFile I/O interface.
+ *
  * This module implements some generic I/O interfaces for kfile.
  *
  * \version $Id$
  * \author Francesco Sacchi <batt@develer.com>
  * \author Daniele Basile <asterix@develer.com>
- *
  */
 
-
 #include "kfile.h"
-#include <appconfig.h>
 
+#include "cfg/cfg_kfile.h"
 #include <cfg/debug.h>
+
 #include <mware/formatwr.h>
+
 #include <string.h>
 
 /*
@@ -174,7 +174,7 @@ int kfile_gets_echo(struct KFile *fd, char *buf, int size, bool echo)
  */
 kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode whence)
 {
-       uint32_t seek_pos;
+       kfile_off_t seek_pos;
 
        switch (whence)
        {
@@ -197,8 +197,7 @@ kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode wh
        /* Bound check */
        if (seek_pos + offset > fd->size)
        {
-               ASSERT(0);
-               return EOF;
+               LOG_INFO("seek outside EOF\n");
        }
 
        fd->seek_pos = seek_pos + offset;
@@ -218,4 +217,13 @@ struct KFile * kfile_genericReopen(struct KFile *fd)
        return fd;
 }
 
+/**
+ * Close file \a fd.
+ * This is a generic implementation that only return 0.
+ */
+int kfile_genericClose(UNUSED_ARG(struct KFile *, fd))
+{
+       return 0;
+};
+