diff options
author | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2011-01-29 03:15:44 +0100 |
---|---|---|
committer | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2011-01-29 03:15:44 +0100 |
commit | 499e349afa57536ce80497aa99f61c5492e3733e (patch) | |
tree | fe3308c344659e800172cfaad9793918f24ae4b1 /os/src/write.c | |
parent | 5754656f65205ff1fd9b23c2a85778b3671caf68 (diff) |
More filesystem stuff working. devfs is now in place with stdin, stdout, and stderr.
Diffstat (limited to 'os/src/write.c')
-rw-r--r-- | os/src/write.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/os/src/write.c b/os/src/write.c index 50fadc6..268c0f1 100644 --- a/os/src/write.c +++ b/os/src/write.c @@ -1,7 +1,22 @@ #include <reent.h> #include <osdebug.h> +#include <errno.h> +#include "fio.h" _ssize_t _write_r(struct _reent * reent, int fd, const void * buf, size_t size) { - DBGOUT("_write_r(%p, %d, %p, %u)\r\n", reent, fd, buf, size); - return 0; + int r; + + if (!fio_is_open(fd)) { + reent->_errno = EBADF; + return -1; + } + + r = fio_write(fd, buf, size); + + if (r < 0) { + reent->_errno = EINVAL; + return -1; + } + + return r; } |