Ignore:
File:
1 edited

Legend:

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

    r09ab0a9a rf2d88f3  
    6767
    6868static void i8042_char_conn(ipc_call_t *, void *);
    69 static errno_t i8042_read(chardev_srv_t *, void *, size_t, size_t *);
     69static errno_t i8042_read(chardev_srv_t *, void *, size_t, size_t *,
     70    chardev_flags_t);
    7071static errno_t i8042_write(chardev_srv_t *, const void *, size_t, size_t *);
    7172
     
    385386 */
    386387static errno_t i8042_read(chardev_srv_t *srv, void *dest, size_t size,
    387     size_t *nread)
     388    size_t *nread, chardev_flags_t flags)
    388389{
    389390        i8042_port_t *port = (i8042_port_t *)srv->srvs->sarg;
     
    394395        fibril_mutex_lock(&port->buf_lock);
    395396
    396         while (circ_buf_nused(&port->cbuf) == 0)
     397        while ((flags & chardev_f_nonblock) == 0 &&
     398            circ_buf_nused(&port->cbuf) == 0)
    397399                fibril_condvar_wait(&port->buf_cv, &port->buf_lock);
    398400
Note: See TracChangeset for help on using the changeset viewer.