linux/arch/m68k/include/asm/module.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _ASM_M68K_MODULE_H
   3#define _ASM_M68K_MODULE_H
   4
   5#include <asm-generic/module.h>
   6
   7enum m68k_fixup_type {
   8        m68k_fixup_memoffset,
   9        m68k_fixup_vnode_shift,
  10};
  11
  12struct m68k_fixup_info {
  13        enum m68k_fixup_type type;
  14        void *addr;
  15};
  16
  17struct mod_arch_specific {
  18        struct m68k_fixup_info *fixup_start, *fixup_end;
  19};
  20
  21#ifdef CONFIG_MMU
  22
  23#define MODULE_ARCH_INIT {                              \
  24        .fixup_start            = __start_fixup,        \
  25        .fixup_end              = __stop_fixup,         \
  26}
  27
  28
  29#define m68k_fixup(type, addr)                  \
  30        "       .section \".m68k_fixup\",\"aw\"\n"      \
  31        "       .long " #type "," #addr "\n"    \
  32        "       .previous\n"
  33
  34#endif /* CONFIG_MMU */
  35
  36extern struct m68k_fixup_info __start_fixup[], __stop_fixup[];
  37
  38struct module;
  39extern void module_fixup(struct module *mod, struct m68k_fixup_info *start,
  40                         struct m68k_fixup_info *end);
  41
  42#endif /* _ASM_M68K_MODULE_H */
  43