Ignore:
File:
1 edited

Legend:

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

    rc8ea6eca rfafb8e5  
    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
     
    156157        }
    157158
    158         pl050->buffer[pl050->buf_wp] = IPC_GET_ARG2(*call);
     159        pl050->buffer[pl050->buf_wp] = ipc_get_arg2(call);
    159160        pl050->buf_wp = nidx;
    160161        fibril_condvar_broadcast(&pl050->buf_cv);
     
    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.