Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/arm/include/ifunc.h
101947 views
1
/*-
2
* SPDX-License-Identifier: BSD-2-Clause
3
*
4
* Copyright (c) 2025, Michal Meloun <[email protected]>
5
*
6
*/
7
8
#ifndef __ARM_IFUNC_H
9
#define __ARM_IFUNC_H
10
11
#define DEFINE_IFUNC(qual, ret_type, name, args) \
12
static ret_type (*name##_resolver(void))args __used; \
13
qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \
14
static ret_type (*name##_resolver(void))args
15
16
#ifdef __not_yet__
17
#define DEFINE_UIFUNC(qual, ret_type, name, args) \
18
static ret_type (*name##_resolver(uint32_t, uint32_t, uint32_t, \
19
uint32_t))args __used; \
20
qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \
21
static ret_type (*name##_resolver( \
22
uint32_t elf_hwcap __unused, \
23
uint32_t elf_hwcap2 __unused, \
24
uint32_t arg3 __unused, \
25
uint32_t arg4 __unused))args
26
#endif
27
28
#endif
29
30