diff options
author | Per Fogelstrom <pefo@cvs.openbsd.org> | 1997-05-19 09:35:27 +0000 |
---|---|---|
committer | Per Fogelstrom <pefo@cvs.openbsd.org> | 1997-05-19 09:35:27 +0000 |
commit | 6b9d7d902f83962ead0c920afdae3fed9c921373 (patch) | |
tree | 1f6c429220200a927c5a52a3f38ae86783be87b7 /sys/arch | |
parent | a8b2be46d15762aee31acca3529958aa8794cdca (diff) |
ARC has no boot right now...
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/arc/stand/Makefile | 97 | ||||
-rw-r--r-- | sys/arch/arc/stand/boot.c | 114 | ||||
-rw-r--r-- | sys/arch/arc/stand/conf.c | 70 | ||||
-rw-r--r-- | sys/arch/arc/stand/filesystem.c | 44 | ||||
-rw-r--r-- | sys/arch/arc/stand/rz.c | 174 | ||||
-rw-r--r-- | sys/arch/arc/stand/start.S | 129 |
6 files changed, 3 insertions, 625 deletions
diff --git a/sys/arch/arc/stand/Makefile b/sys/arch/arc/stand/Makefile index a7dd6383200..fbe4ff31c14 100644 --- a/sys/arch/arc/stand/Makefile +++ b/sys/arch/arc/stand/Makefile @@ -1,96 +1,5 @@ -# $NetBSD: Makefile,v 1.5 1995/01/18 06:53:36 mellon Exp $ -# @(#)Makefile 8.3 (Berkeley) 2/16/94 +# $OpenBSD: Makefile,v 1.2 1997/05/19 09:35:24 pefo Exp $ -DESTDIR= -STAND= ../../stand -#VPATH= ${STAND} +SUBDIR= mbr -# RELOC=80200000 allows for boot prog up to 1D0000 (1900544) bytes long -RELOC= 80200000 - -S= ../../.. - -DEFS= -DSTANDALONE -DDEBUG -CFLAGS= -O2 ${INCPATH} ${DEFS} -AFLAGS= -O2 ${INCPATH} ${DEFS} -DLOCORE - -.PATH: ${S}/arch/${MACHINE_ARCH}/${MACHINE_ARCH} -.PATH: ${S}/stand ${S}/lib/libsa - -#INCPATH=-I. -I/sys -INCPATH=-I${.CURDIR} -I${.CURDIR}/../.. -I${S} -I${S}/lib/libsa - -### find out what to use for libkern -.include "$S/lib/libkern/Makefile.inc" -LIBKERN= ${KERNLIB} -#KERNLIB= ${.CURDIR}/../compile/libkern.a - -.include "$S/lib/libsa/Makefile.inc" -LIBSA= ${SA_LIB} - -# not yet: need to write libsa/Makefile.inc first -LIBS= ${.OBJDIR}/libdrive.a ${.CURDIR}/libsa/libsa.a ${KERNLIB} -#LIBS= libdrive.a libsa/libsa.a ../../libkern/obj/libkern.a - -DRIVERS= rz.c -SRCS= ${DRIVERS} -#STUFF= callvec.c devopen.c getenv.c gets.c strcmp.c -STUFF= - -ALL= boot - -.s.o: - ${CPP} -E ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ - ${AS} -o ${.TARGET} - -all: ${ALL} - -boot: ${LIBS} - -#libsa/libsa.a:: -# cd libsa; make - -${.OBJDIR}/libdrive.a: conf.o ${DRIVERS:.c=.o} - ar crv $@ $? - ranlib $@ - -# depend on DEFS - -#before other deps on bootconf.o -bootconf.o: conf.o - rm -f bootconf.c - ln -s ${.CURDIR}/conf.c bootconf.c - ${CC} -c ${CFLAGS} -DBOOT bootconf.c - rm -f bootconf.c - - -# bootable from real disks - -boot: start.o boot.o bootconf.o filesystem.o ${LIBS} - /usr/gnu/ld -N -Ttext ${RELOC} -e __start start.o boot.o bootconf.o filesystem.o ${LIBS} -o boot.elf - elf2ecoff boot.elf boot - -start.o: ${.CURDIR}/start.S - -# ${CPP} -E ${CFLAGS:M-[ID]*} -DLOCORE ${AINC} ${.IMPSRC} | \ -# ${AS} -o ${.TARGET} - -mkboot: ${.CURDIR}/mkboot.c - ${CC} ${CFLAGS} -o mkboot ${.CURDIR}/mkboot.c - -# utilities - -clean:: - rm -f .depend *.o *.exe *.i errs make.out core* - rm -f a.out ${ALL} - rm -f libdrive.a - cd libsa; make cleandir - -install: - -depend: ${SRCS} - mkdep ${INCPATH} ${DEFS} ${SRCS} - cd libsa; make depend - -.include <bsd.dep.mk> -.include <bsd.obj.mk> +.include <bsd.subdir.mk> diff --git a/sys/arch/arc/stand/boot.c b/sys/arch/arc/stand/boot.c deleted file mode 100644 index 170f6f923de..00000000000 --- a/sys/arch/arc/stand/boot.c +++ /dev/null @@ -1,114 +0,0 @@ -/* $NetBSD: boot.c,v 1.6 1995/06/28 10:22:32 jonathan Exp $ */ - -/* - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 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/param.h> -#include <sys/exec.h> -#include <stand.h> - - -char line[1024]; - -/* - * This gets arguments from the PROM, calls other routines to open - * and load the program to boot, and then transfers execution to that - * new program. - * Argv[0] should be something like "rz(0,0,0)vmunix" on a DECstation 3100. - * Argv[0,1] should be something like "boot 5/rz0/vmunix" on a DECstation 5000. - * The argument "-a" means vmunix should do an automatic reboot. - */ -int -main(argc, argv) - int argc; - char **argv; -{ - char *cp; - int ask, entry; - int i; - - ask = 1; - - for(i = 0; i < argc; i++) - printf("Arg %d:%s\n",i,argv[i]); - - do { - printf("Boot: "); - if (ask) { - gets(line); - cp = line; - argv[0] = cp; - argc = 1; - } else - printf("%s\n", cp); - } while(ask && line[0] == '\0'); - - entry = loadfile(cp); - if (entry == -1) { - gets(line); - return 0; - } - - printf("Starting at 0x%x\n\n", entry); - ((void (*)())entry)(argc, argv, 0, 0); -} - -/* - * Open 'filename', read in program and return the entry point or -1 if error. - */ -loadfile(fname) - register char *fname; -{ - struct devices *dp; - int fd, i, n; - struct exec aout; - - if ((fd = open(fname, 0)) < 0) { - printf("open(%s) failed: %d\n", fname, errno); - goto err; - } - - /* read the exec header */ - i = read(fd, (char *)&aout, sizeof(aout)); - -cerr: - (void) close(fd); -err: - printf("Can't boot '%s'\n", fname); - return (-1); -} diff --git a/sys/arch/arc/stand/conf.c b/sys/arch/arc/stand/conf.c deleted file mode 100644 index cecbc70b64c..00000000000 --- a/sys/arch/arc/stand/conf.c +++ /dev/null @@ -1,70 +0,0 @@ -/* $NetBSD: conf.c,v 1.5 1995/01/18 06:53:39 mellon Exp $ */ - -/* - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 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. - * - * @(#)conf.c 8.1 (Berkeley) 6/10/93 - */ - -#include <stand.h> - -int errno; - -extern void nullsys(); -extern int nodev(), noioctl(); - -int rzstrategy(), rzopen(); -#ifdef SMALL -#define rzclose 0 -#else /*!SMALL*/ -int rzclose(); -#endif /*!SMALL*/ - -#define rzioctl noioctl - -#ifndef BOOT -int tzstrategy(), tzopen(), tzclose(); -#endif -#define tzioctl noioctl - - -struct devsw devsw[] = { - { "rz", rzstrategy, rzopen, rzclose, rzioctl }, /*0*/ -#ifndef BOOT - { "tz", tzstrategy, tzopen, tzclose, tzioctl }, /*1*/ -#endif -}; - -int ndevs = (sizeof(devsw)/sizeof(devsw[0])); diff --git a/sys/arch/arc/stand/filesystem.c b/sys/arch/arc/stand/filesystem.c deleted file mode 100644 index 514e6e809bf..00000000000 --- a/sys/arch/arc/stand/filesystem.c +++ /dev/null @@ -1,44 +0,0 @@ -/* $NetBSD: filesystem.c,v 1.2 1995/02/16 02:33:05 cgd Exp $ */ - -/* - * Copyright (c) 1993 Philip A. Nelson. - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Philip A. Nelson. - * 4. The name of Philip A. Nelson may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY PHILIP NELSON ``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 PHILIP NELSON 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. - * - * filesystem.c - */ - -#include <lib/libsa/stand.h> -#include <lib/libsa/ufs.h> - -struct fs_ops file_system[] = { - { ufs_open, ufs_close, ufs_read, ufs_write, ufs_seek, ufs_stat }, -}; - -int nfsys = sizeof(file_system)/sizeof(struct fs_ops); - diff --git a/sys/arch/arc/stand/rz.c b/sys/arch/arc/stand/rz.c deleted file mode 100644 index 1094aef4705..00000000000 --- a/sys/arch/arc/stand/rz.c +++ /dev/null @@ -1,174 +0,0 @@ -/* $NetBSD: rz.c,v 1.6 1995/06/28 10:22:35 jonathan Exp $ */ - -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Van Jacobson of Lawrence Berkeley Laboratory and 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 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. - * - * @(#)rz.c 8.1 (Berkeley) 6/10/93 - */ - -#include <stdarg.h> - -#include <stand.h> -#include <sys/param.h> -#include <sys/disklabel.h> - -struct rz_softc { - int sc_fd; /* PROM file id */ - int sc_ctlr; /* controller number */ - int sc_unit; /* disk unit number */ - int sc_part; /* disk partition number */ - struct disklabel sc_label; /* disk label for this disk */ -}; - -int -rzstrategy(devdata, rw, bn, reqcnt, addr, cnt) - void *devdata; - int rw; - daddr_t bn; - u_int reqcnt; - char *addr; - u_int *cnt; /* out: number of bytes transfered */ -{ - register struct rz_softc *sc = (struct rz_softc *)devdata; - register int part = sc->sc_part; - register struct partition *pp = &sc->sc_label.d_partitions[part]; - register int s; - long offset; - - offset = bn * DEV_BSIZE; - -#ifdef DEBUG -/*XXX*/printf("rz:%x %d\n", offset, reqcnt); -#endif - - /* - * Partial-block transfers not handled. - */ - if (reqcnt & (DEV_BSIZE - 1)) { - *cnt = 0; - return (EINVAL); - } - - offset += pp->p_offset * DEV_BSIZE; - - if (Bios_Seek(sc->sc_fd, &offset, 0) != 0) - return (EIO); - s = Bios_Read(sc->sc_fd, addr, reqcnt, &reqcnt); - if (s != 0) - return (EIO); - - *cnt = reqcnt; - return (0); -} - -int -rzopen(struct open_file *f, ...) -{ - int ctlr, unit, part; - - struct rz_softc *sc; - struct disklabel *lp; - int i, fd; - char *msg; - char buf[DEV_BSIZE]; - int cnt; - static char device[] = "scsi()disk(0)rdisk()"; - va_list ap; - - va_start(ap, f); - - ctlr = va_arg(ap, int); - unit = va_arg(ap, int); - part = va_arg(ap, int); - if (unit >= 8 || part >= 8) - return (ENXIO); -#if 0 - device[5] = '0' + unit; -#endif - /* NOTE: only support reads for now */ - - i = Bios_Open(device, 0, &fd); - if (i != 0) { - printf("boot init failed error code %d\n", i); - return (ENXIO); - } - - sc = alloc(sizeof(struct rz_softc)); - bzero(sc, sizeof(struct rz_softc)); - f->f_devdata = (void *)sc; - - sc->sc_fd = fd; - sc->sc_ctlr = ctlr; - sc->sc_unit = unit; - sc->sc_part = part; - - /* try to read disk label and partition table information */ - lp = &sc->sc_label; - lp->d_secsize = DEV_BSIZE; - lp->d_secpercyl = 1; - lp->d_npartitions = MAXPARTITIONS; - lp->d_partitions[part].p_offset = 0; - lp->d_partitions[part].p_size = 0x7fffffff; - i = rzstrategy(sc, F_READ, (daddr_t)LABELSECTOR, DEV_BSIZE, buf, &cnt); - if (i || cnt != DEV_BSIZE) { - printf("rz%d: error reading disk label\n", unit); - goto bad; - } else { - msg = getdisklabel(buf, lp); - if (msg) { - printf("rz%d: %s\n", unit, msg); - goto bad; - } - } - - if (part >= lp->d_npartitions || lp->d_partitions[part].p_size == 0) { - bad: -#ifndef SMALL - free(sc, sizeof(struct rz_softc)); -#endif - return (ENXIO); - } - return (0); -} - -#ifndef SMALL -rzclose(f) - struct open_file *f; -{ - free(f->f_devdata, sizeof(struct rz_softc)); - f->f_devdata = (void *)0; - return (0); -} -#endif diff --git a/sys/arch/arc/stand/start.S b/sys/arch/arc/stand/start.S deleted file mode 100644 index 09114a91b7e..00000000000 --- a/sys/arch/arc/stand/start.S +++ /dev/null @@ -1,129 +0,0 @@ -/* $NetBSD: start.S,v 1.1 1995/01/18 06:19:01 mellon Exp $ */ - -/* - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 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. - * - */ - -/* - * start.S - - * - * Contains code that is the first executed at boot time. - */ - -#include <machine/regdef.h> -#include <machine/cpu.h> -#include <machine/asm.h> - -/* - * Frame required for the debugger (if we have any) - */ -#define START_FRAME ((4 * 4) + 4 + 4) - - .globl __start -__start: - .set noreorder -#ifdef __GP_SUPPORT__ - la gp, _C_LABEL (_gp) -#endif - la sp, __start - START_FRAME # Stack below program - sw zero, START_FRAME - 4(sp) # Zero out old ra for debugger - sw zero, START_FRAME - 8(sp) # Zero out old fp for debugger - move s0, a0 # save argc - move s1, a1 # save argv - - la a0, _C_LABEL (edata) # clear BSS - la a1, _C_LABEL (end) - jal _C_LABEL(bzero) # bzero(edata, end - edata) - subu a1, a1, a0 - - move a0, s0 # restore argc - jal _C_LABEL(main) # main(argc, argv) - move a1, s1 # restore argv - - j _C_LABEL(Bios_Restart) # restart... - nop - -/* dummy routine for gcc2 */ - .globl _C_LABEL(__main) -_C_LABEL(__main): - j ra - nop - -#define Bios_Call(Name,Offset) \ -LEAF(Name); \ - lw v0,0x80001020; \ - lw v0,Offset(v0); \ - jr v0 ; \ - nop ; \ - END(Name) - -Bios_Call(Bios_Load, 0x00) -Bios_Call(Bios_Invoke, 0x04) -Bios_Call(Bios_Execute, 0x08) -Bios_Call(Bios_Halt, 0x0c) -Bios_Call(Bios_PowerDown, 0x10) -Bios_Call(Bios_Restart, 0x14) -Bios_Call(Bios_Reboot, 0x18) -Bios_Call(Bios_EnterInteractiveMode, 0x1c) -Bios_Call(Bios_Unused1, 0x20) -Bios_Call(Bios_GetPeer, 0x24) -Bios_Call(Bios_GetChild, 0x28) -Bios_Call(Bios_GetParent, 0x2c) -Bios_Call(Bios_GetConfigurationData, 0x30) -Bios_Call(Bios_AddChild, 0x34) -Bios_Call(Bios_DeleteComponent, 0x38) -Bios_Call(Bios_GetComponent, 0x3c) -Bios_Call(Bios_SaveConfiguration, 0x40) -Bios_Call(Bios_GetSystemId, 0x44) -Bios_Call(Bios_GetMemoryDescriptor, 0x48) -Bios_Call(Bios_Unused2, 0x4c) -Bios_Call(Bios_GetTime, 0x50) -Bios_Call(Bios_GetRelativeTime, 0x54) -Bios_Call(Bios_GetDirectoryEntry, 0x58) -Bios_Call(Bios_Open, 0x5c) -Bios_Call(Bios_Close, 0x60) -Bios_Call(Bios_Read, 0x64) -Bios_Call(Bios_GetReadStatus, 0x68) -Bios_Call(Bios_Write, 0x6c) -Bios_Call(Bios_Seek, 0x70) -Bios_Call(Bios_Mount, 0x74) -Bios_Call(Bios_GetEnvironmentVariable, 0x78) -Bios_Call(Bios_SetEnvironmentVariable, 0x7c) -Bios_Call(Bios_GetFileInformation, 0x80) -Bios_Call(Bios_SetFileInformation, 0x84) -Bios_Call(Bios_FlushAllCaches, 0x88) -Bios_Call(Bios_TestUnicodeCharacter, 0x8c) -Bios_Call(Bios_GetDisplayStatus, 0x90) |