|
|
researchv9-SUN3(old)
/*
* 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);
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.