diff options
Diffstat (limited to 'include/uapi/linux/membarrier.h')
-rw-r--r-- | include/uapi/linux/membarrier.h | 23 |
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 | */ |
48 | enum membarrier_cmd { | 64 | enum 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 */ |