MCPcopy Create free account
hub / github.com/apache/nuttx / rpmsgdev_wait

Function rpmsgdev_wait

drivers/misc/rpmsgdev.c:335–370  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

333 ****************************************************************************/
334
335static int rpmsgdev_wait(FAR struct file *filep, pollevent_t events)
336{
337 int ret;
338 sem_t sem;
339 struct pollfd fds;
340
341 nxsem_init(&sem, 0, 0);
342
343 fds.events = events;
344 fds.arg = &sem;
345 fds.cb = rpmsgdev_wait_cb;
346 events |= POLLERR | POLLHUP;
347
348 while (1)
349 {
350 ret = rpmsgdev_poll(filep, &fds, true);
351 if (ret < 0)
352 {
353 return ret;
354 }
355
356 ret = nxsem_wait(&sem);
357 rpmsgdev_poll(filep, &fds, false);
358 if (ret < 0)
359 {
360 return ret;
361 }
362
363 if ((fds.revents & events) != 0)
364 {
365 break;
366 }
367 }
368
369 return ret;
370}
371
372/****************************************************************************
373 * Name: rpmsgdev_read

Callers 2

rpmsgdev_readFunction · 0.85
rpmsgdev_writeFunction · 0.85

Calls 3

nxsem_initFunction · 0.85
rpmsgdev_pollFunction · 0.85
nxsem_waitFunction · 0.85

Tested by

no test coverage detected