summaryrefslogtreecommitdiffstats
path: root/sys/boot/ofw
diff options
context:
space:
mode:
authormsmith <msmith@FreeBSD.org>1998-08-31 21:10:43 +0000
committermsmith <msmith@FreeBSD.org>1998-08-31 21:10:43 +0000
commit815f3686d0275b1e63d326042e37d5244e051121 (patch)
treea32c9c92f2b120f904fc9aa7d0755d8b8a74f6b0 /sys/boot/ofw
parentc3fa37d604772f443b31aa7d26c331bd64c2675d (diff)
downloadFreeBSD-src-815f3686d0275b1e63d326042e37d5244e051121.zip
FreeBSD-src-815f3686d0275b1e63d326042e37d5244e051121.tar.gz
Bootloader update.
- Implement a new copyin/readin interface for loading modules. This allows the module loaders to become MI, reducing code duplication. - Simplify the search for an image activator for the loaded kernel. - Use the common module management code for all module metadata. - Add an 'unload' command that throws everything away. - Move the a.out module loader to MI code, add support for a.out kld modules. Submitted by: Alpha changes fixed by Doug Rabson <dfr@freebsd.org>
Diffstat (limited to 'sys/boot/ofw')
-rw-r--r--sys/boot/ofw/libofw/ofw_copy.c50
-rw-r--r--sys/boot/ofw/libofw/ofw_module.c18
2 files changed, 51 insertions, 17 deletions
diff --git a/sys/boot/ofw/libofw/ofw_copy.c b/sys/boot/ofw/libofw/ofw_copy.c
new file mode 100644
index 0000000..9e164de
--- /dev/null
+++ b/sys/boot/ofw/libofw/ofw_copy.c
@@ -0,0 +1,50 @@
+/*-
+ * Copyright (c) 1998 Michael Smith <msmith@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id$
+ */
+/*
+ * MD primitives supporting placement of module data
+ *
+ * XXX should check load address/size against memory top.
+ */
+#include <stand.h>
+
+#include "libalpha.h"
+
+int
+alpha_copyin(void *src, vm_offset_t dest, size_t len)
+{
+ bcopy(src, dest, len);
+ return(len);
+}
+
+int
+alpha_readin(int fd, vm_offset_t dest, size_t len)
+{
+ return(read(fd, dest, len));
+}
+
+
diff --git a/sys/boot/ofw/libofw/ofw_module.c b/sys/boot/ofw/libofw/ofw_module.c
index a08fc85..afa065f 100644
--- a/sys/boot/ofw/libofw/ofw_module.c
+++ b/sys/boot/ofw/libofw/ofw_module.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id$
+ * $Id: alpha_module.c,v 1.1.1.1 1998/08/21 03:17:42 msmith Exp $
*/
/*
@@ -38,22 +38,6 @@
#include "libalpha.h"
/*
- * Look for a method and having found it, boot the kernel module.
- */
-int
-alpha_boot(void)
-{
- int i;
-
- for (i = 0; module_formats[i] != NULL; i++) {
- if (((loaded_modules->m_flags & MF_FORMATMASK) == module_formats[i]->l_format) &&
- (module_formats[i]->l_exec != NULL)) {
- return((module_formats[i]->l_exec)(loaded_modules));
- }
- }
-}
-
-/*
* Use voodoo to load modules required by current hardware.
*/
int
OpenPOWER on IntegriCloud