home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_08_11 / 8n11065b < prev    next >
Text File  |  1990-07-27  |  943b  |  36 lines

  1. // npx.hpp - Non-Preemptive eXecutive Header
  2. //           Copyright 1990 by Cnapse
  3. //           Written by: M. de Champlain
  4.  
  5. #include "std.h"
  6. #include "list.h"
  7.  
  8. typedef word   *reg;
  9. typedef enum { TERMINATED, READY, RUNNING, SUSPENDED } taskState;
  10.  
  11. class Task {
  12. friend class StateQ;
  13. friend class ReadyQ;
  14.     LINK       n;
  15.     reg        sp;
  16.     word      *stackBase;
  17.     taskState  state;
  18.     void      (*taskStartingAddress)();
  19.     word       stackSizeInBytes;
  20.     Task      *self;
  21.     Task      *parent;
  22.     void       Schedule(void); 
  23. public:
  24.     Task(void  (*task)(), word stackSize) { taskStartingAddress = task;
  25.                                             stackSizeInBytes    = stackSize; }
  26.     Task *Start(void);
  27.     Task *Self(void);
  28.     Task *Parent(void);
  29.     void  ReSchedule(void);
  30.     void  Terminate(Task *id);
  31.     void  Suspend(Task *id);
  32.     void  Resume(Task *id);
  33. };
  34.  
  35. extern Task *running;
  36.