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