diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-09-11 22:34:09 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-09-11 22:34:09 -0400 |
| commit | 01b0c014eeb0bb857a5dc572cd108be7becddfe7 (patch) | |
| tree | d6f1a089081aadb09e66add27f7c5137d076ac80 /include/uapi/linux | |
| parent | 3ebb0540c20d6670396ccee9ff6794c095fa9311 (diff) | |
| parent | e527b22c3f63c02832ac4cb8ed0ec3a9b638bbdf (diff) | |
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
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/Kbuild | 1 | ||||
| -rw-r--r-- | include/uapi/linux/membarrier.h | 53 |
2 files changed, 54 insertions, 0 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index 70ff1d9abf0d..f7b2db44eb4b 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild | |||
| @@ -252,6 +252,7 @@ header-y += mdio.h | |||
| 252 | header-y += media.h | 252 | header-y += media.h |
| 253 | header-y += media-bus-format.h | 253 | header-y += media-bus-format.h |
| 254 | header-y += mei.h | 254 | header-y += mei.h |
| 255 | header-y += membarrier.h | ||
| 255 | header-y += memfd.h | 256 | header-y += memfd.h |
| 256 | header-y += mempolicy.h | 257 | header-y += mempolicy.h |
| 257 | header-y += meye.h | 258 | header-y += meye.h |
diff --git a/include/uapi/linux/membarrier.h b/include/uapi/linux/membarrier.h new file mode 100644 index 000000000000..e0b108bd2624 --- /dev/null +++ b/include/uapi/linux/membarrier.h | |||
| @@ -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 */ | ||
