ia64/pv_ops/bp/module: support binary patching for kernel module.
[platform/adaptation/renesas_rcar/renesas_kernel.git] / arch / ia64 / include / asm / module.h
1 #ifndef _ASM_IA64_MODULE_H
2 #define _ASM_IA64_MODULE_H
3
4 /*
5  * IA-64-specific support for kernel module loader.
6  *
7  * Copyright (C) 2003 Hewlett-Packard Co
8  *      David Mosberger-Tang <davidm@hpl.hp.com>
9  */
10
11 struct elf64_shdr;                      /* forward declration */
12
13 struct mod_arch_specific {
14         struct elf64_shdr *core_plt;    /* core PLT section */
15         struct elf64_shdr *init_plt;    /* init PLT section */
16         struct elf64_shdr *got;         /* global offset table */
17         struct elf64_shdr *opd;         /* official procedure descriptors */
18         struct elf64_shdr *unwind;      /* unwind-table section */
19 #ifdef CONFIG_PARAVIRT
20         struct elf64_shdr *paravirt_bundles;
21                                         /* paravirt_alt_bundle_patch table */
22         struct elf64_shdr *paravirt_insts;
23                                         /* paravirt_alt_inst_patch table */
24 #endif
25         unsigned long gp;               /* global-pointer for module */
26
27         void *core_unw_table;           /* core unwind-table cookie returned by unwinder */
28         void *init_unw_table;           /* init unwind-table cookie returned by unwinder */
29         unsigned int next_got_entry;    /* index of next available got entry */
30 };
31
32 #define Elf_Shdr        Elf64_Shdr
33 #define Elf_Sym         Elf64_Sym
34 #define Elf_Ehdr        Elf64_Ehdr
35
36 #define MODULE_PROC_FAMILY      "ia64"
37 #define MODULE_ARCH_VERMAGIC    MODULE_PROC_FAMILY \
38         "gcc-" __stringify(__GNUC__) "." __stringify(__GNUC_MINOR__)
39
40 #define ARCH_SHF_SMALL  SHF_IA_64_SHORT
41
42 #endif /* _ASM_IA64_MODULE_H */