home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1938 / pmckpt.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-28  |  1.1 KB  |  35 lines

  1. #ifndef PMCKPT_H
  2. #define PMCKPT_H
  3.  
  4. extern void ckpt_stack_restore();
  5. extern void ckpt_data_restore();
  6. extern void ckpt_heap_restore();
  7. extern void ckpt_save();
  8. extern void ckpt_increment();
  9. extern void ckpt_schedule();
  10. extern void ckpt_init();
  11. extern void ckpt_set();
  12. extern char *ckpt_restore;
  13. extern int ckpt_point;
  14.  
  15. #define CKPT_HEAD ckpt_failure
  16. #define CKPT_SPOT ckpt_failure
  17.  
  18. #define main ckpt_main
  19.  
  20. #define CKPT_VAR1 static char CKPT_head; char CKPT_mark;
  21. #define CKPT_VAR4 static char *CKPT_pos; {
  22.  
  23. #define CKPT_POINT CKPT_pos = &CKPT_HEAD; if (ckpt_point) { char CKPT_duh; ckpt_save(&CKPT_HEAD,&CKPT_duh); ckpt_point = 0; }
  24.  
  25. #define CKPT_TOP1 if (ckpt_restore) { char CKPT_duh; ckpt_increment(&CKPT_mark,&CKPT_duh); goto CKPT_final; CKPT_spot: ckpt_stack_restore(); ckpt_restore = (char *) 0;
  26. #define CKPT_TOP4 } else { CKPT_POINT }
  27.  
  28. #define CKPT_1(foo) { static char foo; if (0) {
  29. #define CKPT_4(bar) bar: if (CKPT_pos != &CKPT_HEAD) goto CKPT_SPOT;
  30. #define CKPT_7 if (ckpt_restore == &CKPT_HEAD) { ckpt_stack_restore(); ckpt_restore = (char *) 0; } } CKPT_POINT }
  31.  
  32. #define CKPT_BOT1 } if (0) { CKPT_final: goto CKPT_SPOT; }
  33.  
  34. #endif PMCKPT_H
  35.