V9/cmd/adb/sun/mchrun.c

Compare this file to the similar file:
Show the results in this format:

/*
 * machine-dependent code for controlling a process
 * this for vax
 */

#include "defs.h"
#include "bkpt.h"
#include "regs.h"
#include "space.h"
#include <machine/reg.h>
#include <machine/psl.h>


/*
 * install (f != 0) or remove (f == 0) a breakpoint
 */

#define	BPT	0x4e4f		/* Trap #15 */

extern ADDR txtsize;
bkput(bk, f)
register BKPT *bk;
{
	register int sp;

	if (bk->loc < txtsize)
		sp = CORF | INSTSP;
	else
		sp = CORF | DATASP;
	if (f == 0)
		sput(bk->loc, sp, wtos(bk->ins));
	else {
		bk->ins = stow(sget(bk->loc, sp));
		sput(bk->loc, sp, wtos(BPT));
		if (errflg) {
			printf("cannot set breakpoint: ");
			/* stuff */
			prints(errflg);
		}
	}
}

/*
 * set psl to cause a trap after one instruction
 * needed for v8; no ioctl to step pc
 */

setstep()
{

	rput(PS, rget(PS) | PSL_T);
}