this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add sys_pselect()

+56
+1
src/kernel/emulation/linux/CMakeLists.txt
··· 97 97 unistd/chflags.c 98 98 unistd/issetugid.c 99 99 select/select.c 100 + select/pselect.c 100 101 select/poll.c 101 102 process/vfork.c 102 103 process/fork.c
+42
src/kernel/emulation/linux/select/pselect.c
··· 1 + #include "pselect.h" 2 + #include "../base.h" 3 + #include "../errno.h" 4 + #include <stddef.h> 5 + #include <linux-syscalls/linux.h> 6 + 7 + long sys_pselect(int nfds, void* rfds, void* wfds, void* efds, struct bsd_timeval* timeout, const sigset_t* mask) 8 + { 9 + return sys_pselect_nocancel(nfds, rfds, wfds, efds, timeout, mask); 10 + } 11 + 12 + long sys_pselect_nocancel(int nfds, void* rfds, void* wfds, void* efds, struct bsd_timeval* timeout, const sigset_t* mask) 13 + { 14 + int ret; 15 + struct linux_timeval ltv; 16 + long data[2]; 17 + 18 + if (timeout != NULL) 19 + { 20 + ltv.tv_sec = timeout->tv_sec; 21 + ltv.tv_usec = timeout->tv_usec; 22 + } 23 + if (mask != NULL) 24 + { 25 + linux_sigset_t lmask; 26 + 27 + sigset_bsd_to_linux(mask, &lmask); 28 + 29 + data[0] = (long)lmask; 30 + data[1] = 65/8; // _NSIG / 8 31 + } 32 + 33 + ret = LINUX_SYSCALL(__NR_pselect6, nfds, rfds, wfds, efds, 34 + (timeout != NULL) ? &ltv : NULL, 35 + (mask != NULL) ? data : NULL); 36 + 37 + if (ret < 0) 38 + ret = errno_linux_to_bsd(ret); 39 + 40 + return ret; 41 + } 42 +
+10
src/kernel/emulation/linux/select/pselect.h
··· 1 + #ifndef LINUX_PSELECT_H 2 + #define LINUX_PSELECT_H 3 + #include "../time/gettimeofday.h" 4 + #include "../signal/duct_signals.h" 5 + 6 + long sys_pselect(int nfds, void* rfds, void* wfds, void* efds, struct bsd_timeval* timeout, const sigset_t* mask); 7 + long sys_pselect_nocancel(int nfds, void* rfds, void* wfds, void* efds, struct bsd_timeval* timeout, const sigset_t* mask); 8 + 9 + #endif 10 +
+3
src/kernel/emulation/linux/syscalls.c
··· 149 149 #include "xattr/setxattr.h" 150 150 #include "xattr/fsetxattr.h" 151 151 #include "select/select.h" 152 + #include "select/pselect.h" 152 153 #include "select/poll.h" 153 154 #include "psynch/psynch_mutexwait.h" 154 155 #include "psynch/psynch_mutexdrop.h" ··· 332 333 [367] = sys_workq_open, 333 334 [368] = sys_workq_kernreturn, 334 335 [372] = sys_thread_selfid, 336 + [394] = sys_pselect, 337 + [395] = sys_pselect_nocancel, 335 338 [396] = sys_read_nocancel, 336 339 [397] = sys_write_nocancel, 337 340 [398] = sys_open_nocancel,