1 /*
2  * Copyright (C) 2016 ARM Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 
9 #ifndef __ASM_ARM_ARM64_BRK
10 #define __ASM_ARM_ARM64_BRK
11 
12 /*
13  * #imm16 values used for BRK instruction generation
14  * 0x001: xen-mode BUG() and WARN() traps
15  * 0x002: for triggering a fault on purpose (reserved)
16  */
17 #define BRK_BUG_FRAME_IMM   1
18 #define BRK_FAULT_IMM       2
19 
20 /*
21  * BRK instruction encoding
22  * The #imm16 value should be placed at bits[20:5] within BRK ins
23  */
24 #define AARCH64_BREAK_MON 0xd4200000
25 
26 /*
27  * BRK instruction for provoking a fault on purpose
28  */
29 #define AARCH64_BREAK_FAULT (AARCH64_BREAK_MON | (BRK_FAULT_IMM << 5))
30 
31 #endif /* !__ASM_ARM_ARM64_BRK */
32 /*
33  * Local variables:
34  * mode: C
35  * c-file-style: "BSD"
36  * c-basic-offset: 4
37  * indent-tabs-mode: nil
38  * End:
39  */
40