| // SPDX-License-Identifier: GPL-2.0 | |
| #if defined(__x86_64__) | |
| /* | |
| * Include usdt.h with default nop,nop10 instructions combo. | |
| */ | |
| #include "usdt.h" | |
| __attribute__((aligned(16))) | |
| void usdt_2(void) | |
| { | |
| USDT(optimized_attach, usdt_2); | |
| } | |
| static volatile unsigned long usdt_red_zone_arg1 = 0xDEADBEEF; | |
| static volatile unsigned long usdt_red_zone_arg2 = 0xCAFEBABE; | |
| static volatile unsigned long usdt_red_zone_arg3 = 0xFEEDFACE; | |
| void __attribute__((noinline)) usdt_red_zone_trigger(void) | |
| { | |
| unsigned long a1 = usdt_red_zone_arg1; | |
| unsigned long a2 = usdt_red_zone_arg2; | |
| unsigned long a3 = usdt_red_zone_arg3; | |
| USDT(optimized_attach, usdt_red_zone, a1, a2, a3); | |
| } | |
| #endif |