|
Message-ID: <20140526215412.GA507@brightrain.aerifal.cx> Date: Mon, 26 May 2014 17:54:12 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: [UGLY PATCH v2] Support for no-legacy-syscalls archs On Mon, May 26, 2014 at 11:13:49PM +0200, Szabolcs Nagy wrote: > * Rich Felker <dalias@...c.org> [2014-05-26 14:40:36 -0400]: > > +#ifdef SYS_fork > > ret = syscall(SYS_fork); > > +#else > > + ret = syscall(SYS_clone, SIGCHLD); > > +#endif > > clone has more args The remaining args are only read if flags!=0 though (flags are in the upper bits of the first argument; the lower bits are the signal to be generated on exit). As far as I can tell, this is the correct way to use clone to provide fork. > > int select(int n, fd_set *restrict rfds, fd_set *restrict wfds, fd_set *restrict efds, struct timeval *restrict tv) > > { > > +#ifdef SYS_select > > return syscall_cp(SYS_select, n, rfds, wfds, efds, tv); > > +#else > > + long data[2] = { 0, _NSIG/8 }; > > + struct timespec ts; > > + if (tv) { > > + ts.tv_sec = tv->tv_sec; > > + ts.tv_nsec = tv->tv_usec > 999999 ? > > + 999999999 : tv->tv_usec * 1000; > > + } > > + return syscall_cp(SYS_pselect6, n, rfds, wfds, efds, tv ? &ts : 0, data); > > +#endif > > tv_usec may be negative Then the kernel should generate the EINVAL for us. > isnt it better to adjust tv_sec if usec is large? > or fail with EINVAL like in futimensat: POSIX allows implementation-defined limits on the duration, but now that you say it, what I wrote above is not not a correct implementation of such a limit. I'm not clear on whether we should renormalize into timespec or just reject out-of-range usec values; unlike in some other places where timespec is used, POSIX is missing text on select and pselect regarding how out-of-range timespec and timeval structs should be handled... > > pid_t getpgrp(void) > > { > > +#ifdef SYS_getpgrp > > return __syscall(SYS_getpgrp); > > +#else > > + return __syscall(SYS_getpgid, 0); > > +#endif > > you said this can be just the new call Ah yes, I forgot to change that. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.