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

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

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

CVSweb