mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: torvalds@osdl.org, akpm@osdl.org, aviro@redhat.com
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 7/17] FRV: Add module support stubs
Date: Fri, 6 Jan 2006 16:29:36 GMT	[thread overview]
Message-ID: <200601061629.k06GTaoV011373@warthog.cambridge.redhat.com> (raw)
In-Reply-To: <dhowells1136564974@warthog.cambridge.redhat.com>

The attached patch adds stubs for FRV module support. 

Signed-Off-By: David Howells <dhowells@redhat.com>
---
warthog>diffstat -p1 frv-modules-2615.diff
 arch/frv/kernel/Makefile |    1 
 arch/frv/kernel/module.c |   80 +++++++++++++++++++++++++++++++++++++++++++++++
 include/asm-frv/module.h |   16 +++++++--
 3 files changed, 93 insertions(+), 4 deletions(-)

diff -uNrp /warthog/kernels/linux-2.6.15/arch/frv/kernel/Makefile linux-2.6.15-frv/arch/frv/kernel/Makefile
--- /warthog/kernels/linux-2.6.15/arch/frv/kernel/Makefile	2005-03-02 12:07:44.000000000 +0000
+++ linux-2.6.15-frv/arch/frv/kernel/Makefile	2006-01-06 14:43:43.000000000 +0000
@@ -20,3 +20,4 @@ obj-$(CONFIG_FUJITSU_MB93493)	+= irq-mb9
 obj-$(CONFIG_PM)		+= pm.o cmode.o
 obj-$(CONFIG_MB93093_PDK)	+= pm-mb93093.o
 obj-$(CONFIG_SYSCTL)		+= sysctl.o
+obj-$(CONFIG_MODULES)		+= module.o
diff -uNrp /warthog/kernels/linux-2.6.15/arch/frv/kernel/module.c linux-2.6.15-frv/arch/frv/kernel/module.c
--- /warthog/kernels/linux-2.6.15/arch/frv/kernel/module.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.15-frv/arch/frv/kernel/module.c	2006-01-06 14:43:43.000000000 +0000
@@ -0,0 +1,80 @@
+/* module.c: FRV specific module loading bits
+ *
+ * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
+ * Written by David Howells (dhowells@redhat.com)
+ * - Derived from arch/i386/kernel/module.c, Copyright (C) 2001 Rusty Russell.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+#include <linux/moduleloader.h>
+#include <linux/elf.h>
+#include <linux/vmalloc.h>
+#include <linux/fs.h>
+#include <linux/string.h>
+#include <linux/kernel.h>
+
+#if 0
+#define DEBUGP printk
+#else
+#define DEBUGP(fmt...)
+#endif
+
+void *module_alloc(unsigned long size)
+{
+	if (size == 0)
+		return NULL;
+
+	return vmalloc_exec(size);
+}
+
+
+/* Free memory returned from module_alloc */
+void module_free(struct module *mod, void *module_region)
+{
+	vfree(module_region);
+	/* FIXME: If module_region == mod->init_region, trim exception
+           table entries. */
+}
+
+/* We don't need anything special. */
+int module_frob_arch_sections(Elf_Ehdr *hdr,
+			      Elf_Shdr *sechdrs,
+			      char *secstrings,
+			      struct module *mod)
+{
+	return 0;
+}
+
+int apply_relocate(Elf32_Shdr *sechdrs,
+		   const char *strtab,
+		   unsigned int symindex,
+		   unsigned int relsec,
+		   struct module *me)
+{
+	printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n", me->name);
+	return -ENOEXEC;
+}
+
+int apply_relocate_add(Elf32_Shdr *sechdrs,
+		       const char *strtab,
+		       unsigned int symindex,
+		       unsigned int relsec,
+		       struct module *me)
+{
+	printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n", me->name);
+	return -ENOEXEC;
+}
+
+int module_finalize(const Elf_Ehdr *hdr,
+		    const Elf_Shdr *sechdrs,
+		    struct module *me)
+{
+	return 0;
+}
+
+void module_arch_cleanup(struct module *mod)
+{
+}
diff -uNrp /warthog/kernels/linux-2.6.15/include/asm-frv/module.h linux-2.6.15-frv/include/asm-frv/module.h
--- /warthog/kernels/linux-2.6.15/include/asm-frv/module.h	2005-03-02 12:08:45.000000000 +0000
+++ linux-2.6.15-frv/include/asm-frv/module.h	2006-01-06 14:43:43.000000000 +0000
@@ -11,10 +11,18 @@
 #ifndef _ASM_MODULE_H
 #define _ASM_MODULE_H
 
-#define module_map(x)		vmalloc(x)
-#define module_unmap(x)		vfree(x)
-#define module_arch_init(x)	(0)
-#define arch_init_modules(x)	do { } while (0)
+struct mod_arch_specific
+{
+};
+
+#define Elf_Shdr	Elf32_Shdr
+#define Elf_Sym		Elf32_Sym
+#define Elf_Ehdr	Elf32_Ehdr
+
+/*
+ * Include the architecture version.
+ */
+#define MODULE_ARCH_VERMAGIC __stringify(PROCESSOR_MODEL_NAME) " "
 
 #endif /* _ASM_MODULE_H */
 

  parent reply	other threads:[~2006-01-06 16:30 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-06 16:29 [PATCH 0/17] FRV: Permit compilation with allmodconfig David Howells
2006-01-06 16:29 ` [PATCH 3/17] FRV: Drop unsupported debugging features David Howells
2006-01-06 16:29 ` [PATCH 1/17] FRV: Suppress configuration of certain features for FRV David Howells
2006-01-06 16:29 ` [PATCH 2/17] FRV: Drop 8/16-bit xchg and cmpxchg David Howells
2006-01-06 16:29 ` [PATCH 4/17] FRV: Implement and export various things required by modules David Howells
2006-01-06 16:29 ` David Howells [this message]
2006-01-06 16:29 ` [PATCH 8/17] FRV: Add pci_iomap David Howells
2006-01-06 16:29 ` [PATCH 10/17] FRV: Force serial driver inclusion David Howells
2006-01-06 16:29 ` [PATCH 5/17] FRV: Support module exception tables David Howells
2006-01-06 16:29 ` [PATCH 6/17] FRV: Supply various missing I/O access primitives David Howells
2006-01-06 16:29 ` [PATCH 9/17] FRV: Fix PCMCIA configuration David Howells
2006-01-06 16:29 ` [PATCH 12/17] FRV: Miscellaneous changes David Howells
2006-01-06 16:29 ` [PATCH 13/17] FRV: Fix uninitialised variable in atm nicstar driver David Howells
2006-01-06 16:29 ` [PATCH 15/17] FRV: Export __rcuref_hash David Howells
2006-01-06 16:59   ` Eric Dumazet
2006-01-06 16:29 ` [PATCH 14/17] FRV: Stop the IEEE1394 nodemanager from accessing sem count directly David Howells
2006-01-06 16:29 ` [PATCH 11/17] FRV: Make get_user macro cast pointers David Howells
2006-01-06 16:29 ` [PATCH 16/17] FRV: Fix uninitialised variable in serverworks driver David Howells
2006-01-06 16:29 ` [PATCH 17/17] FRV: Stop XFS from accessing sem count directly David Howells
2006-01-06 17:18 ` [PATCH 0/17] FRV: Permit compilation with allmodconfig Jan Dittmer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200601061629.k06GTaoV011373@warthog.cambridge.redhat.com \
    --to=dhowells@redhat.com \
    --cc=akpm@osdl.org \
    --cc=aviro@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®