Changeset f2d88f3 in mainline for uspace/drv/char/pl050/pl050.c


Ignore:
Timestamp:
2019-01-04T21:22:17Z (6 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
af7b85b
Parents:
06412ba
Message:

Add forgotten changes to enable non-blocking chardev read

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/char/pl050/pl050.c

    r06412ba rf2d88f3  
    5959static errno_t pl050_fun_offline(ddf_fun_t *);
    6060static void pl050_char_conn(ipc_call_t *, void *);
    61 static errno_t pl050_read(chardev_srv_t *, void *, size_t, size_t *);
     61static errno_t pl050_read(chardev_srv_t *, void *, size_t, size_t *,
     62    chardev_flags_t);
    6263static errno_t pl050_write(chardev_srv_t *, const void *, size_t, size_t *);
    6364
     
    242243
    243244static errno_t pl050_read(chardev_srv_t *srv, void *buffer, size_t size,
    244     size_t *nread)
     245    size_t *nread, chardev_flags_t flags)
    245246{
    246247        pl050_t *pl050 = (pl050_t *)srv->srvs->sarg;
     
    252253        left = size;
    253254        while (left > 0) {
    254                 while (left == size && pl050->buf_rp == pl050->buf_wp)
     255                while ((flags & chardev_f_nonblock) == 0 &&
     256                    left == size && pl050->buf_rp == pl050->buf_wp)
    255257                        fibril_condvar_wait(&pl050->buf_cv, &pl050->buf_lock);
    256258                if (pl050->buf_rp == pl050->buf_wp)
Note: See TracChangeset for help on using the changeset viewer.