home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Applications / MacPerl 5.0.3 / MacPerl Source ƒ / Perl5 / XSUB.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-26  |  577 b   |  23 lines  |  [TEXT/MPS ]

  1. #define ST(off) stack_base[ax + off]
  2.  
  3. #ifdef CAN_PROTOTYPE
  4. #define XS(name) void name(CV* cv)
  5. #else
  6. #define XS(name) void name(cv) CV* cv;
  7. #endif
  8.  
  9. #define dXSARGS                \
  10.     dSP; dMARK;            \
  11.     I32 ax = mark - stack_base + 1;    \
  12.     I32 items = sp - mark
  13.  
  14. #define XSANY CvXSUBANY(cv)
  15.  
  16. #define dXSI32 I32 ix = XSANY.any_i32
  17.  
  18. #define XSRETURN(off) stack_sp = stack_base + ax + ((off) - 1); return
  19.  
  20. #define XSRETURNNO    ST(0)=sv_mortalcopy(&sv_no); XSRETURN(1)
  21. #define XSRETURNYES   ST(0)=sv_mortalcopy(&sv_yes); XSRETURN(1)
  22. #define XSRETURNUNDEF ST(0)=sv_mortalcopy(&sv_undef); XSRETURN(1)
  23.