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