Searched refs:rseq_cs (Results 1 - 17 of 17) sorted by relevance

/linux-master/kernel/
H A Drseq.c40 * init(rseq_cs)
42 * [1] TLS->rseq::rseq_cs = rseq_cs
58 * 1. Userspace stores the address of the struct rseq_cs assembly
59 * block descriptor into the rseq_cs field of the registered
70 * clears TLS->__rseq_abi::rseq_cs, and sets the user-space return
152 static int rseq_get_rseq_cs(struct task_struct *t, struct rseq_cs *rseq_cs) argument
154 struct rseq_cs __user *urseq_cs;
161 if (get_user(ptr, &t->rseq->rseq_cs))
269 in_rseq_cs(unsigned long ip, struct rseq_cs *rseq_cs) argument
278 struct rseq_cs rseq_cs; local
352 struct rseq_cs rseq_cs; local
[all...]
/linux-master/tools/testing/selftests/rseq/
H A Drseq-riscv-bits.h19 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs)
34 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
73 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs)
91 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
127 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs)
141 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
176 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs)
[all...]
H A Drseq-mips-bits.h25 /* Start rseq by storing table entry pointer into rseq_cs. */
26 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs)
47 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
86 /* Start rseq by storing table entry pointer into rseq_cs. */
87 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs)
111 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
149 /* Start rseq by storing table entry pointer into rseq_cs. */
150 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs)
[all...]
H A Drseq-arm64-bits.h26 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs)
41 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
84 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs)
102 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
143 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs)
157 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
195 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs)
[all...]
H A Drseq-arm-bits.h25 /* Start rseq by storing table entry pointer into rseq_cs. */
26 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs)
49 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
93 /* Start rseq by storing table entry pointer into rseq_cs. */
94 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs)
120 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
163 /* Start rseq by storing table entry pointer into rseq_cs. */
164 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs)
[all...]
H A Drseq-ppc-bits.h26 /* Start rseq by storing table entry pointer into rseq_cs. */
27 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
47 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
91 /* Start rseq by storing table entry pointer into rseq_cs. */
92 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
118 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
161 /* Start rseq by storing table entry pointer into rseq_cs. */
162 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
[all...]
H A Drseq-s390-bits.h20 /* Start rseq by storing table entry pointer into rseq_cs. */
21 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
40 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
88 /* Start rseq by storing table entry pointer into rseq_cs. */
89 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
113 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr),
156 /* Start rseq by storing table entry pointer into rseq_cs. */
157 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
[all...]
H A Drseq-ppc.h66 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
73 "std %%r17, %[" __rseq_str(rseq_cs) "]\n\t" \
126 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
130 RSEQ_STORE_INT(rseq_cs) "%%r17, %[" __rseq_str(rseq_cs) "]\n\t" \
H A Drseq-abi.h92 * Restartable sequences rseq_cs field.
95 * thread, or holds a pointer to the currently active struct rseq_cs.
98 * active rseq_cs at the beginning of assembly instruction sequence
102 * targeted by the rseq_cs. Also needs to be set to NULL by user-space
103 * before reclaiming memory that contains the targeted struct rseq_cs.
128 } rseq_cs; member in struct:rseq_abi
H A Drseq-x86.h29 /* Offset of cpu_id, rseq_cs, and mm_cid fields in struct rseq. */
88 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
91 "movq %%rax, " __rseq_str(rseq_cs) "\n\t" \
175 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
177 "movl $" __rseq_str(cs_label) ", " __rseq_str(rseq_cs) "\n\t" \
H A Drseq-arm.h111 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
114 "str r0, %[" __rseq_str(rseq_cs) "]\n\t" \
H A Drseq-s390.h107 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
110 LONG_S " %%r0, %[" __rseq_str(rseq_cs) "]\n\t" \
H A Drseq-arm64.h125 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
130 " str " RSEQ_ASM_TMP_REG ", %[" __rseq_str(rseq_cs) "]\n" \
H A Drseq-mips.h115 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
118 LONG_S " $4, %[" __rseq_str(rseq_cs) "]\n\t" \
H A Drseq-riscv.h83 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \
86 REG_S RSEQ_ASM_TMP_REG_1 ", %[" __rseq_str(rseq_cs) "]\n" \
H A Drseq.h220 RSEQ_WRITE_ONCE(rseq_get_abi()->rseq_cs.arch.ptr, 0);
227 * rseq_cs) or the code referred to by the struct rseq_cs start_ip and
231 * holding the struct rseq_cs or reclaim of the code pointed to by struct
232 * rseq_cs start_ip and post_commit_offset fields.
/linux-master/include/uapi/linux/
H A Drseq.h41 * struct rseq_cs is aligned on 4 * 8 bytes to ensure it is always
45 struct rseq_cs { struct
92 * Restartable sequences rseq_cs field.
95 * thread, or holds a pointer to the currently active struct rseq_cs.
98 * active rseq_cs at the beginning of assembly instruction sequence
102 * targeted by the rseq_cs. Also needs to be set to NULL by user-space
103 * before reclaiming memory that contains the targeted struct rseq_cs.
110 * rseq_cs field, leaving the high order bits initialized to 0.
112 __u64 rseq_cs; member in struct:rseq

Completed in 116 milliseconds