]>
Commit | Line | Data |
---|---|---|
115284d8 JP |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _STATIC_CALL_TYPES_H | |
3 | #define _STATIC_CALL_TYPES_H | |
4 | ||
9183c3f9 | 5 | #include <linux/types.h> |
115284d8 JP |
6 | #include <linux/stringify.h> |
7 | ||
8 | #define STATIC_CALL_KEY_PREFIX __SCK__ | |
9183c3f9 JP |
9 | #define STATIC_CALL_KEY_PREFIX_STR __stringify(STATIC_CALL_KEY_PREFIX) |
10 | #define STATIC_CALL_KEY_PREFIX_LEN (sizeof(STATIC_CALL_KEY_PREFIX_STR) - 1) | |
115284d8 JP |
11 | #define STATIC_CALL_KEY(name) __PASTE(STATIC_CALL_KEY_PREFIX, name) |
12 | ||
13 | #define STATIC_CALL_TRAMP_PREFIX __SCT__ | |
14 | #define STATIC_CALL_TRAMP_PREFIX_STR __stringify(STATIC_CALL_TRAMP_PREFIX) | |
9183c3f9 | 15 | #define STATIC_CALL_TRAMP_PREFIX_LEN (sizeof(STATIC_CALL_TRAMP_PREFIX_STR) - 1) |
115284d8 JP |
16 | #define STATIC_CALL_TRAMP(name) __PASTE(STATIC_CALL_TRAMP_PREFIX, name) |
17 | #define STATIC_CALL_TRAMP_STR(name) __stringify(STATIC_CALL_TRAMP(name)) | |
18 | ||
9183c3f9 JP |
19 | /* |
20 | * The static call site table needs to be created by external tooling (objtool | |
21 | * or a compiler plugin). | |
22 | */ | |
23 | struct static_call_site { | |
24 | s32 addr; | |
25 | s32 key; | |
26 | }; | |
27 | ||
115284d8 | 28 | #endif /* _STATIC_CALL_TYPES_H */ |