hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/include/uapi/linux/membarrier.h
....@@ -114,6 +114,26 @@
114114 * If this command is not implemented by an
115115 * architecture, -EINVAL is returned.
116116 * Returns 0 on success.
117
+ * @MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ:
118
+ * Ensure the caller thread, upon return from
119
+ * system call, that all its running thread
120
+ * siblings have any currently running rseq
121
+ * critical sections restarted if @flags
122
+ * parameter is 0; if @flags parameter is
123
+ * MEMBARRIER_CMD_FLAG_CPU,
124
+ * then this operation is performed only
125
+ * on CPU indicated by @cpu_id. If this command is
126
+ * not implemented by an architecture, -EINVAL
127
+ * is returned. A process needs to register its
128
+ * intent to use the private expedited rseq
129
+ * command prior to using it, otherwise
130
+ * this command returns -EPERM.
131
+ * @MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ:
132
+ * Register the process intent to use
133
+ * MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ.
134
+ * If this command is not implemented by an
135
+ * architecture, -EINVAL is returned.
136
+ * Returns 0 on success.
117137 * @MEMBARRIER_CMD_SHARED:
118138 * Alias to MEMBARRIER_CMD_GLOBAL. Provided for
119139 * header backward compatibility.
....@@ -131,9 +151,15 @@
131151 MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = (1 << 4),
132152 MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 5),
133153 MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 6),
154
+ MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = (1 << 7),
155
+ MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = (1 << 8),
134156
135157 /* Alias for header backward compatibility. */
136158 MEMBARRIER_CMD_SHARED = MEMBARRIER_CMD_GLOBAL,
137159 };
138160
161
+enum membarrier_cmd_flag {
162
+ MEMBARRIER_CMD_FLAG_CPU = (1 << 0),
163
+};
164
+
139165 #endif /* _UAPI_LINUX_MEMBARRIER_H */