• 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