#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 | ) |
|