Annotation of researchv9/jtools/src/pi/kernproc.c, revision 1.1.1.1

1.1       root        1: #include "univ.h"
                      2: #include "process.pri"
                      3: #include "hostcore.h"
                      4: #include "master.pub"
                      5: #include "frame.pri"
                      6: #include "memory.pub"
                      7: #include "symtab.pub"
                      8: #include "symbol.h"
                      9: #include "srcdir.h"
                     10: #include "asm.pub"
                     11: #include "parse.h"
                     12: #include "expr.pub"
                     13: SRCFILE("kernproc.c")
                     14: 
                     15: char *KernProcess::kbd(char *s)
                     16: {
                     17:        Parse y(G_EXPR,0);
                     18:        Expr *e;
                     19:        Bls error;
                     20: 
                     21:        trace( "%d.kbd(%s)", this, s ); OK(0);
                     22:        if( !(e = (Expr*)y.parse(s)) )
                     23:                return sf("%s: %s", y.error, s);
                     24:        e->evaltext(globals, error);
                     25:        if( e->evalerr )
                     26:                return sf("%s: %s", s, error.text);
                     27:        ((KernCore*)core)->cs_fp = e->val.lng;
                     28:        habeascorpus(PENDING,0);
                     29:        return 0;
                     30: }
                     31: 
                     32: char *KernProcess::help()
                     33: {
                     34:        return "<expr> {start fp for callstack}";
                     35: }
                     36: 
                     37: void KernProcess::open()
                     38: {
                     39:        Menu m;
                     40:        char *error;
                     41: 
                     42:        trace("%d.open(%d)", this);     VOK;
                     43:        Process::openpad();
                     44:        if( core ) return;
                     45:        insert(ERRORKEY, "Checking dump and symbol table...");
                     46:        core = (Core*) new KernCore(this, master);
                     47:        if( error = core->open() ){
                     48:                delete core;
                     49:                core = 0;
                     50:                m.last("open system dump", (Action)&KernProcess::open, 0);
                     51:                pad->menu( m );
                     52:                insert(ERRORKEY, error);
                     53:                return;
                     54:        }
                     55:        insert(ERRORKEY, core->symtab()->warn());
                     56:        globals = new Globals(core);
                     57:        _asm = core->newAsm();
                     58:        m.last( "src text",  (Action)&KernProcess::srcfiles );  /* should check */
                     59:        m.last( "Globals",   (Action)&KernProcess::openglobals );
                     60:        m.last( "RawMemory", (Action)&KernProcess::openmemory  );
                     61:        m.last( "Assembler", (Action)&KernProcess::openasm     );
                     62:        m.last( "User Types",(Action)&KernProcess::opentypes   );
                     63:        pad->menu(m);
                     64:        pad->makecurrent();
                     65:        docycle();
                     66: }
                     67: 
                     68: Index KernProcess::carte()
                     69: {
                     70:        Menu m;
                     71:        trace( "%d.carte(%d)", this ); OK(ZIndex);
                     72:        m.last( "open system dump",  (Action)&KernProcess::open, 0 );
                     73:        return m.index();
                     74: }
                     75: 
                     76: void KernProcess::userclose()
                     77: {
                     78:        trace( "%d.userclose()", this );        VOK;
                     79:        Process::userclose();
                     80: }

unix.superglobalmegacorp.com

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