Changes in uspace/drv/char/pl050/pl050.c [c8ea6eca:fafb8e5] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/char/pl050/pl050.c
rc8ea6eca rfafb8e5 59 59 static errno_t pl050_fun_offline(ddf_fun_t *); 60 60 static void pl050_char_conn(ipc_call_t *, void *); 61 static errno_t pl050_read(chardev_srv_t *, void *, size_t, size_t *); 61 static errno_t pl050_read(chardev_srv_t *, void *, size_t, size_t *, 62 chardev_flags_t); 62 63 static errno_t pl050_write(chardev_srv_t *, const void *, size_t, size_t *); 63 64 … … 156 157 } 157 158 158 pl050->buffer[pl050->buf_wp] = IPC_GET_ARG2(*call);159 pl050->buffer[pl050->buf_wp] = ipc_get_arg2(call); 159 160 pl050->buf_wp = nidx; 160 161 fibril_condvar_broadcast(&pl050->buf_cv); … … 242 243 243 244 static 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) 245 246 { 246 247 pl050_t *pl050 = (pl050_t *)srv->srvs->sarg; … … 252 253 left = size; 253 254 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) 255 257 fibril_condvar_wait(&pl050->buf_cv, &pl050->buf_lock); 256 258 if (pl050->buf_rp == pl050->buf_wp)
Note:
See TracChangeset
for help on using the changeset viewer.