26#define _XBEGIN_STARTED (~0u)
27#define _XBEGIN_UD EXINFO_SYM(UD, 0)
28#define _XABORT_EXPLICIT (1u << 0)
29#define _XABORT_RETRY (1u << 1)
30#define _XABORT_CONFLICT (1u << 2)
31#define _XABORT_CAPACITY (1u << 3)
32#define _XABORT_DEBUG (1u << 4)
33#define _XABORT_NESTED (1u << 5)
34#define _XABORT_CODE(x) (((x) >> 24) & 0xff)
40 asm volatile (
".byte 0xc7, 0xf8, 0, 0, 0, 0"
41 :
"+a" (ret) ::
"memory");
51 asm volatile (
"1: .byte 0xc7, 0xf8, 0, 0, 0, 0; 2:"
64 asm volatile (
".byte 0x0f, 0x01, 0xd6"
75#define _xabort(code) \
77 asm volatile (".byte 0xc6, 0xf8, %c0" \
78 :: "N" (code) : "memory"); \
84 asm volatile (
".byte 0x0f, 0x01, 0xd5"
bool ex_record_fault_eax(struct cpu_regs *regs, const struct extable_entry *ex)
Record the current fault in %eax.
#define ASM_FLAG_OUT(yes, no)
#define _ASM_EXTABLE_HANDLER(fault, fixup, handler)
Create an exception table entry with custom handler.
static unsigned int _xbegin(void)
static unsigned int _xbegin_safe(void)