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