]> git.ipfire.org Git - people/ms/u-boot.git/blob - include/linux/linkage.h
linux/kernel.h: add typechecking to roundup macro
[people/ms/u-boot.git] / include / linux / linkage.h
1 /*
2 * U-boot - linkage.h
3 *
4 * Copyright (c) 2005-2007 Analog Devices Inc.
5 *
6 * SPDX-License-Identifier: GPL-2.0+
7 */
8
9 #ifndef _LINUX_LINKAGE_H
10 #define _LINUX_LINKAGE_H
11
12 #include <asm/linkage.h>
13
14 #ifdef __cplusplus
15 #define CPP_ASMLINKAGE extern "C"
16 #else
17 #define CPP_ASMLINKAGE
18 #endif
19
20 #define asmlinkage CPP_ASMLINKAGE
21
22 #define SYMBOL_NAME_STR(X) #X
23 #define SYMBOL_NAME(X) X
24 #ifdef __STDC__
25 #define SYMBOL_NAME_LABEL(X) X##:
26 #else
27 #define SYMBOL_NAME_LABEL(X) X:
28 #endif
29
30 #ifndef __ALIGN
31 #define __ALIGN .align 4
32 #endif
33
34 #ifndef __ALIGN_STR
35 #define __ALIGN_STR ".align 4"
36 #endif
37
38 #ifdef __ASSEMBLY__
39
40 #define ALIGN __ALIGN
41 #define ALIGN_STR __ALIGN_STR
42
43 #define LENTRY(name) \
44 ALIGN; \
45 SYMBOL_NAME_LABEL(name)
46
47 #define ENTRY(name) \
48 .globl SYMBOL_NAME(name); \
49 LENTRY(name)
50
51 #define WEAK(name) \
52 .weak SYMBOL_NAME(name); \
53 LENTRY(name)
54
55 #ifndef END
56 #define END(name) \
57 .size name, .-name
58 #endif
59
60 #ifndef ENDPROC
61 #define ENDPROC(name) \
62 .type name STT_FUNC; \
63 END(name)
64 #endif
65
66 #endif
67
68 #endif