aboutsummaryrefslogtreecommitdiff
path: root/sys/boot/arc/lib
diff options
context:
space:
mode:
Diffstat (limited to 'sys/boot/arc/lib')
-rw-r--r--sys/boot/arc/lib/Makefile35
-rw-r--r--sys/boot/arc/lib/abort.c39
-rw-r--r--sys/boot/arc/lib/arcconsole.c109
-rw-r--r--sys/boot/arc/lib/arcdisk.c360
-rw-r--r--sys/boot/arc/lib/arch/alpha/copy.c71
-rw-r--r--sys/boot/arc/lib/arch/alpha/rpb.c196
-rw-r--r--sys/boot/arc/lib/arch/alpha/setjmp.S95
-rw-r--r--sys/boot/arc/lib/arch/alpha/start.S63
-rw-r--r--sys/boot/arc/lib/bootinfo.c204
-rw-r--r--sys/boot/arc/lib/delay.c39
-rw-r--r--sys/boot/arc/lib/devicename.c236
-rw-r--r--sys/boot/arc/lib/elf_freebsd.c140
-rw-r--r--sys/boot/arc/lib/module.c49
-rw-r--r--sys/boot/arc/lib/prom.c39
-rw-r--r--sys/boot/arc/lib/setjmperr.c39
-rw-r--r--sys/boot/arc/lib/time.c42
16 files changed, 0 insertions, 1756 deletions
diff --git a/sys/boot/arc/lib/Makefile b/sys/boot/arc/lib/Makefile
deleted file mode 100644
index 26336c4f81bf..000000000000
--- a/sys/boot/arc/lib/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# $FreeBSD$
-
-LIB= arc
-INTERNALLIB=
-
-CFLAGS+= -ffreestanding
-.PATH: ${.CURDIR}/arch/${MACHINE_ARCH}
-# XXX hack to pick up stand.h
-LIBSTANDDIR= ${.CURDIR}/../../../../lib/libstand
-CFLAGS+= -I${LIBSTANDDIR}
-CFLAGS+= -DDEBUG
-
-# Pick up the bootstrap header for some interface items
-CFLAGS+= -I${.CURDIR}/../../common -mno-fp-regs \
- -I${.CURDIR}/../../.. -I${.CURDIR}/../include
-
-#CFLAGS+= -DDISK_DEBUG
-#CPPFLAGS+= -DNO_DISKLABEL
-#CPPFLAGS+= -DSAVE_MEMORY
-
-SRCS= delay.c time.c abort.c setjmperr.c copy.c devicename.c module.c \
- arcconsole.c arcdisk.c elf_freebsd.c bootinfo.c
-
-.if ${MACHINE_ARCH} == "alpha"
-SRCS+= rpb.c
-.endif
-
-CLEANFILES+= machine
-
-machine:
- ln -sf ${.CURDIR}/../../../alpha/include machine
-
-.include <bsd.lib.mk>
-
-beforedepend ${OBJS}: machine
diff --git a/sys/boot/arc/lib/abort.c b/sys/boot/arc/lib/abort.c
deleted file mode 100644
index 21839ab18087..000000000000
--- a/sys/boot/arc/lib/abort.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * Copyright (c) 1998 Doug Rabson
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <errno.h>
-#include <sys/types.h>
-#include "arctypes.h"
-#include "arcfuncs.h"
-
-void
-abort()
-{
- FwReboot();
-}
diff --git a/sys/boot/arc/lib/arcconsole.c b/sys/boot/arc/lib/arcconsole.c
deleted file mode 100644
index f1e869ba702a..000000000000
--- a/sys/boot/arc/lib/arcconsole.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* $NetBSD: prom.c,v 1.3 1997/09/06 14:03:58 drochner Exp $ */
-
-/*
- * Mach Operating System
- * Copyright (c) 1992 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-
-#include "bootstrap.h"
-#include "arctypes.h"
-#include "arcfuncs.h"
-
-int console;
-
-static void arc_probe(struct console *cp);
-static int arc_init(int);
-static void arc_putchar(int);
-static int arc_getchar(void);
-static int arc_poll(void);
-
-struct console arcconsole = {
- "arc",
- "ARC firmware console",
- 0,
- arc_probe,
- arc_init,
- arc_putchar,
- arc_getchar,
- arc_poll,
-};
-
-static void
-arc_probe(struct console *cp)
-{
- cp->c_flags |= C_PRESENTIN|C_PRESENTOUT;
-}
-
-static int
-arc_init(int arg)
-{
- return 0;
-}
-
-static void
-arc_putchar(int c)
-{
- char cbuf = c;
- u_int32_t count;
-
- Write(StandardOut, &cbuf, 1, &count);
-}
-
-static int saved_char = -1;
-
-int
-arc_getchar()
-{
- char cbuf;
- u_int32_t count;
-
- arc_putchar('_');
- arc_putchar('\b');
- Read(StandardIn, &cbuf, 1, &count);
- arc_putchar(' ');
- arc_putchar('\b');
- if (count == 1)
- return cbuf;
- else
- return -1;
-}
-
-int
-arc_poll()
-{
- return GetReadStatus(StandardIn) == ESUCCESS;
-}
-
-int
-arc_open(dev, len)
- char *dev;
- int len;
-{
- return 0;
-}
diff --git a/sys/boot/arc/lib/arcdisk.c b/sys/boot/arc/lib/arcdisk.c
deleted file mode 100644
index c5fb83995e43..000000000000
--- a/sys/boot/arc/lib/arcdisk.c
+++ /dev/null
@@ -1,360 +0,0 @@
-/*-
- * Copyright (c) 1998 Michael Smith <msmith@freebsd.org>
- * Copyright (c) 1998 Doug Rabson <dfr@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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * ARC disk device handling.
- *
- * Ideas and algorithms from:
- *
- * - NetBSD libi386/biosdisk.c
- * - FreeBSD biosboot/disk.c
- */
-
-#include <stand.h>
-
-#include <machine/stdarg.h>
-
-#include "bootstrap.h"
-#include "libarc.h"
-#include "arctypes.h"
-#include "arcfuncs.h"
-
-#define ARCDISK_SECSIZE 512
-
-#define BUFSIZE (1 * ARCDISK_SECSIZE)
-#define MAXBDDEV MAXDEV
-
-#ifdef DISK_DEBUG
-# define D(x) x
-#else
-# define D(x)
-#endif
-
-static int bd_init(void);
-static int bd_strategy(void *devdata, int flag, daddr_t dblk, size_t size, char *buf, size_t *rsize);
-static int bd_realstrategy(void *devdata, int flag, daddr_t dblk, size_t size, char *buf, size_t *rsize);
-static int bd_open(struct open_file *f, ...);
-static int bd_close(struct open_file *f);
-static void bd_print(int verbose);
-
-struct open_disk {
- int od_fd;
- int od_unit; /* our unit number */
- int od_boff; /* block offset from beginning of ARC disk */
- int od_flags;
-#define BD_FLOPPY (1<<2)
- u_char od_buf[BUFSIZE]; /* transfer buffer (do we want/need this?) */
-};
-
-struct devsw arcdisk = {
- "disk",
- DEVT_DISK,
- bd_init,
- bd_strategy,
- bd_open,
- bd_close,
- noioctl,
- bd_print
-};
-
-/*
- * List of ARC devices, translation from disk unit number to
- * ARC unit number.
- */
-static struct
-{
- char bd_name[64];
- int bd_unit; /* ARC unit number */
- int bd_namelen;
- int bd_flags;
-} bdinfo [MAXBDDEV];
-static int nbdinfo = 0;
-
-/*
- * Quiz ARC for disk devices, save a little info about them.
- */
-static int
-bd_init(void)
-{
- nbdinfo++;
-
- return (0);
-}
-
-/*
- * Print information about disks
- */
-static void
-bd_print(int verbose)
-{
- int i;
- char line[80];
-
- for (i = 0; i < nbdinfo; i++) {
- sprintf(line, " disk%d: ARC drive %s", i, bdinfo[i].bd_name);
- pager_output(line);
- /* XXX more detail? */
- pager_output("\n");
- }
-}
-
-/*
- * Attempt to open the disk described by (dev) for use by (f).
- *
- * Note that the philosophy here is "give them exactly what
- * they ask for". This is necessary because being too "smart"
- * about what the user might want leads to complications.
- * (eg. given no slice or partition value, with a disk that is
- * sliced - are they after the first BSD slice, or the DOS
- * slice before it?)
- */
-static int
-bd_open(struct open_file *f, ...)
-{
- struct arc_devdesc *dev;
- struct dos_partition *dptr;
- struct open_disk *od;
- struct disklabel *lp;
- int sector, slice, i;
- int error;
- int unit;
- u_int32_t fd;
- va_list ap;
-
- va_start(ap, f);
- dev = va_arg(ap, struct arc_devdesc *);
- va_end(ap);
-
- unit = dev->d_kind.arcdisk.unit;
- if (unit >= nbdinfo) {
- D(printf("attempt to open nonexistent disk\n"));
- return(ENXIO);
- }
-
- if (Open("scsi(0)disk(0)rdisk(0)partition(0)",
- OpenReadOnly, &fd) != ESUCCESS)
- if (Open("scsi(0)disk(1)rdisk(0)partition(0)",
- OpenReadOnly, &fd) != ESUCCESS)
- if (Open("multi(0)disk(0)fdisk(0)partition(0)",
- OpenReadOnly, &fd) != ESUCCESS)
- return(ENXIO);
-
- od = (struct open_disk *) malloc(sizeof(struct open_disk));
- if (!od) {
- D(printf("arcdiskopen: no memory\n"));
- return (ENOMEM);
- }
-
- /* Look up ARC unit number, intialise open_disk structure */
- od->od_fd = fd;
- od->od_unit = dev->d_kind.arcdisk.unit;
- od->od_flags = bdinfo[od->od_unit].bd_flags;
- od->od_boff = 0;
- error = 0;
-
-#if 0
- /* Get geometry for this open (removable device may have changed) */
- if (set_geometry(&od->od_ll)) {
- D(printf("bd_open: can't get geometry\n"));
- error = ENXIO;
- goto out;
- }
-#endif
-
- /*
- * Following calculations attempt to determine the correct value
- * for d->od_boff by looking for the slice and partition specified,
- * or searching for reasonable defaults.
- */
-
-#if 0
- /*
- * Find the slice in the DOS slice table.
- */
- if (readsects(&od->od_ll, 0, 1, od->od_buf, 0)) {
- D(printf("bd_open: error reading MBR\n"));
- error = EIO;
- goto out;
- }
-
- /*
- * Check the slice table magic.
- */
- if ((od->od_buf[0x1fe] != 0xff) || (od->od_buf[0x1ff] != 0xaa)) {
- /* If a slice number was explicitly supplied, this is an error */
- if (dev->d_kind.arcdisk.slice > 0) {
- D(printf("bd_open: no slice table/MBR (no magic)\n"));
- error = ENOENT;
- goto out;
- }
- sector = 0;
- goto unsliced; /* may be a floppy */
- }
- dptr = (struct dos_partition *) & od->od_buf[DOSPARTOFF];
-
- /*
- * XXX No support here for 'extended' slices
- */
- if (dev->d_kind.arcdisk.slice <= 0) {
- /*
- * Search for the first FreeBSD slice; this also works on "unsliced"
- * disks, as they contain a "historically bogus" MBR.
- */
- for (i = 0; i < NDOSPART; i++, dptr++)
- if (dptr->dp_typ == DOSPTYP_386BSD) {
- sector = dptr->dp_start;
- break;
- }
- /* Did we find something? */
- if (sector == -1) {
- error = ENOENT;
- goto out;
- }
- } else {
- /*
- * Accept the supplied slice number unequivocally (we may be looking
- * for a DOS partition) if we can handle it.
- */
- if ((dev->d_kind.arcdisk.slice > NDOSPART) || (dev->d_kind.arcdisk.slice < 1)) {
- error = ENOENT;
- goto out;
- }
- dptr += (dev->d_kind.arcdisk.slice - 1);
- sector = dptr->dp_start;
- }
- unsliced:
-
-#else
- sector = 0;
-#endif
- /*
- * Now we have the slice, look for the partition in the disklabel if we have
- * a partition to start with.
- */
- if (dev->d_kind.arcdisk.partition < 0) {
- od->od_boff = sector; /* no partition, must be after the slice */
- } else {
- if (bd_strategy(od, F_READ, sector + LABELSECTOR, 512, od->od_buf, 0)) {
- D(printf("bd_open: error reading disklabel\n"));
- error = EIO;
- goto out;
- }
- lp = (struct disklabel *) (od->od_buf + LABELOFFSET);
- if (lp->d_magic != DISKMAGIC) {
- D(printf("bd_open: no disklabel\n"));
- error = ENOENT;
- goto out;
-
- } else if (dev->d_kind.arcdisk.partition >= lp->d_npartitions) {
-
- /*
- * The partition supplied is out of bounds; this is fatal.
- */
- D(printf("partition '%c' exceeds partitions in table (a-'%c')\n",
- 'a' + dev->d_kind.arcdisk.partition, 'a' + lp->d_npartitions));
- error = EPART;
- goto out;
-
- } else {
-
- /*
- * Complain if the partition type is wrong and it shouldn't be, but
- * regardless accept this partition.
- */
- D(if ((lp->d_partitions[dev->d_kind.arcdisk.partition].p_fstype == FS_UNUSED) &&
- !(od->od_flags & BD_FLOPPY)) /* Floppies often have bogus fstype */
- printf("bd_open: warning, partition marked as unused\n"););
-
- od->od_boff = lp->d_partitions[dev->d_kind.arcdisk.partition].p_offset;
- }
- }
- /*
- * Save our context
- */
- f->f_devdata = od;
-
- out:
- if (error)
- free(od);
- return(error);
-}
-
-static int
-bd_close(struct open_file *f)
-{
- struct open_disk *od = f->f_devdata;
-
- Close(od->od_fd);
-
- free(od);
- f->f_devdata = NULL;
- return(0);
-}
-
-static int
-bd_strategy(void *devdata, int rw, daddr_t dblk, size_t size, char *buf, size_t *rsize)
-{
- struct bcache_devdata bcd;
- struct arc_devdesc *dev = (struct arc_devdesc *)devdata;
-
- bcd.dv_strategy = bd_realstrategy;
- bcd.dv_devdata = devdata;
- return(bcache_strategy(&bcd, dev->d_kind.arcdisk.unit, rw, dblk, size,
- buf, rsize));
-}
-
-static int
-bd_realstrategy(void *devdata, int flag, daddr_t dblk, size_t size, char *buf, size_t *rsize)
-{
- struct open_disk *od = (struct open_disk *)devdata;
- fpos_t seek;
- u_int32_t count;
-
- if (size % ARCDISK_SECSIZE)
- panic("bd_strategy: I/O not block multiple");
-
- if (flag != F_READ)
- return(EROFS);
-
- if (rsize)
- *rsize = 0;
-
- seek = 512 * (dblk + od->od_boff);
- Seek(od->od_fd, &seek, SeekAbsolute);
- if (Read(od->od_fd, buf, size, &count) != ESUCCESS) {
- D(printf("read error\n"));
- return (EIO);
- }
-
- if (rsize)
- *rsize = count;
- return (0);
-}
-
diff --git a/sys/boot/arc/lib/arch/alpha/copy.c b/sys/boot/arc/lib/arch/alpha/copy.c
deleted file mode 100644
index 2847812fed05..000000000000
--- a/sys/boot/arc/lib/arch/alpha/copy.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * 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.
- *
- * $FreeBSD$
- */
-/*
- * MD primitives supporting placement of module data
- *
- * XXX should check load address/size against memory top.
- */
-#include <stand.h>
-#include <machine/alpha_cpu.h>
-
-#include "libarc.h"
-
-/*
- * Convert from a 64bit superpage address to a 32bit arc superpage address.
- */
-static void *
-convert_superpage(vm_offset_t p)
-{
- if (p < ALPHA_K0SEG_BASE || p >= ALPHA_K0SEG_END) {
- printf("stupid address %p\n", (void *)p);
- panic("broken");
- }
- return (void *) (0xffffffff80000000 + (p - ALPHA_K0SEG_BASE));
-}
-
-int
-arc_copyin(void *src, vm_offset_t dest, size_t len)
-{
- bcopy(src, convert_superpage(dest), len);
- return(len);
-}
-
-int
-arc_copyout(vm_offset_t src, void *dest, size_t len)
-{
- bcopy(convert_superpage(src), dest, len);
- return(len);
-}
-
-int
-arc_readin(int fd, vm_offset_t dest, size_t len)
-{
- return(read(fd, convert_superpage(dest), len));
-}
-
-
diff --git a/sys/boot/arc/lib/arch/alpha/rpb.c b/sys/boot/arc/lib/arch/alpha/rpb.c
deleted file mode 100644
index 492346155751..000000000000
--- a/sys/boot/arc/lib/arch/alpha/rpb.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/*-
- * Copyright (c) 1998 Doug Rabson
- * 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.
- *
- * $FreeBSD$
- */
-
-#include <stand.h>
-#include <machine/rpb.h>
-#include "arctypes.h"
-#include "arcfuncs.h"
-
-struct rpb RPB = {
- 0, /* rpb_phys */
- {"HWRPB"}, /* rpb_magic */
- HWRPB_DSRDB_MINVERS, /* rpb_version */
- sizeof(struct rpb), /* rpb_size */
- 0, /* rpb_primary_cpu_id */
- 8192, /* rpb_page_size */
- 43, /* rpb_phys_addr_size */
- 0, /* rpb_max_asn */
- {0}, /* rpb_ssn */
- ST_EB164, /* rpb_type */
- SV_ST_ALPHAPC164LX_533, /* rpb_variation */
- {"0000"}, /* rpb_revision */
- 1024*4096, /* rpb_intr_freq */
- 533*1024*1024, /* rpb_cc_freq */
- 0, /* rpb_vptb */
- 0, /* rpb_reserved_arch */
- 0, /* rpb_tbhint_off */
- 0, /* rpb_pcs_cnt */
- 0, /* rpb_pcs_size */
- 0, /* rpb_pcs_off */
- 0, /* rpb_ctb_cnt */
- 0, /* rpb_ctb_size */
- 0, /* rpb_ctb_off */
- 0, /* rpb_crb_off */
- 0, /* rpb_memdat_off */
- 0, /* rpb_condat_off */
- 0, /* rpb_fru_off */
- 0, /* rpb_save_term */
- 0, /* rpb_save_term_val */
- 0, /* rpb_rest_term */
- 0, /* rpb_rest_term_val */
- 0, /* rpb_restart */
- 0, /* rpb_restart_val */
- 0, /* rpb_reserve_os */
- 0, /* rpb_reserve_hw */
- 0, /* rpb_checksum */
- 0, /* rpb_rxrdy */
- 0, /* rpb_txrdy */
- 0, /* rpb_dsrdb_off */
- {0}, /* rpb_rpb_tbhint */
-};
-
-#define ROUNDUP(x) (((x) + sizeof(u_int64_t) - 1) \
- & ~(sizeof(u_int64_t) - 1))
-
-u_int64_t
-checksum(void *p, size_t size)
-{
- u_int64_t sum = 0;
- u_int64_t *lp = (u_int64_t *)p;
- int i;
-
- printf("checksum(%p, %d)\n", p, size);
- size = ROUNDUP(size) / sizeof(u_int64_t);
- for (i = 0; i < size; i++)
- sum += lp[i];
-}
-
-size_t
-size_mddt()
-{
- int count = 0;
- MEMORY_DESCRIPTOR *desc;
-
- for (desc = GetMemoryDescriptor(NULL); desc;
- desc = GetMemoryDescriptor(desc)) {
- count++;
- }
-
- return ROUNDUP(sizeof(struct mddt)
- + (count - 1) * sizeof(struct mddt_cluster));
-}
-
-void
-write_mddt(struct mddt *mddt, size_t size)
-{
- int count = 0, i;
- MEMORY_DESCRIPTOR *desc;
- u_int64_t *p;
-
- memset(mddt, 0, sizeof(struct mddt));
- for (desc = GetMemoryDescriptor(NULL); desc;
- desc = GetMemoryDescriptor(desc)) {
- struct mddt_cluster *mc;
- mc = &mddt->mddt_clusters[count];
- mc->mddt_pfn = desc->BasePage;
- mc->mddt_pg_cnt = desc->PageCount;
- mc->mddt_pg_test = 0;
- mc->mddt_v_bitaddr = 0;
- mc->mddt_p_bitaddr = 0;
- mc->mddt_bit_cksum = 0;
-
- /*
- * Not sure about the FirmwareTemporary bit but my 164LX has
- * about 60Mb marked this way.
- */
- if (desc->Type == MemoryFree || desc->Type == MemoryFirmwareTemporary)
- mc->mddt_usage = MDDT_SYSTEM;
- else if (desc->Type == MemorySpecialMemory)
- mc->mddt_usage = MDDT_NONVOLATILE; /* ?? */
- else
- mc->mddt_usage = MDDT_PALCODE;
- count++;
- }
- mddt->mddt_cluster_cnt = count;
- mddt->mddt_cksum = checksum(mddt, size);
-}
-
-size_t
-size_rpb()
-{
- return sizeof(struct rpb) + size_mddt();
-}
-
-void
-write_rpb(struct rpb *rpb)
-{
- EXTENDED_SYSTEM_INFORMATION sysinfo;
- SYSTEM_ID *sysid;
-
- ReturnExtendedSystemInformation(&sysinfo);
-
- memset(rpb, 0, sizeof(struct rpb));
- rpb->rpb_phys = 0; /* XXX */
- strcpy(rpb->rpb_magic, "HWRPB");
- rpb->rpb_version = HWRPB_DSRDB_MINVERS;
- rpb->rpb_size = sizeof(struct rpb);
- rpb->rpb_primary_cpu_id = 0; /* XXX */
- rpb->rpb_page_size = sysinfo.ProcessorPageSize;
- rpb->rpb_phys_addr_size = sysinfo.NumberOfPhysicalAddressBits;
- rpb->rpb_max_asn = sysinfo.MaximumAddressSpaceNumber;
- rpb->rpb_type = ST_EB164; /* XXX */
- rpb->rpb_variation = SV_ST_ALPHAPC164LX_533; /* XXX */
- rpb->rpb_intr_freq = 1024*4096; /* XXX */
- rpb->rpb_cc_freq = 533000000; /* XXX */
- rpb->rpb_memdat_off = sizeof(struct rpb);
- write_mddt((struct mddt *)((caddr_t) rpb + rpb->rpb_memdat_off),
- size_mddt());
- rpb->rpb_checksum = checksum(rpb, 280); /* only sum first 280 bytes */
-}
-
-struct rpb *
-make_rpb()
-{
- EXTENDED_SYSTEM_INFORMATION sysinfo;
- struct rpb *rpb;
-
- ReturnExtendedSystemInformation(&sysinfo);
- printf("sysinfo.ProcessorId = %x\n", sysinfo.ProcessorId);
- printf("sysinfo.ProcessorRevision = %d\n", sysinfo.ProcessorRevision);
- printf("sysinfo.ProcessorPageSize = %d\n", sysinfo.ProcessorPageSize);
- printf("sysinfo.NumberOfPhysicalAddressBits = %d\n", sysinfo.NumberOfPhysicalAddressBits);
- printf("sysinfo.MaximumAddressSpaceNumber = %d\n", sysinfo.MaximumAddressSpaceNumber);
- printf("sysinfo.ProcessorCycleCounterPeriod = %d\n", sysinfo.ProcessorCycleCounterPeriod);
- printf("sysinfo.SystemRevision = %d\n", sysinfo.SystemRevision);
- printf("sysinfo.SystemSerialNumber = %s\n", sysinfo.SystemSerialNumber);
- printf("sysinfo.FirmwareVersion = %s\n", sysinfo.FirmwareVersion);
-
- rpb = malloc(size_rpb());
- write_rpb(rpb);
- return rpb;
-}
diff --git a/sys/boot/arc/lib/arch/alpha/setjmp.S b/sys/boot/arc/lib/arch/alpha/setjmp.S
deleted file mode 100644
index 8e153f7ddd77..000000000000
--- a/sys/boot/arc/lib/arch/alpha/setjmp.S
+++ /dev/null
@@ -1,95 +0,0 @@
-/* $FreeBSD$ */
-/*
- * Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-
- .text
-/*
- * Kernel setjmp and longjmp. Rather minimalist.
- *
- * longjmp(label_t *a)
- * will generate a "return (1)" from the last call to
- * setjmp(label_t *a)
- * by restoring registers from the stack,
- */
-
- .set noreorder
-
-LEAF(setjmp, 1)
- LDGP(pv)
-
- stq ra, (0 * 8)(a0) /* return address */
- stq s0, (1 * 8)(a0) /* callee-saved registers */
- stq s1, (2 * 8)(a0)
- stq s2, (3 * 8)(a0)
- stq s3, (4 * 8)(a0)
- stq s4, (5 * 8)(a0)
- stq s5, (6 * 8)(a0)
- stq s6, (7 * 8)(a0)
- stq sp, (8 * 8)(a0)
-
- ldiq t0, 0xbeeffedadeadbabe /* set magic number */
- stq t0, (9 * 8)(a0)
-
- mov zero, v0 /* return zero */
- RET
-END(setjmp)
-
-LEAF(longjmp, 1)
- LDGP(pv)
-
- ldiq t0, 0xbeeffedadeadbabe /* check magic number */
- ldq t1, (9 * 8)(a0)
- cmpeq t0, t1, t0
- beq t0, longjmp_botch /* if bad, punt */
-
- ldq ra, (0 * 8)(a0) /* return address */
- ldq s0, (1 * 8)(a0) /* callee-saved registers */
- ldq s1, (2 * 8)(a0)
- ldq s2, (3 * 8)(a0)
- ldq s3, (4 * 8)(a0)
- ldq s4, (5 * 8)(a0)
- ldq s5, (6 * 8)(a0)
- ldq s6, (7 * 8)(a0)
- ldq sp, (8 * 8)(a0)
-
- ldiq v0, 1
- RET
-
-longjmp_botch:
- lda a0, longjmp_botchmsg
- mov ra, a1
- CALL(panic)
- call_pal PAL_bugchk
-
- .data
-longjmp_botchmsg:
- .asciz "longjmp botch from %p"
- .text
-
-END(longjmp)
diff --git a/sys/boot/arc/lib/arch/alpha/start.S b/sys/boot/arc/lib/arch/alpha/start.S
deleted file mode 100644
index 1b4fc598d6ae..000000000000
--- a/sys/boot/arc/lib/arch/alpha/start.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 1999, Stefan Esser <se@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 unmodified, 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 ``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 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.
- *
- * $FreeBSD$
- *
- */
-
-/*
- * Based on /sys/boot/alpha/libalpha/start.S
- * Copyright (c) 1992 Carnegie Mellon University
- */
-
-#include <machine/asm.h>
-
- .text
-
-#define ENTRY_FRAME 32
-
-NESTED(_start, 1, ENTRY_FRAME, ra, 0, 0)
- br pv,Lstartgp
-Lstartgp:
- LDGP(pv)
-
- lda a0,_edata
- lda a1,_end
- subq a1,a0,a1
- CALL(bzero)
-
- lda sp, -8(sp)
- stq ra, 0(sp)
-
- CALL(main) /* transfer to C */
-
- ldq ra, 0(sp)
- lda sp, 8(sp)
- RET /* XXX */
-
-XLEAF(_rtt, 0)
-XLEAF(halt, 0)
- call_pal PAL_halt /* halt if we ever return */
-END(_start)
diff --git a/sys/boot/arc/lib/bootinfo.c b/sys/boot/arc/lib/bootinfo.c
deleted file mode 100644
index 4304b7945e27..000000000000
--- a/sys/boot/arc/lib/bootinfo.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/*-
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <stand.h>
-#include <string.h>
-#include <sys/param.h>
-#include <sys/linker.h>
-#include <machine/elf.h>
-#include <machine/prom.h>
-#include <machine/rpb.h>
-#include <machine/bootinfo.h>
-#include "bootstrap.h"
-
-/*
- * Copy the environment into the load area starting at (addr).
- * Each variable is formatted as <name>=<value>, with a single nul
- * separating each variable, and a double nul terminating the environment.
- */
-vm_offset_t
-bi_copyenv(vm_offset_t addr)
-{
- struct env_var *ep;
-
- /* traverse the environment */
- for (ep = environ; ep != NULL; ep = ep->ev_next) {
- alpha_copyin(ep->ev_name, addr, strlen(ep->ev_name));
- addr += strlen(ep->ev_name);
- alpha_copyin("=", addr, 1);
- addr++;
- if (ep->ev_value != NULL) {
- alpha_copyin(ep->ev_value, addr, strlen(ep->ev_value));
- addr += strlen(ep->ev_value);
- }
- alpha_copyin("", addr, 1);
- addr++;
- }
- alpha_copyin("", addr, 1);
- addr++;
- return(addr);
-}
-
-/*
- * Copy module-related data into the load area, where it can be
- * used as a directory for loaded modules.
- *
- * Module data is presented in a self-describing format. Each datum
- * is preceded by a 32-bit identifier and a 32-bit size field.
- *
- * Currently, the following data are saved:
- *
- * MOD_NAME (variable) module name (string)
- * MOD_TYPE (variable) module type (string)
- * MOD_ADDR sizeof(vm_offset_t) module load address
- * MOD_SIZE sizeof(size_t) module size
- * MOD_METADATA (variable) type-specific metadata
- */
-#define COPY32(v, a) { \
- u_int32_t x = (v); \
- alpha_copyin(&x, a, sizeof(x)); \
- a += sizeof(x); \
-}
-
-#define MOD_STR(t, a, s) { \
- COPY32(t, a); \
- COPY32(strlen(s) + 1, a); \
- alpha_copyin(s, a, strlen(s) + 1); \
- a += roundup(strlen(s) + 1, sizeof(u_int64_t));\
-}
-
-#define MOD_NAME(a, s) MOD_STR(MODINFO_NAME, a, s)
-#define MOD_TYPE(a, s) MOD_STR(MODINFO_TYPE, a, s)
-
-#define MOD_VAR(t, a, s) { \
- COPY32(t, a); \
- COPY32(sizeof(s), a); \
- alpha_copyin(&s, a, sizeof(s)); \
- a += roundup(sizeof(s), sizeof(u_int64_t)); \
-}
-
-#define MOD_ADDR(a, s) MOD_VAR(MODINFO_ADDR, a, s)
-#define MOD_SIZE(a, s) MOD_VAR(MODINFO_SIZE, a, s)
-
-#define MOD_METADATA(a, mm) { \
- COPY32(MODINFO_METADATA | mm->md_type, a); \
- COPY32(mm->md_size, a); \
- alpha_copyin(mm->md_data, a, mm->md_size); \
- a += roundup(mm->md_size, sizeof(u_int64_t));\
-}
-
-#define MOD_END(a) { \
- COPY32(MODINFO_END, a); \
- COPY32(0, a); \
-}
-
-vm_offset_t
-bi_copymodules(vm_offset_t addr)
-{
- struct preloaded_file *fp;
- struct file_metadata *md;
-
- /* start with the first module on the list, should be the kernel */
- for (fp = file_findfile(NULL, NULL); fp != NULL; fp = fp->f_next) {
-
- MOD_NAME(addr, fp->f_name); /* this field must come first */
- MOD_TYPE(addr, fp->f_type);
- MOD_ADDR(addr, fp->f_addr);
- MOD_SIZE(addr, fp->f_size);
- for (md = fp->f_metadata; md != NULL; md = md->md_next)
- if (!(md->md_type & MODINFOMD_NOCOPY))
- MOD_METADATA(addr, md);
- }
- MOD_END(addr);
- return(addr);
-}
-
-/*
- * Load the information expected by an alpha kernel.
- *
- * - The kernel environment is copied into kernel space.
- * - Module metadata are formatted and placed in kernel space.
- */
-int
-bi_load(struct bootinfo_v1 *bi, vm_offset_t *ffp_save,
- struct preloaded_file *fp)
-{
- struct preloaded_file *xp;
- vm_offset_t addr, bootinfo_addr;
- u_int pad;
- vm_offset_t ssym, esym;
- struct file_metadata *md;
-
- ssym = esym = 0;
- if ((md = file_findmetadata(fp, MODINFOMD_SSYM)) != NULL)
- ssym = *((vm_offset_t *)&(md->md_data));
- if ((md = file_findmetadata(fp, MODINFOMD_ESYM)) != NULL)
- esym = *((vm_offset_t *)&(md->md_data));
- if (ssym == 0 || esym == 0)
- ssym = esym = 0; /* sanity */
-
- bi->ssym = ssym;
- bi->esym = esym;
-
- /* find the last module in the chain */
- addr = 0;
- for (xp = file_findfile(NULL, NULL); xp != NULL; xp = xp->f_next) {
- if (addr < (xp->f_addr + xp->f_size))
- addr = xp->f_addr + xp->f_size;
- }
- /* pad to a page boundary */
- pad = (u_int)addr & PAGE_MASK;
- if (pad != 0) {
- pad = PAGE_SIZE - pad;
- addr += pad;
- }
-
- /* copy our environment */
- bi->envp = (char *)addr;
- addr = bi_copyenv(addr);
-
- /* pad to a page boundary */
- pad = (u_int)addr & PAGE_MASK;
- if (pad != 0) {
- pad = PAGE_SIZE - pad;
- addr += pad;
- }
- /* copy module list and metadata */
- bi->modptr = addr;
- addr = bi_copymodules(addr);
-
- /* all done copying stuff in, save end of loaded object space */
- bi->kernend = addr;
-
- *ffp_save = ALPHA_K0SEG_TO_PHYS((addr + PAGE_MASK) & ~PAGE_MASK)
- >> PAGE_SHIFT;
- *ffp_save += 2; /* XXX OSF/1 does this, no idea why. */
-
- return(0);
-}
diff --git a/sys/boot/arc/lib/delay.c b/sys/boot/arc/lib/delay.c
deleted file mode 100644
index 2236978cab94..000000000000
--- a/sys/boot/arc/lib/delay.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * Copyright (c) 1998 Doug Rabson
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <errno.h>
-#include <sys/types.h>
-#include "arctypes.h"
-#include "arcfuncs.h"
-
-void
-delay(int usecs)
-{
- StallExecution(usecs);
-}
diff --git a/sys/boot/arc/lib/devicename.c b/sys/boot/arc/lib/devicename.c
deleted file mode 100644
index a3db40d0cbc0..000000000000
--- a/sys/boot/arc/lib/devicename.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/*-
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <stand.h>
-#include <string.h>
-#include "bootstrap.h"
-#include "libarc.h"
-
-static int arc_parsedev(struct arc_devdesc **dev, const char *devspec, const char **path);
-
-/*
- * Point (dev) at an allocated device specifier for the device matching the
- * path in (devspec). If it contains an explicit device specification,
- * use that. If not, use the default device.
- */
-int
-arc_getdev(void **vdev, const char *devspec, const char **path)
-{
- struct arc_devdesc **dev = (struct arc_devdesc **)vdev;
- int rv;
-
- /*
- * If it looks like this is just a path and no
- * device, go with the current device.
- */
- if ((devspec == NULL) ||
- (devspec[0] == '/') ||
- (strchr(devspec, ':') == NULL)) {
-
- if (((rv = arc_parsedev(dev, getenv("currdev"), NULL)) == 0) &&
- (path != NULL))
- *path = devspec;
- return(rv);
- }
-
- /*
- * Try to parse the device name off the beginning of the devspec
- */
- return(arc_parsedev(dev, devspec, path));
-}
-
-/*
- * Point (dev) at an allocated device specifier matching the string version
- * at the beginning of (devspec). Return a pointer to the remaining
- * text in (path).
- *
- * In all cases, the beginning of (devspec) is compared to the names
- * of known devices in the device switch, and then any following text
- * is parsed according to the rules applied to the device type.
- *
- * For disk-type devices, the syntax is:
- *
- * disk<unit>[s<slice>][<partition>]:
- *
- */
-static int
-arc_parsedev(struct arc_devdesc **dev, const char *devspec, const char **path)
-{
- struct arc_devdesc *idev;
- struct devsw *dv;
- int i, unit, slice, partition, err;
- char *cp;
- const char *np;
-
- /* minimum length check */
- if (strlen(devspec) < 2)
- return(EINVAL);
-
- /* look for a device that matches */
- for (i = 0, dv = NULL; devsw[i] != NULL; i++) {
- if (!strncmp(devspec, devsw[i]->dv_name, strlen(devsw[i]->dv_name))) {
- dv = devsw[i];
- break;
- }
- }
-
- if (dv == NULL)
- return(ENOENT);
- idev = malloc(sizeof(struct arc_devdesc));
- err = 0;
- np = (devspec + strlen(dv->dv_name));
-
- switch(dv->dv_type) {
- case DEVT_NONE: /* XXX what to do here? Do we care? */
- break;
-
- case DEVT_DISK:
- unit = -1;
- slice = -1;
- partition = -1;
- if (*np && (*np != ':')) {
- unit = strtol(np, &cp, 10); /* next comes the unit number */
- if (cp == np) {
- err = EUNIT;
- goto fail;
- }
- if (*cp == 's') { /* got a slice number */
- np = cp + 1;
- slice = strtol(np, &cp, 10);
- if (cp == np) {
- err = ESLICE;
- goto fail;
- }
- }
- if (*cp && (*cp != ':')) {
- partition = *cp - 'a'; /* get a partition number */
- if ((partition < 0) || (partition >= MAXPARTITIONS)) {
- err = EPART;
- goto fail;
- }
- cp++;
- }
- }
- if (*cp && (*cp != ':')) {
- err = EINVAL;
- goto fail;
- }
-
- idev->d_kind.arcdisk.unit = unit;
- idev->d_kind.arcdisk.slice = slice;
- idev->d_kind.arcdisk.partition = partition;
- if (path != NULL)
- *path = (*cp == 0) ? cp : cp + 1;
- break;
-
- case DEVT_NET:
- unit = 0;
-
- if (*np && (*np != ':')) {
- unit = strtol(np, &cp, 0); /* get unit number if present */
- if (cp == np) {
- err = EUNIT;
- goto fail;
- }
- }
- if (*cp && (*cp != ':')) {
- err = EINVAL;
- goto fail;
- }
-
- idev->d_kind.netif.unit = unit;
- if (path != NULL)
- *path = (*cp == 0) ? cp : cp + 1;
- break;
-
- default:
- err = EINVAL;
- goto fail;
- }
- idev->d_dev = dv;
- idev->d_type = dv->dv_type;
- if (dev == NULL) {
- free(idev);
- } else {
- *dev = idev;
- }
- return(0);
-
- fail:
- free(idev);
- return(err);
-}
-
-
-char *
-arc_fmtdev(void *vdev)
-{
- struct arc_devdesc *dev = (struct arc_devdesc *)vdev;
- static char buf[128]; /* XXX device length constant? */
- char *cp;
-
- switch(dev->d_type) {
- case DEVT_NONE:
- strcpy(buf, "(no device)");
- break;
-
- case DEVT_DISK:
- cp = buf;
- cp += sprintf(cp, "%s%d", dev->d_dev->dv_name, dev->d_kind.arcdisk.unit);
- if (dev->d_kind.arcdisk.slice > 0)
- cp += sprintf(cp, "s%d", dev->d_kind.arcdisk.slice);
- if (dev->d_kind.arcdisk.partition >= 0)
- cp += sprintf(cp, "%c", dev->d_kind.arcdisk.partition + 'a');
- strcat(cp, ":");
- break;
-
- case DEVT_NET:
- sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_kind.netif.unit);
- break;
- }
- return(buf);
-}
-
-
-/*
- * Set currdev to suit the value being supplied in (value)
- */
-int
-arc_setcurrdev(struct env_var *ev, int flags, void *value)
-{
- struct arc_devdesc *ncurr;
- int rv;
-
- if ((rv = arc_parsedev(&ncurr, value, NULL)) != 0)
- return(rv);
- free(ncurr);
- env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL);
- return(0);
-}
-
diff --git a/sys/boot/arc/lib/elf_freebsd.c b/sys/boot/arc/lib/elf_freebsd.c
deleted file mode 100644
index 8cebb6897c03..000000000000
--- a/sys/boot/arc/lib/elf_freebsd.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/* $NetBSD: loadfile.c,v 1.10 1998/06/25 06:45:46 ross Exp $ */
-
-/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
- * NASA Ames Research Center.
- *
- * 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the NetBSD
- * Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
- */
-/*
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Ralph Campbell.
- *
- * 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.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
- *
- * @(#)boot.c 8.1 (Berkeley) 6/10/93
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <stand.h>
-#include <string.h>
-
-#include <sys/param.h>
-#include <sys/linker.h>
-#include <machine/elf.h>
-#include <machine/prom.h>
-#include <machine/rpb.h>
-#include <machine/bootinfo.h>
-
-#include "bootstrap.h"
-
-#define _KERNEL
-
-static int elf64_exec(struct preloaded_file *amp);
-int bi_load(struct bootinfo_v1 *, vm_offset_t *,
- struct preloaded_file *);
-
-struct file_format alpha_elf = { elf64_loadfile, elf64_exec };
-
-vm_offset_t ffp_save, ptbr_save;
-
-static int
-elf64_exec(struct preloaded_file *fp)
-{
-#if 0
- static struct bootinfo_v1 bootinfo_v1;
- struct file_metadata *md;
- Elf_Ehdr *hdr;
- int err;
-
- if ((md = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL)
- return(EFTYPE); /* XXX actually EFUCKUP */
- hdr = (Elf_Ehdr *)&(md->md_data);
-
- /* XXX ffp_save does not appear to be used in the kernel.. */
- bzero(&bootinfo_v1, sizeof(bootinfo_v1));
- err = bi_load(&bootinfo_v1, &ffp_save, fp);
- if (err)
- return(err);
-
- /*
- * Fill in the bootinfo for the kernel.
- */
- strncpy(bootinfo_v1.booted_kernel, fp->f_name,
- sizeof(bootinfo_v1.booted_kernel));
- prom_getenv(PROM_E_BOOTED_OSFLAGS, bootinfo_v1.boot_flags,
- sizeof(bootinfo_v1.boot_flags));
- bootinfo_v1.hwrpb = (void *)HWRPB_ADDR;
- bootinfo_v1.hwrpbsize = ((struct rpb *)HWRPB_ADDR)->rpb_size;
- bootinfo_v1.cngetc = NULL;
- bootinfo_v1.cnputc = NULL;
- bootinfo_v1.cnpollc = NULL;
-
- printf("Entering %s at 0x%lx...\n", fp->f_name, hdr->e_entry);
- exit(0);
- closeall();
- alpha_pal_imb();
- (*(void (*)())hdr->e_entry)(ffp_save, ptbr_save,
- BOOTINFO_MAGIC, &bootinfo_v1, 1, 0);
-#endif
-}
-
-
-
diff --git a/sys/boot/arc/lib/module.c b/sys/boot/arc/lib/module.c
deleted file mode 100644
index 0ad48f60272b..000000000000
--- a/sys/boot/arc/lib/module.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*-
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * alpha-specific module functionality.
- *
- */
-
-#include <stand.h>
-#include <string.h>
-
-#include "bootstrap.h"
-#include "libarc.h"
-
-/*
- * Use voodoo to load modules required by current hardware.
- */
-int
-arc_autoload(void)
-{
- /* XXX use PnP to locate stuff here */
- return(0);
-}
diff --git a/sys/boot/arc/lib/prom.c b/sys/boot/arc/lib/prom.c
deleted file mode 100644
index 8246d4a38958..000000000000
--- a/sys/boot/arc/lib/prom.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 1999, Stefan Esser <se@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 unmodified, 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 ``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 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#define PROM_E_BOOTED_DEV "XXX1"
-#define PROM_E_BOOTED_FILE "XXX2"
-#define PROM_E_BOOTED_OSFLAGS "XXX3"
-#define PROM_E_TTY_DEV "XXX4"
-
-u_int64_t
-prom_getenv(PROM_E_BOOTED_FILE, bootfile, sizeof(bootfile))
-{
-
-}
diff --git a/sys/boot/arc/lib/setjmperr.c b/sys/boot/arc/lib/setjmperr.c
deleted file mode 100644
index 8938a33f568f..000000000000
--- a/sys/boot/arc/lib/setjmperr.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * Copyright (c) 1998 Doug Rabson
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <errno.h>
-#include <sys/types.h>
-#include "arctypes.h"
-#include "arcfuncs.h"
-
-void
-longjmperror()
-{
- panic("longjmp botch.\n");
-}
diff --git a/sys/boot/arc/lib/time.c b/sys/boot/arc/lib/time.c
deleted file mode 100644
index 059853401791..000000000000
--- a/sys/boot/arc/lib/time.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * Copyright (c) 1998 Doug Rabson
- * 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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <errno.h>
-#include <sys/types.h>
-#include "arctypes.h"
-#include "arcfuncs.h"
-
-time_t
-time(time_t *tloc)
-{
- int secs = GetRelativeTime();
- if (tloc)
- *tloc = secs;
- return secs;
-}