Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_misc.c
Show First 20 Lines • Show All 990 Lines • ▼ Show 20 Lines | if (!LUSECONVPATH(td)) { | ||||
error = kern_utimesat(td, dfd, fname, UIO_SYSSPACE, | error = kern_utimesat(td, dfd, fname, UIO_SYSSPACE, | ||||
tvp, UIO_SYSSPACE); | tvp, UIO_SYSSPACE); | ||||
LFREEPATH(fname); | LFREEPATH(fname); | ||||
} | } | ||||
return (error); | return (error); | ||||
} | } | ||||
#endif | #endif | ||||
/* | |||||
* Since 81338031 (switch linuxulator to use the native 1:1 threads) | |||||
emaste: case typo (SInce) | |||||
* _WALL, _WCLONE flags are broken due to the fact that (to Linux kernel) | |||||
* no distinction between processes and threads - everything is runnable | |||||
* task. This allows do a weird things like waiting for a thread status | |||||
* change by wait() API, unlike FreeBSD where wait() is process intended | |||||
* only. | |||||
*/ | |||||
static int | static int | ||||
linux_common_wait(struct thread *td, idtype_t idtype, int id, int *statusp, | linux_common_wait(struct thread *td, idtype_t idtype, int id, int *statusp, | ||||
int options, void *rup, l_siginfo_t *infop) | int options, void *rup, l_siginfo_t *infop) | ||||
{ | { | ||||
l_siginfo_t lsi; | l_siginfo_t lsi; | ||||
siginfo_t siginfo; | siginfo_t siginfo; | ||||
struct __wrusage wru; | struct __wrusage wru; | ||||
int error, status, tmpstat, sig; | int error, status, tmpstat, sig; | ||||
▲ Show 20 Lines • Show All 1,734 Lines • ▼ Show 20 Lines | linux_to_bsd_waitopts(int options, int *bsdopts) | ||||
if (options & LINUX_WEXITED) | if (options & LINUX_WEXITED) | ||||
*bsdopts |= WEXITED; | *bsdopts |= WEXITED; | ||||
if (options & LINUX_WCONTINUED) | if (options & LINUX_WCONTINUED) | ||||
*bsdopts |= WCONTINUED; | *bsdopts |= WCONTINUED; | ||||
if (options & LINUX_WNOWAIT) | if (options & LINUX_WNOWAIT) | ||||
*bsdopts |= WNOWAIT; | *bsdopts |= WNOWAIT; | ||||
if (options & __WCLONE) | if (options & __WCLONE) | ||||
*bsdopts |= WLINUXCLONE; | LINUX_RATELIMIT_MSG_OPT1("unsupported _WCLONE, options(0x%x)", | ||||
options); | |||||
Not Done Inline Actionsdo you have a sense of how common __WCLONE use is in various Linux applications? emaste: do you have a sense of how common `__WCLONE` use is in various Linux applications?
(of course… | |||||
Done Inline ActionsI haven't seen, NPTL does not use _WCLONE, however illumos implemented it (I don't know the reason or bug) dchagin: I haven't seen, NPTL does not use _WCLONE, however illumos implemented it (I don't know the… | |||||
} | } | ||||
int | int | ||||
linux_getrandom(struct thread *td, struct linux_getrandom_args *args) | linux_getrandom(struct thread *td, struct linux_getrandom_args *args) | ||||
{ | { | ||||
struct uio uio; | struct uio uio; | ||||
struct iovec iov; | struct iovec iov; | ||||
int error; | int error; | ||||
▲ Show 20 Lines • Show All 146 Lines • Show Last 20 Lines |
case typo (SInce)