Changeset f2d88f3 in mainline for uspace/drv
- Timestamp:
- 2019-01-04T21:22:17Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- af7b85b
- Parents:
- 06412ba
- Location:
- uspace/drv
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/char/i8042/i8042.c
r06412ba rf2d88f3 67 67 68 68 static void i8042_char_conn(ipc_call_t *, void *); 69 static errno_t i8042_read(chardev_srv_t *, void *, size_t, size_t *); 69 static errno_t i8042_read(chardev_srv_t *, void *, size_t, size_t *, 70 chardev_flags_t); 70 71 static errno_t i8042_write(chardev_srv_t *, const void *, size_t, size_t *); 71 72 … … 385 386 */ 386 387 static 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) 388 389 { 389 390 i8042_port_t *port = (i8042_port_t *)srv->srvs->sarg; … … 394 395 fibril_mutex_lock(&port->buf_lock); 395 396 396 while (circ_buf_nused(&port->cbuf) == 0) 397 while ((flags & chardev_f_nonblock) == 0 && 398 circ_buf_nused(&port->cbuf) == 0) 397 399 fibril_condvar_wait(&port->buf_cv, &port->buf_lock); 398 400 -
uspace/drv/char/msim-con/msim-con.c
r06412ba rf2d88f3 43 43 static void msim_con_connection(ipc_call_t *, void *); 44 44 45 static errno_t msim_con_read(chardev_srv_t *, void *, size_t, size_t *); 45 static errno_t msim_con_read(chardev_srv_t *, void *, size_t, size_t *, 46 chardev_flags_t); 46 47 static errno_t msim_con_write(chardev_srv_t *, const void *, size_t, size_t *); 47 48 … … 185 186 /** Read from msim console device */ 186 187 static errno_t msim_con_read(chardev_srv_t *srv, void *buf, size_t size, 187 size_t *nread )188 size_t *nread, chardev_flags_t flags) 188 189 { 189 190 msim_con_t *con = (msim_con_t *) srv->srvs->sarg; … … 194 195 fibril_mutex_lock(&con->buf_lock); 195 196 196 while (circ_buf_nused(&con->cbuf) == 0) 197 while ((flags & chardev_f_nonblock) == 0 && 198 circ_buf_nused(&con->cbuf) == 0) 197 199 fibril_condvar_wait(&con->buf_cv, &con->buf_lock); 198 200 -
uspace/drv/char/ns8250/ns8250.c
r06412ba rf2d88f3 246 246 * @param count The number of bytes to be read. 247 247 * @param nread Place to store number of bytes actually read 248 * @param flags @c chardev_f_nonblock not to block waiting for data 249 * even if no data is available 248 250 * 249 251 * @return EOK on success or non-zero error code 250 252 */ 251 static errno_t ns8250_read(chardev_srv_t *srv, void *buf, size_t count, size_t *nread) 253 static errno_t ns8250_read(chardev_srv_t *srv, void *buf, size_t count, size_t *nread, 254 chardev_flags_t flags) 252 255 { 253 256 ns8250_t *ns = srv_ns8250(srv); … … 261 264 262 265 fibril_mutex_lock(&ns->mutex); 263 while (buf_is_empty(&ns->input_buffer)) 266 while ((flags & chardev_f_none) == 0 && 267 buf_is_empty(&ns->input_buffer)) 264 268 fibril_condvar_wait(&ns->input_buffer_available, &ns->mutex); 265 269 while (!buf_is_empty(&ns->input_buffer) && pos < count) { -
uspace/drv/char/pc-lpt/pc-lpt.c
r06412ba rf2d88f3 45 45 static void pc_lpt_connection(ipc_call_t *, void *); 46 46 47 static errno_t pc_lpt_read(chardev_srv_t *, void *, size_t, size_t *); 47 static errno_t pc_lpt_read(chardev_srv_t *, void *, size_t, size_t *, 48 chardev_flags_t); 48 49 static errno_t pc_lpt_write(chardev_srv_t *, const void *, size_t, size_t *); 49 50 … … 224 225 /** Read from pc-lpt device */ 225 226 static errno_t pc_lpt_read(chardev_srv_t *srv, void *buf, size_t size, 226 size_t *nread )227 size_t *nread, chardev_flags_t flags) 227 228 { 228 229 pc_lpt_t *lpt = (pc_lpt_t *) srv->srvs->sarg; -
uspace/drv/char/pl050/pl050.c
r06412ba rf2d88f3 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 … … 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) -
uspace/drv/char/ski-con/ski-con.c
r06412ba rf2d88f3 55 55 static void ski_con_connection(ipc_call_t *, void *); 56 56 57 static errno_t ski_con_read(chardev_srv_t *, void *, size_t, size_t *); 57 static errno_t ski_con_read(chardev_srv_t *, void *, size_t, size_t *, 58 chardev_flags_t); 58 59 static errno_t ski_con_write(chardev_srv_t *, const void *, size_t, size_t *); 59 60 … … 260 261 /** Read from Ski console device */ 261 262 static errno_t ski_con_read(chardev_srv_t *srv, void *buf, size_t size, 262 size_t *nread )263 size_t *nread, chardev_flags_t flags) 263 264 { 264 265 ski_con_t *con = (ski_con_t *) srv->srvs->sarg; … … 269 270 fibril_mutex_lock(&con->buf_lock); 270 271 271 while (circ_buf_nused(&con->cbuf) == 0) 272 while ((flags & chardev_f_nonblock) == 0 && 273 circ_buf_nused(&con->cbuf) == 0) 272 274 fibril_condvar_wait(&con->buf_cv, &con->buf_lock); 273 275 -
uspace/drv/char/sun4v-con/sun4v-con.c
r06412ba rf2d88f3 46 46 #define POLL_INTERVAL 10000 47 47 48 static errno_t sun4v_con_read(chardev_srv_t *, void *, size_t, size_t *); 48 static errno_t sun4v_con_read(chardev_srv_t *, void *, size_t, size_t *, 49 chardev_flags_t); 49 50 static errno_t sun4v_con_write(chardev_srv_t *, const void *, size_t, size_t *); 50 51 … … 154 155 /** Read from Sun4v console device */ 155 156 static errno_t sun4v_con_read(chardev_srv_t *srv, void *buf, size_t size, 156 size_t *nread )157 size_t *nread, chardev_flags_t flags) 157 158 { 158 159 sun4v_con_t *con = (sun4v_con_t *) srv->srvs->sarg; … … 161 162 char c; 162 163 163 while (con->input_buffer->read_ptr == con->input_buffer->write_ptr) 164 while ((flags & chardev_f_nonblock) == 0 && 165 con->input_buffer->read_ptr == con->input_buffer->write_ptr) 164 166 fibril_usleep(POLL_INTERVAL); 165 167 -
uspace/drv/hid/atkbd/atkbd.c
r06412ba rf2d88f3 211 211 while (true) { 212 212 uint8_t code = 0; 213 rc = chardev_read(kbd->chardev, &code, 1, &nwr );213 rc = chardev_read(kbd->chardev, &code, 1, &nwr, chardev_f_none); 214 214 if (rc != EOK) 215 215 return EIO; … … 222 222 map_size = sizeof(scanmap_e0) / sizeof(unsigned int); 223 223 224 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 224 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 225 chardev_f_none); 225 226 if (rc != EOK) 226 227 return EIO; 227 228 } else if (code == KBD_SCANCODE_SET_EXTENDED_SPECIAL) { 228 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 229 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 230 chardev_f_none); 229 231 if (rc != EOK) 230 232 return EIO; … … 232 234 continue; 233 235 234 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 236 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 237 chardev_f_none); 235 238 if (rc != EOK) 236 239 return EIO; … … 238 241 continue; 239 242 240 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 243 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 244 chardev_f_none); 241 245 if (rc != EOK) 242 246 return EIO; … … 244 248 continue; 245 249 246 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 250 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 251 chardev_f_none); 247 252 if (rc != EOK) 248 253 return EIO; … … 250 255 continue; 251 256 252 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 257 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 258 chardev_f_none); 253 259 if (rc != EOK) 254 260 return EIO; … … 256 262 continue; 257 263 258 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 264 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 265 chardev_f_none); 259 266 if (rc != EOK) 260 267 return EIO; … … 262 269 continue; 263 270 264 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 271 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 272 chardev_f_none); 265 273 if (rc != EOK) 266 274 return EIO; … … 277 285 if (code == KBD_SCANCODE_KEY_RELEASE) { 278 286 type = KEY_RELEASE; 279 rc = chardev_read(kbd->chardev, &code, 1, &nwr); 287 rc = chardev_read(kbd->chardev, &code, 1, &nwr, 288 chardev_f_none); 280 289 if (rc != EOK) 281 290 return EIO; … … 418 427 return EIO; 419 428 } 420 rc = chardev_read(kbd->chardev, &code, 1, &bytes); 429 rc = chardev_read(kbd->chardev, &code, 1, &bytes, 430 chardev_f_none); 421 431 if (rc != EOK || code != AT_KBD_ACK) { 422 432 ddf_msg(LVL_ERROR, "Failed to confirm keyboard enable: %hhx.", -
uspace/drv/hid/ps2mouse/ps2mouse.c
r06412ba rf2d88f3 77 77 uint8_t data = 0; \ 78 78 size_t nread; \ 79 const errno_t rc = chardev_read((mouse)->chardev, &data, 1, &nread); \ 79 const errno_t rc = chardev_read((mouse)->chardev, &data, 1, &nread, \ 80 chardev_f_none); \ 80 81 if (rc != EOK) { \ 81 82 ddf_msg(LVL_ERROR, "Failed reading byte: %s", str_error_name(rc));\ … … 184 185 185 186 size_t nread; 186 rc = chardev_read(mouse->chardev, &report, 1, &nread );187 rc = chardev_read(mouse->chardev, &report, 1, &nread, chardev_f_none); 187 188 if (rc != EOK || report != PS2_MOUSE_ACK) { 188 189 ddf_msg(LVL_ERROR, "Failed to confirm data reporting: %hhx.", … … 232 233 while (pos < psize) { 233 234 rc = chardev_read(mouse->chardev, pbuf + pos, psize - pos, 234 &nread );235 &nread, chardev_f_none); 235 236 if (rc != EOK) { 236 237 ddf_msg(LVL_WARN, "Error reading packet."); -
uspace/drv/hid/xtkbd/xtkbd.c
r06412ba rf2d88f3 216 216 217 217 uint8_t code = 0; 218 rc = chardev_read(kbd->chardev, &code, 1, &nread );218 rc = chardev_read(kbd->chardev, &code, 1, &nread, chardev_f_none); 219 219 if (rc != EOK) 220 220 return EIO; … … 229 229 map_size = sizeof(scanmap_e0) / sizeof(unsigned int); 230 230 231 rc = chardev_read(kbd->chardev, &code, 1, &nread); 231 rc = chardev_read(kbd->chardev, &code, 1, &nread, 232 chardev_f_none); 232 233 if (rc != EOK) 233 234 return EIO; … … 236 237 237 238 if (code == 0x2a) { /* Print Screen */ 238 rc = chardev_read(kbd->chardev, &code, 1, &nread); 239 rc = chardev_read(kbd->chardev, &code, 1, &nread, 240 chardev_f_none); 239 241 if (rc != EOK) 240 242 return EIO; … … 243 245 continue; 244 246 245 rc = chardev_read(kbd->chardev, &code, 1, &nread); 247 rc = chardev_read(kbd->chardev, &code, 1, &nread, 248 chardev_f_none); 246 249 if (rc != EOK) 247 250 return EIO; … … 254 257 255 258 if (code == 0x46) { /* Break */ 256 rc = chardev_read(kbd->chardev, &code, 1, &nread); 259 rc = chardev_read(kbd->chardev, &code, 1, &nread, 260 chardev_f_none); 257 261 if (rc != EOK) 258 262 return EIO; … … 261 265 continue; 262 266 263 rc = chardev_read(kbd->chardev, &code, 1, &nread); 267 rc = chardev_read(kbd->chardev, &code, 1, &nread, 268 chardev_f_none); 264 269 if (rc != EOK) 265 270 return EIO; … … 274 279 /* Extended special set */ 275 280 if (code == KBD_SCANCODE_SET_EXTENDED_SPECIAL) { 276 rc = chardev_read(kbd->chardev, &code, 1, &nread); 281 rc = chardev_read(kbd->chardev, &code, 1, &nread, 282 chardev_f_none); 277 283 if (rc != EOK) 278 284 return EIO; … … 281 287 continue; 282 288 283 rc = chardev_read(kbd->chardev, &code, 1, &nread); 289 rc = chardev_read(kbd->chardev, &code, 1, &nread, 290 chardev_f_none); 284 291 if (rc != EOK) 285 292 return EIO; … … 288 295 continue; 289 296 290 rc = chardev_read(kbd->chardev, &code, 1, &nread); 297 rc = chardev_read(kbd->chardev, &code, 1, &nread, 298 chardev_f_none); 291 299 if (rc != EOK) 292 300 return EIO; … … 295 303 continue; 296 304 297 rc = chardev_read(kbd->chardev, &code, 1, &nread); 305 rc = chardev_read(kbd->chardev, &code, 1, &nread, 306 chardev_f_none); 298 307 if (rc != EOK) 299 308 return EIO; … … 302 311 continue; 303 312 304 rc = chardev_read(kbd->chardev, &code, 1, &nread); 313 rc = chardev_read(kbd->chardev, &code, 1, &nread, 314 chardev_f_none); 305 315 if (rc != EOK) 306 316 return EIO;
Note:
See TracChangeset
for help on using the changeset viewer.