mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
sys/vfs: add vfs_write_iol()
This commit is contained in:
parent
501ca7e34d
commit
42e5d0d402
@ -68,6 +68,7 @@
|
|||||||
|
|
||||||
#include "sched.h"
|
#include "sched.h"
|
||||||
#include "clist.h"
|
#include "clist.h"
|
||||||
|
#include "iolist.h"
|
||||||
#include "mtd.h"
|
#include "mtd.h"
|
||||||
#include "xfa.h"
|
#include "xfa.h"
|
||||||
|
|
||||||
@ -809,6 +810,17 @@ ssize_t vfs_read(int fd, void *dest, size_t count);
|
|||||||
*/
|
*/
|
||||||
ssize_t vfs_write(int fd, const void *src, size_t count);
|
ssize_t vfs_write(int fd, const void *src, size_t count);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Write bytes from an iolist to an open file
|
||||||
|
*
|
||||||
|
* @param[in] fd fd number obtained from vfs_open
|
||||||
|
* @param[in] iolist iolist to read from
|
||||||
|
*
|
||||||
|
* @return number of bytes written on success
|
||||||
|
* @return <0 on error
|
||||||
|
*/
|
||||||
|
ssize_t vfs_write_iol(int fd, const iolist_t *iolist);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Synchronize a file on storage
|
* @brief Synchronize a file on storage
|
||||||
* Any pending writes are written out to storage.
|
* Any pending writes are written out to storage.
|
||||||
|
@ -355,6 +355,22 @@ ssize_t vfs_write(int fd, const void *src, size_t count)
|
|||||||
return filp->f_op->write(filp, src, count);
|
return filp->f_op->write(filp, src, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ssize_t vfs_write_iol(int fd, const iolist_t *snips)
|
||||||
|
{
|
||||||
|
int res, sum = 0;
|
||||||
|
|
||||||
|
while (snips) {
|
||||||
|
res = vfs_write(fd, snips->iol_base, snips->iol_len);
|
||||||
|
if (res < 0) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
sum += res;
|
||||||
|
snips = snips->iol_next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
int vfs_fsync(int fd)
|
int vfs_fsync(int fd)
|
||||||
{
|
{
|
||||||
DEBUG_NOT_STDOUT(fd, "vfs_fsync: %d\n", fd);
|
DEBUG_NOT_STDOUT(fd, "vfs_fsync: %d\n", fd);
|
||||||
|
Loading…
Reference in New Issue
Block a user