OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2014 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2014 The Native Client Authors. All rights reserved. |
3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
5 */ | 5 */ |
6 | 6 |
7 /* | 7 /* |
8 * This file defines various POSIX-like functions directly using Linux | 8 * This file defines various POSIX-like functions directly using Linux |
9 * syscalls. This is analogous to src/untrusted/nacl/sys_private.c, which | 9 * syscalls. This is analogous to src/untrusted/nacl/sys_private.c, which |
10 * defines functions using NaCl syscalls directly. | 10 * defines functions using NaCl syscalls directly. |
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
603 | 603 |
604 int linux_sigprocmask(int how, | 604 int linux_sigprocmask(int how, |
605 const linux_sigset_t *set, | 605 const linux_sigset_t *set, |
606 linux_sigset_t *oset) { | 606 linux_sigset_t *oset) { |
607 return errno_value_call( | 607 return errno_value_call( |
608 linux_syscall4(__NR_rt_sigprocmask, how, | 608 linux_syscall4(__NR_rt_sigprocmask, how, |
609 (uintptr_t) set, (uintptr_t) oset, | 609 (uintptr_t) set, (uintptr_t) oset, |
610 sizeof(*set))); | 610 sizeof(*set))); |
611 } | 611 } |
612 | 612 |
613 int linux_tgkill(int tgid, | |
Mark Seaborn
2015/06/26 18:31:59
Nit: args would fit on one line
Luis Héctor Chávez
2015/07/06 23:44:59
Done.
| |
614 int tid, | |
615 int sig) { | |
616 return errno_value_call( | |
617 linux_syscall3(__NR_tgkill, tgid, tid, sig)); | |
618 } | |
619 | |
613 /* | 620 /* |
614 * Obtain Linux signal number from portable signal number. | 621 * Obtain Linux signal number from portable signal number. |
615 */ | 622 */ |
616 static int nacl_signum_to_linux_signum(int signum) { | 623 static int nacl_signum_to_linux_signum(int signum) { |
617 /* SIGSTKFLT is not defined in newlib, hence no mapping. */ | 624 /* SIGSTKFLT is not defined in newlib, hence no mapping. */ |
618 #define HANDLE_SIGNUM(SIGNUM) case SIGNUM: return LINUX_##SIGNUM; | 625 #define HANDLE_SIGNUM(SIGNUM) case SIGNUM: return LINUX_##SIGNUM; |
619 switch(signum) { | 626 switch(signum) { |
620 HANDLE_SIGNUM(SIGHUP); | 627 HANDLE_SIGNUM(SIGHUP); |
621 HANDLE_SIGNUM(SIGINT); | 628 HANDLE_SIGNUM(SIGINT); |
622 HANDLE_SIGNUM(SIGQUIT); | 629 HANDLE_SIGNUM(SIGQUIT); |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
851 va_list ap; | 858 va_list ap; |
852 va_start(ap, arg); | 859 va_start(ap, arg); |
853 void *ptid = va_arg(ap, void *); | 860 void *ptid = va_arg(ap, void *); |
854 void *tls = va_arg(ap, void *); | 861 void *tls = va_arg(ap, void *); |
855 void *ctid = va_arg(ap, void *); | 862 void *ctid = va_arg(ap, void *); |
856 va_end(ap); | 863 va_end(ap); |
857 | 864 |
858 return errno_value_call(linux_clone_wrapper( | 865 return errno_value_call(linux_clone_wrapper( |
859 (uintptr_t) fn, (uintptr_t) arg, flags, child_stack, ptid, tls, ctid)); | 866 (uintptr_t) fn, (uintptr_t) arg, flags, child_stack, ptid, tls, ctid)); |
860 } | 867 } |
OLD | NEW |