Refactor to use new protocol module and sipo.
[bertos.git] / bertos / io / kfile.c
index f4df850b1133390743187daeb1d44b771e7121b8..52762bd7dfd59ea8e82ba08162b88e93c392b56f 100644 (file)
@@ -167,6 +167,29 @@ int kfile_gets_echo(struct KFile *fd, char *buf, int size, bool echo)
 #endif /* !CONFIG_KFILE_GETS */
 
 
+kfile_off_t kfile_copy(KFile *src, KFile *dst, kfile_off_t size)
+{
+       char buf[32];
+       kfile_off_t cp_len = 0;
+
+       while (size)
+       {
+               size_t len = MIN(sizeof(buf), (size_t)size);
+               if (kfile_read(src, buf, len) != len)
+                       break;
+
+               size_t wr_len = kfile_write(dst, buf, len);
+               cp_len += wr_len;
+               size -= len;
+
+               if (wr_len != len)
+                       break;
+       }
+
+       return cp_len;
+}
+
+
 /**
  * Move \a fd file seek position of \a offset bytes from \a whence.
  *
@@ -195,11 +218,9 @@ kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode wh
                break;
        }
 
-       #if LOG_LEVEL >= LOG_LVL_INFO
        /* Bound check */
        if (seek_pos + offset > fd->size)
                LOG_INFO("seek outside EOF\n");
-       #endif
 
        fd->seek_pos = seek_pos + offset;