|
|
1.1 ! root 1: #ifndef CORE_H ! 2: #define CORE_H ! 3: #ifndef UNIV_H ! 4: #include "univ.h" ! 5: #endif ! 6: ! 7: enum Behavs { ! 8: BREAKED = 1, ! 9: ERRORED = 0, ! 10: HALTED = 2, ! 11: ACTIVE = 3, ! 12: PENDING = 4, ! 13: STMT_STEPPED = 5, ! 14: INST_STEPPED = 6, ! 15: }; ! 16: char *BehavsName(Behavs); ! 17: ! 18: >pri ! 19: union UCslfd { /* lsb lo */ ! 20: double dbl; ! 21: float flt; ! 22: long lng; ! 23: short sht; ! 24: char chr; ! 25: }; ! 26: ! 27: #include <CC/signal.h> ! 28: #include <CC/sys/types.h> ! 29: #include <CC/sys/stat.h> ! 30: > ! 31: class Context { ! 32: PUBLIC(Context,U_CONTEXT) ! 33: char *error; ! 34: Context() { error = "context save error"; } ! 35: virtual void restore(); ! 36: }; ! 37: ! 38: #define PEEKFAIL ((Cslfd*)-1) ! 39: class Core : public PadRcv{ ! 40: friend HostCore; friend KernCore; ! 41: friend KernMaster; friend HostMaster; ! 42: friend M68kCore; ! 43: friend RtRawCore; ! 44: friend RtNrtxCore; ! 45: friend HostContext; // for ioctl(corefd) ! 46: >pub ! 47: char pub_filler[64]; ! 48: >pri ! 49: struct stat corestat; ! 50: struct stat stabstat; ! 51: char *behavs_problem; ! 52: > ! 53: int corefd; ! 54: int stabfd; ! 55: int _online; ! 56: Process *_process; ! 57: SymTab *_symtab; ! 58: virtual char *read(long,char*,int); ! 59: virtual char *write(long,char*,int); ! 60: int corefstat(); ! 61: int stabfstat(); ! 62: PUBLIC(Core,U_CORE) ! 63: Core(Process*, Master*); ! 64: Process *process(); ! 65: SymTab *symtab(); ! 66: char *procpath(); ! 67: char *stabpath(); ! 68: ! 69: virtual Context *newContext(); ! 70: virtual char *liftbpt(Trap*); ! 71: virtual char *laybpt(Trap*); ! 72: virtual int REG_PC(); ! 73: virtual int REG_FP(); ! 74: virtual int REG_SP(); ! 75: virtual int REG_AP(); ! 76: virtual long saved(Frame*,int,int=0); ! 77: virtual Behavs behavs(); ! 78: virtual Asm *newAsm(); ! 79: virtual Cslfd *peek(long,Cslfd* =PEEKFAIL); ! 80: virtual Cslfd *peekcode(long); ! 81: virtual CallStk *callstack(); ! 82: virtual Frame frameabove(long); ! 83: virtual char *blockmove(long,long,long); ! 84: virtual char *special(char*,long); ! 85: virtual char *destroy(); ! 86: virtual char *eventname(); ! 87: virtual char *open(); ! 88: virtual char *peekstring(long,char* = 0); ! 89: virtual char *poke(long,long,int); ! 90: virtual char *pokedbl(long,double,int); ! 91: virtual char *problem(); ! 92: virtual char *readcontrol(); ! 93: virtual char *regname(int); ! 94: virtual char *reopen(char*,char*); ! 95: virtual char *resources(); ! 96: virtual char *run(); ! 97: virtual char *step(long=0,long=0); ! 98: virtual char *popcallstack(); ! 99: virtual char *stepprolog(); ! 100: virtual char *stop(); ! 101: virtual char *specialop(char*); ! 102: virtual int event(); ! 103: virtual int online(); ! 104: virtual long regloc(int,int=0); ! 105: virtual void close(); ! 106: virtual long apforcall(int); ! 107: virtual char *docall(long,int); ! 108: virtual long returnregloc(); ! 109: virtual char *regpoke(int r,long l); ! 110: virtual long regpeek(int r); ! 111: virtual long fp(); ! 112: virtual long sp(); ! 113: virtual long pc(); ! 114: virtual long ap(); ! 115: virtual void slavedriver(Core*); ! 116: virtual int nregs(); ! 117: }; ! 118: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.