Changeset View
Changeset View
Standalone View
Standalone View
lib/libthr/thread/thr_syscalls.c
| Show First 20 Lines • Show All 192 Lines • ▼ Show 20 Lines | __thr_fcntl(int fd, int cmd, ...) | ||||
| struct pthread *curthread; | struct pthread *curthread; | ||||
| int ret; | int ret; | ||||
| va_list ap; | va_list ap; | ||||
| curthread = _get_curthread(); | curthread = _get_curthread(); | ||||
| va_start(ap, cmd); | va_start(ap, cmd); | ||||
| if (cmd == F_OSETLKW || cmd == F_SETLKW) { | if (cmd == F_OSETLKW || cmd == F_SETLKW) { | ||||
| _thr_cancel_enter(curthread); | _thr_cancel_enter(curthread); | ||||
| ret = __sys_fcntl(fd, cmd, va_arg(ap, void *)); | ret = __sys_fcntl(fd, cmd, (intptr_t)va_arg(ap, void *)); | ||||
| _thr_cancel_leave(curthread, ret == -1); | _thr_cancel_leave(curthread, ret == -1); | ||||
| } else { | } else { | ||||
| ret = __sys_fcntl(fd, cmd, va_arg(ap, void *)); | ret = __sys_fcntl(fd, cmd, (intptr_t)va_arg(ap, void *)); | ||||
| } | } | ||||
| va_end(ap); | va_end(ap); | ||||
| return (ret); | return (ret); | ||||
| } | } | ||||
| /* | /* | ||||
| * Cancellation behavior: | * Cancellation behavior: | ||||
| ▲ Show 20 Lines • Show All 485 Lines • Show Last 20 Lines | |||||