File:  [Research Unix] / researchv9 / jtools / src / pi / core.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:59 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv9-SUN3_old, researchv9-SUN3, HEAD
researchv9-SUN3(old)

#ifndef CORE_H
#define CORE_H
#ifndef UNIV_H
#include "univ.h"
#endif

enum Behavs {
	BREAKED		= 1,
	ERRORED		= 0,
	HALTED		= 2,
	ACTIVE		= 3,
	PENDING		= 4,
	STMT_STEPPED	= 5,
	INST_STEPPED	= 6,
};
char *BehavsName(Behavs);

>pri
union UCslfd {			/* lsb lo */
	 double	dbl;
	 float	flt;
	 long	lng;
	 short	sht;
	 char	chr;
};

#include <CC/signal.h>
#include <CC/sys/types.h>
#include <CC/sys/stat.h>
>
class Context {
PUBLIC(Context,U_CONTEXT)
	char	*error;
		Context()	{ error = "context save error"; }
virtual	void	restore();
};

#define PEEKFAIL ((Cslfd*)-1)
class Core : public PadRcv{
		friend HostCore; friend KernCore;
		friend KernMaster; friend HostMaster;
		friend M68kCore;
		friend RtRawCore;
		friend RtNrtxCore;
		friend HostContext; // for ioctl(corefd)
>pub
	char	pub_filler[64];
>pri
struct	stat	corestat;
struct	stat	stabstat;
	char	*behavs_problem;
>
	int	corefd;
	int	stabfd;
	int	_online;
	Process	*_process;
	SymTab	*_symtab;
virtual	char	*read(long,char*,int);
virtual	char	*write(long,char*,int);
	int	corefstat();
	int	stabfstat();
PUBLIC(Core,U_CORE)
		Core(Process*, Master*);
	Process *process();
	SymTab	*symtab();
	char	*procpath();
	char	*stabpath();

virtual	Context	*newContext();
virtual	char	*liftbpt(Trap*);
virtual	char	*laybpt(Trap*);
virtual	int	REG_PC();
virtual	int	REG_FP();
virtual	int	REG_SP();
virtual	int	REG_AP();
virtual	long	saved(Frame*,int,int=0);
virtual	Behavs	behavs();
virtual	Asm	*newAsm();
virtual	Cslfd	*peek(long,Cslfd* =PEEKFAIL);
virtual	Cslfd	*peekcode(long);
virtual	CallStk	*callstack();
virtual	Frame	frameabove(long);
virtual	char	*blockmove(long,long,long);
virtual	char	*special(char*,long);
virtual	char	*destroy();
virtual	char	*eventname();
virtual	char	*open();
virtual	char	*peekstring(long,char* = 0);
virtual	char	*poke(long,long,int);
virtual	char	*pokedbl(long,double,int);
virtual	char	*problem();
virtual	char	*readcontrol();
virtual	char	*regname(int);
virtual	char	*reopen(char*,char*);
virtual	char	*resources();
virtual	char	*run();
virtual	char	*step(long=0,long=0);
virtual	char	*popcallstack();
virtual	char	*stepprolog();
virtual	char	*stop();
virtual	char	*specialop(char*);
virtual	int	event();
virtual	int	online();
virtual	long	regloc(int,int=0);
virtual	void	close();
virtual	long	apforcall(int);
virtual	char	*docall(long,int);
virtual	long	returnregloc();
virtual	char	*regpoke(int r,long l);
virtual	long	regpeek(int r);
virtual	long	fp();
virtual	long	sp();
virtual	long	pc();
virtual	long	ap();
virtual void	slavedriver(Core*);
virtual	int	nregs();
};
#endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.