home *** CD-ROM | disk | FTP | other *** search
- #define CS_MAXARGS 8
- class Callstate {
- PFany cs_func; // what we should call
- int cs_argc; // number of longwords to call
- Objany cs_obj; // "this" arg (vax callg needs it here)
- int cs_argvs[CS_MAXARGS]; // longwords to push on the call
- int *cs_argvd; // if we need more than
- // MAXARGS, shmalloc here.
- int cs_len; // how much space available (in words)
- public:
- Callstate()
- {;} // satisfy compiler
- ~Callstate();
- inline void init();
- void reinit() // do nothing
- {;}
- void set(PFany f, int argc, int* argv);
- void call(int *sp = 0, Objany o = 0);
- void print(ostream& = cout);
- friend ostream& operator<<(ostream&, Callstate&);
- };
-
-
-
- //
- // We don't want to have a constructor here, cuz it will get automatically
- // called by Thread constructor, even when we are reusing old ones.
- // The whole set "secret" mechanisms that initialize constructors are really
- // a pain.
- //
- inline void
- Callstate::init()
- {
- cs_len = CS_MAXARGS; // storage optimized for this
- cs_argvd = 0;
- }
-
-