opnsense-src/sys/compat/linux
Ed Schouten 8328babdd0 Make pipes in CloudABI work.
Summary:
Pipes in CloudABI are unidirectional. The reason for this is that
CloudABI attempts to provide a uniform runtime environment across
different flavours of UNIX.

Instead of implementing a custom pipe that is unidirectional, we can
simply reuse Capsicum permission bits to support this. This is nice,
because CloudABI already attempts to restrict permission bits to
correspond with the operations that apply to a certain file descriptor.

Replace kern_pipe() and kern_pipe2() by a single kern_pipe() that takes
a pair of filecaps. These filecaps are passed to the newly introduced
falloc_caps() function that creates the descriptors with rights in
place.

Test Plan:
CloudABI pipes seem to be created with proper rights in place:

https://github.com/NuxiNL/cloudlibc/blob/master/src/libc/unistd/pipe_test.c#L44

Reviewers: jilles, mjg

Reviewed By: mjg

Subscribers: imp

Differential Revision: https://reviews.freebsd.org/D3236
2015-07-29 17:18:27 +00:00
..
check_error.d Switch linuxulator to use the native 1:1 threads. 2015-05-24 14:53:16 +00:00
check_internal_locks.d Switch linuxulator to use the native 1:1 threads. 2015-05-24 14:53:16 +00:00
linux.c Rework signal code to allow using it by other modules, like linprocfs: 2015-05-24 17:47:20 +00:00
linux.h Rework signal code to allow using it by other modules, like linprocfs: 2015-05-24 17:47:20 +00:00
linux_common.c Move FEATURE macros for v4l and v4l2 to the common module. 2015-05-24 16:00:01 +00:00
linux_dtrace.h dtrace sdt: remove the ugly sname parameter of SDT_PROBE_DEFINE 2013-11-26 08:46:27 +00:00
linux_emul.c Finish r283544. In exec case properly detach threads from user space 2015-06-06 06:12:14 +00:00
linux_emul.h Print out unsupported futex operation message only once for the process. 2015-05-24 17:25:57 +00:00
linux_event.c Add EPOLLRDHUP support. 2015-06-20 05:40:35 +00:00
linux_event.h Add EPOLLRDHUP support. 2015-06-20 05:40:35 +00:00
linux_file.c Make pipes in CloudABI work. 2015-07-29 17:18:27 +00:00
linux_file.h Add several fcntl flags. 2015-05-24 16:32:52 +00:00
linux_fork.c The si_status field of the siginfo_t, provided by the waitid(2) and 2015-07-18 09:02:50 +00:00
linux_futex.c Do not use struct l_timespec without conversion. While here move 2015-05-24 17:29:18 +00:00
linux_futex.h Switch linuxulator to use the native 1:1 threads. 2015-05-24 14:53:16 +00:00
linux_getcwd.c Where possible we will use M_LINUX malloc(9) type. 2015-05-24 16:14:41 +00:00
linux_ioctl.c The latest cp tool is trying to use the btrfs clone operation that is 2015-05-24 18:12:04 +00:00
linux_ioctl.h The latest cp tool is trying to use the btrfs clone operation that is 2015-05-24 18:12:04 +00:00
linux_ipc.c x86_64 Linux do not use multiplexing on ipc system calls. 2015-05-24 15:44:41 +00:00
linux_ipc.h x86_64 Linux do not use multiplexing on ipc system calls. 2015-05-24 15:44:41 +00:00
linux_mib.c Introduce a new module linux_common.ko which is intended for the 2015-05-24 15:51:18 +00:00
linux_mib.h Update Linux compat revision to 32. 2015-05-24 16:55:32 +00:00
linux_misc.c The si_status field of the siginfo_t, provided by the waitid(2) and 2015-07-18 09:02:50 +00:00
linux_misc.h Add utimensat() system call. 2015-05-24 17:57:07 +00:00
linux_signal.c Rework signal code to allow using it by other modules, like linprocfs: 2015-05-24 17:47:20 +00:00
linux_signal.h Rework signal code to allow using it by other modules, like linprocfs: 2015-05-24 17:47:20 +00:00
linux_socket.c Properly initialize flags for accept4(2) not to return spurious EINVAL. 2015-06-08 20:03:15 +00:00
linux_socket.h Convert SCM_TIMESTAMP in recvmsg(). 2015-05-24 18:13:21 +00:00
linux_stats.c fd: make 'rights' a manadatory argument to fget* functions 2015-07-05 19:05:16 +00:00
linux_sysctl.c Where possible we will use M_LINUX malloc(9) type. 2015-05-24 16:14:41 +00:00
linux_sysproto.h Handle unimplemented syscall by instantly returning ENOSYS instead of sending 2005-03-07 00:18:06 +00:00
linux_time.c Linux nanosleep() and clock_nanosleep() system calls always 2015-05-24 18:14:38 +00:00
linux_timer.c Convert Linux signal number to the FreeBSD. 2015-05-24 17:49:09 +00:00
linux_timer.h Delete the duplicate of linux_to_native_clockid() function. 2015-05-24 17:30:31 +00:00
linux_uid16.c Where possible we will use M_LINUX malloc(9) type. 2015-05-24 16:14:41 +00:00
linux_util.c Implement epoll family system calls. This is a tiny wrapper 2015-05-24 16:41:39 +00:00
linux_util.h Fix linux_common module build with KTR option. 2015-05-24 16:52:45 +00:00
linux_vdso.c Add 64 bit support to the vdso. 2015-05-24 15:45:36 +00:00
linux_vdso.h Add 64 bit support to the vdso. 2015-05-24 15:45:36 +00:00
linux_videodev2_compat.h Commit the missing linux_videdev2_compat.h (lost somewhere between 2011-05-04 13:09:20 +00:00
linux_videodev_compat.h This is v4l support for the linuxulator. This allows to access FreeBSD 2009-12-04 21:06:54 +00:00
stats_timing.d Switch linuxulator to use the native 1:1 threads. 2015-05-24 14:53:16 +00:00
trace_futexes.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00