1 #ifndef MODINITTOOLS_MODULEOPS_H
2 #define MODINITTOOLS_MODULEOPS_H
7 /* All the icky stuff to do with manipulating 64 and 32-bit modules
12 char name[64 - sizeof(uint32_t)];
18 char name[64 - sizeof(uint64_t)];
26 struct module_ops *ops;
31 /* File contents and length. */
36 /* Tables extracted from module by ops->fetch_tables(). */
39 unsigned int pci_size;
41 unsigned int usb_size;
43 unsigned int ieee1394_size;
45 unsigned int ccw_size;
47 unsigned int pnp_size;
49 unsigned int pnp_card_size;
50 unsigned int pnp_card_offset;
52 unsigned int input_size;
54 unsigned int input_table_size;
55 unsigned int serio_size;
63 void *(*load_section)(struct elf_file *module,
64 const char *secname, unsigned long *secsize);
65 struct string_table *(*load_strings)(struct elf_file *module,
66 const char *secname, struct string_table *tbl);
67 struct string_table *(*load_symbols)(struct elf_file *module,
69 struct string_table *(*load_dep_syms)(struct elf_file *module,
70 struct string_table **types, uint64_t **versions);
71 void (*fetch_tables)(struct elf_file *module,
72 struct module_tables *tables);
73 char *(*get_aliases)(struct elf_file *module, unsigned long *size);
74 char *(*get_modinfo)(struct elf_file *module, unsigned long *size);
75 void (*strip_section)(struct elf_file *module, const char *secname);
76 int (*dump_modvers)(struct elf_file *module);
79 extern struct module_ops mod_ops32, mod_ops64;
81 struct elf_file *grab_elf_file(const char *pathname);
82 void release_elf_file(struct elf_file *file);
84 #endif /* MODINITTOOLS_MODULEOPS_H */