e47e60941b2b4dbccf114805f485c68be9435c37
[sfrench/cifs-2.6.git] / arch / metag / include / asm / module.h
1 #ifndef _ASM_METAG_MODULE_H
2 #define _ASM_METAG_MODULE_H
3
4 #include <asm-generic/module.h>
5
6 struct metag_plt_entry {
7         /* Indirect jump instruction sequence. */
8         unsigned long tramp[2];
9 };
10
11 struct mod_arch_specific {
12         /* Indices of PLT sections within module. */
13         unsigned int core_plt_section, init_plt_section;
14 };
15
16 #if defined CONFIG_METAG_META12
17 #define MODULE_PROC_FAMILY "META 1.2 "
18 #elif defined CONFIG_METAG_META21
19 #define MODULE_PROC_FAMILY "META 2.1 "
20 #else
21 #define MODULE_PROC_FAMILY ""
22 #endif
23
24 #ifdef CONFIG_4KSTACKS
25 #define MODULE_STACKSIZE "4KSTACKS "
26 #else
27 #define MODULE_STACKSIZE ""
28 #endif
29
30 #define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_STACKSIZE
31
32 #ifdef MODULE
33 asm(".section .plt,\"ax\",@progbits; .balign 8; .previous");
34 asm(".section .init.plt,\"ax\",@progbits; .balign 8; .previous");
35 #endif
36
37 #endif /* _ASM_METAG_MODULE_H */