diff options
Diffstat (limited to 'include/module.h')
-rw-r--r-- | include/module.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/module.h b/include/module.h new file mode 100644 index 0000000000..faea2ae7e4 --- /dev/null +++ b/include/module.h @@ -0,0 +1,39 @@ +#ifndef __MODULE_H +#define __MODULE_H + +#include <elf.h> +#include <asm/module.h> + +struct module { + char *name; + + /* Startup function. */ + int (*init)(void); + + /* Here is the actual code + data, free'd on unload. */ + void *module_core; + + /* Arch-specific module values */ + struct mod_arch_specific arch; + + unsigned long core_size; +}; + +/* Apply the given relocation to the (simplified) ELF. Return -error + or 0. */ +int apply_relocate(Elf_Shdr *sechdrs, + const char *strtab, + unsigned int symindex, + unsigned int relsec, + struct module *mod); + +/* Apply the given add relocation to the (simplified) ELF. Return + -error or 0 */ +int apply_relocate_add(Elf_Shdr *sechdrs, + const char *strtab, + unsigned int symindex, + unsigned int relsec, + struct module *mod); + +#endif /* __MODULE_H */ + |