[BACK]Return to bugcrt.c CVS log [TXT][DIR] Up to [local] / sys / arch / mvme68k / stand / bugcrt

Annotation of sys/arch/mvme68k/stand/bugcrt/bugcrt.c, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: bugcrt.c,v 1.5 2003/08/20 00:25:08 deraadt Exp $ */
        !             2:
        !             3: #include <sys/types.h>
        !             4: #include <machine/prom.h>
        !             5:
        !             6: #include "libbug.h"
        !             7: #include "stand.h"
        !             8:
        !             9: void __main(void);
        !            10: void start(void);
        !            11:
        !            12: struct mvmeprom_args bugargs = { 1 };  /* not in BSS */
        !            13:
        !            14:        asm (".text");
        !            15:        asm (".long _start-0x10");
        !            16:        asm (".long _start");
        !            17:
        !            18: void
        !            19: start(void)
        !            20: {
        !            21:        register int dev_lun asm (MVMEPROM_REG_DEVLUN);
        !            22:        register int ctrl_lun asm (MVMEPROM_REG_CTRLLUN);
        !            23:        register int flags asm (MVMEPROM_REG_FLAGS);
        !            24:        register int ctrl_addr asm (MVMEPROM_REG_CTRLADDR);
        !            25:        register int entry asm (MVMEPROM_REG_ENTRY);
        !            26:        register int conf_blk asm (MVMEPROM_REG_CONFBLK);
        !            27:        register char *arg_start asm (MVMEPROM_REG_ARGSTART);
        !            28:        register char *arg_end asm (MVMEPROM_REG_ARGEND);
        !            29:        register char *nbarg_start asm (MVMEPROM_REG_NBARGSTART);
        !            30:        register char *nbarg_end asm (MVMEPROM_REG_NBARGEND);
        !            31:        extern int edata, end;
        !            32:        struct mvmeprom_brdid *id, *mvmeprom_getbrdid(void);
        !            33:
        !            34:        bugargs.dev_lun = dev_lun;
        !            35:        bugargs.ctrl_lun = ctrl_lun;
        !            36:        bugargs.flags = flags;
        !            37:        bugargs.ctrl_addr = ctrl_addr;
        !            38:        bugargs.entry = entry;
        !            39:        bugargs.conf_blk = conf_blk;
        !            40:        bugargs.arg_start = arg_start;
        !            41:        bugargs.arg_end = arg_end;
        !            42:        bugargs.nbarg_start = nbarg_start;
        !            43:        bugargs.nbarg_end = nbarg_end;
        !            44:        *bugargs.arg_end = 0;
        !            45:
        !            46:        bzero(&edata, (int)&end-(int)&edata);
        !            47:        id = mvmeprom_getbrdid();
        !            48:        bugargs.cputyp = id->model;
        !            49:        main();
        !            50:        _rtt();
        !            51:        /* NOTREACHED */
        !            52: }
        !            53:
        !            54: void
        !            55: __main(void)
        !            56: {
        !            57: }
        !            58:
        !            59:
        !            60: void
        !            61: bugexec(void (*addr)(void))
        !            62: {
        !            63:        register int dev_lun asm (MVMEPROM_REG_DEVLUN);
        !            64:        register int ctrl_lun asm (MVMEPROM_REG_CTRLLUN);
        !            65:        register int flags asm (MVMEPROM_REG_FLAGS);
        !            66:        register int ctrl_addr asm (MVMEPROM_REG_CTRLADDR);
        !            67:        register int entry asm (MVMEPROM_REG_ENTRY);
        !            68:        register int conf_blk asm (MVMEPROM_REG_CONFBLK);
        !            69:        register char *arg_start asm (MVMEPROM_REG_ARGSTART);
        !            70:        register char *arg_end asm (MVMEPROM_REG_ARGEND);
        !            71:
        !            72:        dev_lun = bugargs.dev_lun;
        !            73:        ctrl_lun = bugargs.ctrl_lun;
        !            74:        flags = bugargs.flags;
        !            75:        ctrl_addr = bugargs.ctrl_addr;
        !            76:        entry = bugargs.entry;
        !            77:        conf_blk = bugargs.conf_blk;
        !            78:        arg_start = bugargs.arg_start;
        !            79:        arg_end = bugargs.arg_end;
        !            80:
        !            81:        (*addr)();
        !            82:        printf("bugexec: 0x%x returned!\n", addr);
        !            83:
        !            84:        _rtt();
        !            85: }
        !            86:

CVSweb