#include <linux/moduleloader.h>
#include <linux/elf.h>
#include <linux/vmalloc.h>
#include <linux/fs.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/bug.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <asm/pgtable.h>
#include <asm/unwind.h>
Go to the source code of this file.
|
void * | module_alloc (unsigned long size) |
|
void | module_free (struct module *mod, void *module_region) |
|
unsigned int | arch_mod_section_prepend (struct module *mod, unsigned int section) |
|
int | module_frob_arch_sections (CONST Elf_Ehdr *hdr, CONST Elf_Shdr *sechdrs, CONST char *secstrings, struct module *me) |
|
int | apply_relocate_add (Elf_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relsec, struct module *me) |
|
int | module_finalize (const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, struct module *me) |
|
void | module_arch_cleanup (struct module *mod) |
|
Value:
printk(
KERN_ERR "module %s relocation of symbol %s is out of range (0x%lx in %d bits)\n", \
me->name, strtab + sym->st_name, (
unsigned long)
val,
bits); \
}
Definition at line 81 of file module.c.
#define fsel |
( |
|
v, |
|
|
|
a |
|
) |
| ((v)+(a)) |
#define lrsel |
( |
|
v, |
|
|
|
a |
|
) |
| (((v)+rnd(a))>>11) |
#define lsel |
( |
|
v, |
|
|
|
a |
|
) |
| (((v)+(a))>>11) |
#define mask |
( |
|
x, |
|
|
|
sz |
|
) |
| ((x) & ~((1<<(sz))-1)) |
#define RELOC_REACHABLE |
( |
|
val, |
|
|
|
bits |
|
) |
| |
#define rnd |
( |
|
x | ) |
(((x)+0x1000)&~0x1fff) |
#define rrsel |
( |
|
v, |
|
|
|
a |
|
) |
| ((((v)+rnd(a))&0x7ff)+((a)-rnd(a))) |
#define rsel |
( |
|
v, |
|
|
|
a |
|
) |
| (((v)+(a))&0x7ff) |
- Enumerator:
ELF_STUB_GOT |
|
ELF_STUB_MILLI |
|
ELF_STUB_DIRECT |
|
Definition at line 441 of file module.c.
void* module_alloc |
( |
unsigned long |
size | ) |
|