aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/membarrier.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/membarrier.h')
-rw-r--r--include/uapi/linux/membarrier.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/include/uapi/linux/membarrier.h b/include/uapi/linux/membarrier.h
index e0b108bd2624..6d47b3249d8a 100644
--- a/include/uapi/linux/membarrier.h
+++ b/include/uapi/linux/membarrier.h
@@ -40,14 +40,33 @@
40 * (non-running threads are de facto in such a 40 * (non-running threads are de facto in such a
41 * state). This covers threads from all processes 41 * state). This covers threads from all processes
42 * running on the system. This command returns 0. 42 * running on the system. This command returns 0.
43 * @MEMBARRIER_CMD_PRIVATE_EXPEDITED:
44 * Execute a memory barrier on each running
45 * thread belonging to the same process as the current
46 * thread. Upon return from system call, the
47 * caller thread is ensured that all its running
48 * threads siblings have passed through a state
49 * where all memory accesses to user-space
50 * addresses match program order between entry
51 * to and return from the system call
52 * (non-running threads are de facto in such a
53 * state). This only covers threads from the
54 * same processes as the caller thread. This
55 * command returns 0. The "expedited" commands
56 * complete faster than the non-expedited ones,
57 * they never block, but have the downside of
58 * causing extra overhead.
43 * 59 *
44 * Command to be passed to the membarrier system call. The commands need to 60 * 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 61 * be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to
46 * the value 0. 62 * the value 0.
47 */ 63 */
48enum membarrier_cmd { 64enum membarrier_cmd {
49 MEMBARRIER_CMD_QUERY = 0, 65 MEMBARRIER_CMD_QUERY = 0,
50 MEMBARRIER_CMD_SHARED = (1 << 0), 66 MEMBARRIER_CMD_SHARED = (1 << 0),
67 /* reserved for MEMBARRIER_CMD_SHARED_EXPEDITED (1 << 1) */
68 /* reserved for MEMBARRIER_CMD_PRIVATE (1 << 2) */
69 MEMBARRIER_CMD_PRIVATE_EXPEDITED = (1 << 3),
51}; 70};
52 71
53#endif /* _UAPI_LINUX_MEMBARRIER_H */ 72#endif /* _UAPI_LINUX_MEMBARRIER_H */