Linux Kernel
3.7.1
|
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/elf.h>
#include <linux/moduleloader.h>
#include <linux/string.h>
#include <linux/vmalloc.h>
#include <asm/patch.h>
#include <asm/unaligned.h>
Go to the source code of this file.
Data Structures | |
struct | plt_entry |
Macros | |
#define | ARCH_MODULE_DEBUG 0 |
#define | DEBUGP(fmt, a...) |
#define | USE_BRL 1 |
#define | MAX_LTOFF ((uint64_t) (1 << 22)) /* max. allowable linkage-table offset */ |
#define | FORMAT_SHIFT 0 |
#define | FORMAT_BITS 3 |
#define | FORMAT_MASK ((1 << FORMAT_BITS) - 1) |
#define | VALUE_SHIFT 3 |
#define | VALUE_BITS 5 |
#define | VALUE_MASK ((1 << VALUE_BITS) - 1) |
#define | N(reloc) [R_IA64_##reloc] = #reloc |
Enumerations | |
enum | reloc_target_format { RF_NONE = 0, RF_INSN14 = 1, RF_INSN22 = 2, RF_INSN64 = 3, RF_32MSB = 4, RF_32LSB = 5, RF_64MSB = 6, RF_64LSB = 7, RF_INSN60, RF_INSN21B, RF_INSN21M, RF_INSN21F } |
enum | reloc_value_formula { RV_DIRECT = 4, RV_GPREL = 5, RV_LTREL = 6, RV_PLTREL = 7, RV_FPTR = 8, RV_PCREL = 9, RV_LTREL_FPTR = 10, RV_SEGREL = 11, RV_SECREL = 12, RV_BDREL = 13, RV_LTV = 14, RV_PCREL2 = 15, RV_SPECIAL = 16, RV_RSVD17 = 17, RV_TPREL = 18, RV_LTREL_TPREL = 19, RV_DTPMOD = 20, RV_LTREL_DTPMOD = 21, RV_DTPREL = 22, RV_LTREL_DTPREL = 23, RV_RSVD24 = 24, RV_RSVD25 = 25, RV_RSVD26 = 26, RV_RSVD27 = 27 } |
Functions | |
unsigned long | plt_target (struct plt_entry *plt) |
void | module_free (struct module *mod, void *module_region) |
int | module_frob_arch_sections (Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, char *secstrings, struct module *mod) |
int | apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relsec, struct module *mod) |
int | module_finalize (const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, struct module *mod) |
void | module_arch_cleanup (struct module *mod) |
#define FORMAT_MASK ((1 << FORMAT_BITS) - 1) |
#define VALUE_MASK ((1 << VALUE_BITS) - 1) |
enum reloc_target_format |
enum reloc_value_formula |