home *** CD-ROM | disk | FTP | other *** search
- /*
- Little Smalltalk, version 2
- Written by Tim Budd, Oregon State University, July 1987
- */
- /*
- constants and types used by process manager.
- See process.c and interp.c for more details.
- */
- /*
- if there are no enumerated types, make tasks simply integer constants
- */
- # ifdef NOENUMS
- # define taskType int
-
- # define sendMessageTask 1
- # define sendSuperTask 2
- # define ReturnTask 3
- # define BlockReturnTask 4
- # define BlockCreateTask 5
- # define ContextExecuteTask 6
-
- #endif
-
- # ifndef NOENUMS
-
- typedef enum {sendMessageTask, sendSuperTask, ReturnTask, BlockReturnTask,
- BlockCreateTask, ContextExecuteTask} taskType;
-
- # endif
-
- extern int finalStackTop; /* stack top when finished with interpreter */
- extern int finalByteCounter; /* bytecode counter when finished with interpreter */
- extern int argumentsOnStack; /* position of arguments on stack for mess send */
- extern object messageToSend; /* message to send */
- extern object returnedObject; /* object returned from message */
- extern taskType finalTask; /* next task to do (see below) */
- extern object creator;
-
-
- extern noreturn sendMessage(OBJ X OBJ X INT);
- extern noreturn prpush(OBJ);
-