Changeset 8e3498b in mainline for uspace/lib/posix/source/unistd.c


Ignore:
Timestamp:
2017-12-04T18:44:24Z (8 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bde5c04
Parents:
40feeac
Message:

vfs_read/write() should return error code separately from number of bytes transferred.

File:
1 edited

Legend:

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

    r40feeac r8e3498b  
    213213ssize_t posix_read(int fildes, void *buf, size_t nbyte)
    214214{
    215         ssize_t size = rcerrno(vfs_read, fildes, &posix_pos[fildes], buf, nbyte);
    216         if (size < 0)
    217                 return -1;
    218         return size;
     215        size_t nread;
     216        int rc;
     217
     218        rc = rcerrno(vfs_read, fildes, &posix_pos[fildes], buf, nbyte, &nread);
     219        if (rc != EOK)
     220                return -1;
     221        return (ssize_t) nread;
    219222}
    220223
     
    229232ssize_t posix_write(int fildes, const void *buf, size_t nbyte)
    230233{
    231         ssize_t size = rcerrno(vfs_write, fildes, &posix_pos[fildes], buf, nbyte);
    232         if (size < 0)
    233                 return -1;
    234         return size;
     234        size_t nwr;
     235        int rc;
     236
     237        rc = rcerrno(vfs_write, fildes, &posix_pos[fildes], buf, nbyte, &nwr);
     238        if (rc != EOK)
     239                return -1;
     240        return nwr;
    235241}
    236242
Note: See TracChangeset for help on using the changeset viewer.