Page MenuHomeFreeBSD

Implement ppoll() system call.
ClosedPublic

Authored by dchagin on Nov 4 2014, 4:14 PM.

Details

Summary

(need more test, ltp passed)

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

dchagin retitled this revision from to Implement ppoll() system call..
dchagin updated this object.
trasz added inline comments.
sys/amd64/linux/syscalls.master
458 ↗(On Diff #2267)

Misplaced space, should be "struct pollfd *fds".

sys/compat/linux/linux_misc.c
2189 ↗(On Diff #2267)

if (args->sset != NULL) {

2197 ↗(On Diff #2267)

Why call SIGDELSET? A comment would be nice.

2201 ↗(On Diff #2267)

if (args->tsp != NULL) {

Fixed, thanks! btw, also for all of Linuxulator's sigprocmask syscall family should be remove SIGKILL|SIGSTOP from new signal mask.
Will be fixed soon.

whoops, kern_sigprocmask() already call SIG_CANTMASK for new mask, so remove my SIGDELSET.

sys/compat/linux/linux_misc.c
2224 ↗(On Diff #3028)

What is this for? The sys_poll() implementation doesn't seem to do anything like this.

sys/compat/linux/linux_misc.c
2224 ↗(On Diff #3028)

The Linux ppoll() system call modifies its timeout argument.

trasz added a reviewer: trasz.
trasz added inline comments.
sys/compat/linux/linux_misc.c
2224 ↗(On Diff #3028)

A comment explaining this would be nice. Still, looks ok.

This revision is now accepted and ready to land.Mar 25 2015, 11:21 AM
This revision was automatically updated to reflect the committed changes.