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