Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/source/unistd.c

    r0d0b319 r1165a419  
    4040#include "posix/unistd.h"
    4141
    42 #include <errno.h>
    43 
     42#include "posix/errno.h"
    4443#include "posix/string.h"
    4544#include "posix/fcntl.h"
     
    5352#include <libarch/config.h>
    5453
    55 // FIXME: replace with a hash table
    5654aoff64_t posix_pos[MAX_OPEN_FILES];
    5755
     
    128126char *posix_getcwd(char *buf, size_t size)
    129127{
    130         if (failed(vfs_cwd_get(buf, size)))
     128        int rc = rcerrno(vfs_cwd_get, buf, size);
     129        if (rc != EOK)
    131130                return NULL;
    132131        return buf;
     
    140139int posix_chdir(const char *path)
    141140{
    142         if (failed(vfs_cwd_set(path)))
     141        int rc = rcerrno(vfs_cwd_set, path);
     142        if (rc != EOK)
    143143                return -1;
    144144        return 0;
     
    196196{
    197197        posix_pos[fildes] = 0;
    198         if (failed(vfs_put(fildes)))
     198        int rc = rcerrno(vfs_put, fildes);
     199        if (rc != EOK)
    199200                return -1;
    200201        else
     
    212213ssize_t posix_read(int fildes, void *buf, size_t nbyte)
    213214{
    214         size_t nread;
    215         if (failed(vfs_read(fildes, &posix_pos[fildes], buf, nbyte, &nread)))
    216                 return -1;
    217         return (ssize_t) nread;
     215        ssize_t size = rcerrno(vfs_read, fildes, &posix_pos[fildes], buf, nbyte);
     216        if (size < 0)
     217                return -1;
     218        return size;
    218219}
    219220
     
    228229ssize_t posix_write(int fildes, const void *buf, size_t nbyte)
    229230{
    230         size_t nwr;
    231         if (failed(vfs_write(fildes, &posix_pos[fildes], buf, nbyte, &nwr)))
    232                 return -1;
    233         return nwr;
     231        ssize_t size = rcerrno(vfs_write, fildes, &posix_pos[fildes], buf, nbyte);
     232        if (size < 0)
     233                return -1;
     234        return size;
    234235}
    235236
     
    246247{
    247248        struct stat st;
     249        int rc;
    248250
    249251        switch (whence) {
     
    255257                break;
    256258        case SEEK_END:
    257                 if (failed(vfs_stat(fildes, &st)))
     259                rc = rcerrno(vfs_stat, fildes, &st);
     260                if (rc != EOK)
    258261                        return -1;
    259262                posix_pos[fildes] = st.size + offset;
     
    276279int posix_fsync(int fildes)
    277280{
    278         if (failed(vfs_sync(fildes)))
     281        if (rcerrno(vfs_sync, fildes) != EOK)
    279282                return -1;
    280283        else
     
    291294int posix_ftruncate(int fildes, posix_off_t length)
    292295{
    293         if (failed(vfs_resize(fildes, (aoff64_t) length)))
     296        if (rcerrno(vfs_resize, fildes, (aoff64_t) length) != EOK)
    294297                return -1;
    295298        else
     
    305308int posix_rmdir(const char *path)
    306309{
    307         if (failed(vfs_unlink_path(path)))
     310        if (rcerrno(vfs_unlink_path, path) != EOK)
    308311                return -1;
    309312        else
     
    319322int posix_unlink(const char *path)
    320323{
    321         if (failed(vfs_unlink_path(path)))
     324        if (rcerrno(vfs_unlink_path, path) != EOK)
    322325                return -1;
    323326        else
     
    346349int posix_dup2(int fildes, int fildes2)
    347350{
    348         int file;
    349         if (failed(vfs_clone(fildes, fildes2, false, &file))) {
    350                 return -1;
    351         }
    352         return file;
     351        return negerrno(vfs_clone, fildes, fildes2, false);
    353352}
    354353
Note: See TracChangeset for help on using the changeset viewer.