xref: /aosp_15_r20/prebuilts/build-tools/sysroots/aarch64-unknown-linux-musl/include/linux/rseq.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker /*
2*cda5da8dSAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*cda5da8dSAndroid Build Coastguard Worker  *
4*cda5da8dSAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*cda5da8dSAndroid Build Coastguard Worker  * for more information.
6*cda5da8dSAndroid Build Coastguard Worker  */
7*cda5da8dSAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_RSEQ_H
8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI_LINUX_RSEQ_H
9*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h>
10*cda5da8dSAndroid Build Coastguard Worker #include <asm/byteorder.h>
11*cda5da8dSAndroid Build Coastguard Worker enum rseq_cpu_id_state {
12*cda5da8dSAndroid Build Coastguard Worker   RSEQ_CPU_ID_UNINITIALIZED = - 1,
13*cda5da8dSAndroid Build Coastguard Worker   RSEQ_CPU_ID_REGISTRATION_FAILED = - 2,
14*cda5da8dSAndroid Build Coastguard Worker };
15*cda5da8dSAndroid Build Coastguard Worker enum rseq_flags {
16*cda5da8dSAndroid Build Coastguard Worker   RSEQ_FLAG_UNREGISTER = (1 << 0),
17*cda5da8dSAndroid Build Coastguard Worker };
18*cda5da8dSAndroid Build Coastguard Worker enum rseq_cs_flags_bit {
19*cda5da8dSAndroid Build Coastguard Worker   RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT = 0,
20*cda5da8dSAndroid Build Coastguard Worker   RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT = 1,
21*cda5da8dSAndroid Build Coastguard Worker   RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT = 2,
22*cda5da8dSAndroid Build Coastguard Worker };
23*cda5da8dSAndroid Build Coastguard Worker enum rseq_cs_flags {
24*cda5da8dSAndroid Build Coastguard Worker   RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = (1U << RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT),
25*cda5da8dSAndroid Build Coastguard Worker   RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = (1U << RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT),
26*cda5da8dSAndroid Build Coastguard Worker   RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = (1U << RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT),
27*cda5da8dSAndroid Build Coastguard Worker };
28*cda5da8dSAndroid Build Coastguard Worker struct rseq_cs {
29*cda5da8dSAndroid Build Coastguard Worker   __u32 version;
30*cda5da8dSAndroid Build Coastguard Worker   __u32 flags;
31*cda5da8dSAndroid Build Coastguard Worker   __u64 start_ip;
32*cda5da8dSAndroid Build Coastguard Worker   __u64 post_commit_offset;
33*cda5da8dSAndroid Build Coastguard Worker   __u64 abort_ip;
34*cda5da8dSAndroid Build Coastguard Worker } __attribute__((aligned(4 * sizeof(__u64))));
35*cda5da8dSAndroid Build Coastguard Worker struct rseq {
36*cda5da8dSAndroid Build Coastguard Worker   __u32 cpu_id_start;
37*cda5da8dSAndroid Build Coastguard Worker   __u32 cpu_id;
38*cda5da8dSAndroid Build Coastguard Worker   __u64 rseq_cs;
39*cda5da8dSAndroid Build Coastguard Worker   __u32 flags;
40*cda5da8dSAndroid Build Coastguard Worker   __u32 node_id;
41*cda5da8dSAndroid Build Coastguard Worker   __u32 mm_cid;
42*cda5da8dSAndroid Build Coastguard Worker   char end[];
43*cda5da8dSAndroid Build Coastguard Worker } __attribute__((aligned(4 * sizeof(__u64))));
44*cda5da8dSAndroid Build Coastguard Worker #endif
45