50 lines · 1.2 KB · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0-or-later *//* Module internals * * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved. * Written by David Howells (dhowells@redhat.com) */ #include <linux/elf.h>#include <asm/module.h> struct load_info {	const char *name;	/* pointer to module in temporary copy, freed at end of load_module() */	struct module *mod;	Elf_Ehdr *hdr;	unsigned long len;	Elf_Shdr *sechdrs;	char *secstrings, *strtab;	unsigned long symoffs, stroffs, init_typeoffs, core_typeoffs;	struct _ddebug *debug;	unsigned int num_debug;	bool sig_ok;#ifdef CONFIG_KALLSYMS	unsigned long mod_kallsyms_init_off;#endif#ifdef CONFIG_MODULE_DECOMPRESS	struct page **pages;	unsigned int max_pages;	unsigned int used_pages;#endif	struct {		unsigned int sym, str, mod, vers, info, pcpu;	} index;}; extern int mod_verify_sig(const void *mod, struct load_info *info); #ifdef CONFIG_MODULE_DECOMPRESSint module_decompress(struct load_info *info, const void *buf, size_t size);void module_decompress_cleanup(struct load_info *info);#elsestatic inline int module_decompress(struct load_info *info,				    const void *buf, size_t size){	return -EOPNOTSUPP;}static inline void module_decompress_cleanup(struct load_info *info){}#endif