assert(ctl && pfds);
if (space > 0) {
pfds->fd = ctl->poll_fd;
- pfds->events = POLLIN|POLLERR;
+ pfds->events = POLLIN|POLLERR|POLLNVAL;
return 1;
}
return 0;
pfds->fd = hwdep->poll_fd;
switch (hwdep->mode & O_ACCMODE) {
case O_WRONLY:
- pfds->events = POLLOUT|POLLERR;
+ pfds->events = POLLOUT|POLLERR|POLLNVAL;
break;
case O_RDONLY:
- pfds->events = POLLIN|POLLERR;
+ pfds->events = POLLIN|POLLERR|POLLNVAL;
break;
case O_RDWR:
- pfds->events = POLLOUT|POLLIN|POLLERR;
+ pfds->events = POLLOUT|POLLIN|POLLERR|POLLNVAL;
break;
default:
return -EIO;
return -EINVAL;
res = 0;
for (idx = 0; idx < nfds; idx++)
- res |= pfds->revents & (POLLIN|POLLERR);
+ res |= pfds->revents & (POLLIN|POLLERR|POLLNVAL);
*revents = res;
return 0;
}
assert(pcm && pfds);
if (space >= 1 && pfds) {
pfds->fd = pcm->poll_fd;
- pfds->events = pcm->stream == SND_PCM_STREAM_PLAYBACK ? (POLLOUT|POLLERR) : (POLLIN|POLLERR);
+ pfds->events = pcm->stream == SND_PCM_STREAM_PLAYBACK ? (POLLOUT|POLLERR|POLLNVAL) : (POLLIN|POLLERR|POLLNVAL);
} else
return 0;
return 1;
assert(rawmidi);
if (space >= 1) {
pfds->fd = rawmidi->poll_fd;
- pfds->events = rawmidi->stream == SND_RAWMIDI_STREAM_OUTPUT ? (POLLOUT|POLLERR) : (POLLIN|POLLERR);
+ pfds->events = rawmidi->stream == SND_RAWMIDI_STREAM_OUTPUT ? (POLLOUT|POLLERR|POLLNVAL) : (POLLIN|POLLERR|POLLNVAL);
return 1;
}
return 0;
assert(seq);
if ((events & POLLIN) && space >= 1) {
assert(seq->streams & SND_SEQ_OPEN_INPUT);
- revents |= POLLIN|POLLERR;
+ revents |= POLLIN|POLLERR|POLLNVAL;
}
if ((events & POLLOUT) && space >= 1) {
assert(seq->streams & SND_SEQ_OPEN_OUTPUT);
- revents |= POLLOUT|POLLERR;
+ revents |= POLLOUT|POLLERR|POLLNVAL;
}
if (!revents)
return 0;
pfds->fd = timer->poll_fd;
switch (timer->mode & O_ACCMODE) {
case O_WRONLY:
- pfds->events = POLLOUT|POLLERR;
+ pfds->events = POLLOUT|POLLERR|POLLNVAL;
break;
case O_RDONLY:
- pfds->events = POLLIN|POLLERR;
+ pfds->events = POLLIN|POLLERR|POLLNVAL;
break;
case O_RDWR:
- pfds->events = POLLOUT|POLLIN|POLLERR;
+ pfds->events = POLLOUT|POLLIN|POLLERR|POLLNVAL;
break;
default:
return -EIO;