History

Merge branch 'akpm' (patches from Andrew)

Merge fourth patch-bomb from Andrew Morton: - sys_membarier syscall - seq_file interface changes - a few misc fixups * emailed patches from Andrew Morton <akpm@linux-foundation.org>: revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each" mm/early_ioremap: add explicit #include of asm/early_ioremap.h fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void selftests: enhance membarrier syscall test selftests: add membarrier syscall test sys_membarrier(): system-wide memory barrier (generic, x86) MODSIGN: fix a compilation warning in extract-cert

Linus Torvalds committed 11 years ago

Commit 01b0c012 parents 3ebb054 e527b2222 files · +336 −54Browse files

Showing the changes to include/uapi (3 of 22 files). Show all

Unified · Split

3 files
  1. include/uapi/asm-generic/unistd.h +3 −1
  2. include/uapi/linux/Kbuild +1 −0
  3. include/uapi/linux/membarrier.h +53 −0
include/uapi/asm-generic/unistd.h+3−1
@@ -709,9 +709,11 @@ __SYSCALL(__NR_memfd_create, sys_memfd_create) · 708 unmodified lines
709709 __SYSCALL(__NR_bpf, sys_bpf)
710710 #define __NR_execveat 281
711711 __SC_COMP(__NR_execveat, sys_execveat, compat_sys_execveat)
712+#define __NR_membarrier 282
713+__SYSCALL(__NR_membarrier, sys_membarrier)
712714
713715 #undef __NR_syscalls
714−#define __NR_syscalls 282
716+#define __NR_syscalls 283
715717
716718 /*
717719 * All syscalls below here should go away really,
include/uapi/linux/Kbuild+1−0
@@ -252,6 +252,7 @@ header-y += mdio.h · 251 unmodified lines
252252 header-y += media.h
253253 header-y += media-bus-format.h
254254 header-y += mei.h
255+header-y += membarrier.h
255256 header-y += memfd.h
256257 header-y += mempolicy.h
257258 header-y += meye.h
include/uapi/linux/membarrier.h+53−0
@@ -0,0 +1,53 @@
1+#ifndef _UAPI_LINUX_MEMBARRIER_H
2+#define _UAPI_LINUX_MEMBARRIER_H
3+
4+/*
5+ * linux/membarrier.h
6+ *
7+ * membarrier system call API
8+ *
9+ * Copyright (c) 2010, 2015 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10+ *
11+ * Permission is hereby granted, free of charge, to any person obtaining a copy
12+ * of this software and associated documentation files (the "Software"), to deal
13+ * in the Software without restriction, including without limitation the rights
14+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15+ * copies of the Software, and to permit persons to whom the Software is
16+ * furnished to do so, subject to the following conditions:
17+ *
18+ * The above copyright notice and this permission notice shall be included in
19+ * all copies or substantial portions of the Software.
20+ *
21+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27+ * SOFTWARE.
28+ */
29+
30+/**
31+ * enum membarrier_cmd - membarrier system call command
32+ * @MEMBARRIER_CMD_QUERY: Query the set of supported commands. It returns
33+ * a bitmask of valid commands.
34+ * @MEMBARRIER_CMD_SHARED: Execute a memory barrier on all running threads.
35+ * Upon return from system call, the caller thread
36+ * is ensured that all running threads have passed
37+ * through a state where all memory accesses to
38+ * user-space addresses match program order between
39+ * entry to and return from the system call
40+ * (non-running threads are de facto in such a
41+ * state). This covers threads from all processes
42+ * running on the system. This command returns 0.
43+ *
44+ * Command to be passed to the membarrier system call. The commands need to
45+ * be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to
46+ * the value 0.
47+ */
48+enum membarrier_cmd {
49+ MEMBARRIER_CMD_QUERY = 0,
50+ MEMBARRIER_CMD_SHARED = (1 << 0),
51+};
52+
53+#endif /* _UAPI_LINUX_MEMBARRIER_H */