Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: modpost: Fix modpost's license checking V3 module: add /sys/module/<name>/uevent files module: change attr callbacks to take struct module_kobject modules: make arch's use default loader hooks modules: add default loader hook implementations param: fix return value handling in param_set_*
This commit is contained in:
commit
fcda12e7f6
31 changed files with 143 additions and 804 deletions
|
|
@ -48,10 +48,18 @@ struct modversion_info
|
|||
|
||||
struct module;
|
||||
|
||||
struct module_kobject {
|
||||
struct kobject kobj;
|
||||
struct module *mod;
|
||||
struct kobject *drivers_dir;
|
||||
struct module_param_attrs *mp;
|
||||
};
|
||||
|
||||
struct module_attribute {
|
||||
struct attribute attr;
|
||||
ssize_t (*show)(struct module_attribute *, struct module *, char *);
|
||||
ssize_t (*store)(struct module_attribute *, struct module *,
|
||||
struct attribute attr;
|
||||
ssize_t (*show)(struct module_attribute *, struct module_kobject *,
|
||||
char *);
|
||||
ssize_t (*store)(struct module_attribute *, struct module_kobject *,
|
||||
const char *, size_t count);
|
||||
void (*setup)(struct module *, const char *);
|
||||
int (*test)(struct module *);
|
||||
|
|
@ -65,15 +73,9 @@ struct module_version_attribute {
|
|||
} __attribute__ ((__aligned__(sizeof(void *))));
|
||||
|
||||
extern ssize_t __modver_version_show(struct module_attribute *,
|
||||
struct module *, char *);
|
||||
struct module_kobject *, char *);
|
||||
|
||||
struct module_kobject
|
||||
{
|
||||
struct kobject kobj;
|
||||
struct module *mod;
|
||||
struct kobject *drivers_dir;
|
||||
struct module_param_attrs *mp;
|
||||
};
|
||||
extern struct module_attribute module_uevent;
|
||||
|
||||
/* These are either module local, or the kernel's dummy ones. */
|
||||
extern int init_module(void);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,12 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/elf.h>
|
||||
|
||||
/* These must be implemented by the specific architecture */
|
||||
/* These may be implemented by architectures that need to hook into the
|
||||
* module loader code. Architectures that don't need to do anything special
|
||||
* can just rely on the 'weak' default hooks defined in kernel/module.c.
|
||||
* Note, however, that at least one of apply_relocate or apply_relocate_add
|
||||
* must be implemented by each architecture.
|
||||
*/
|
||||
|
||||
/* Adjust arch-specific sections. Return 0 on success. */
|
||||
int module_frob_arch_sections(Elf_Ehdr *hdr,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue