[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/i586-linux-thread-multi/CORE/ -> XSUB.h (source)

   1  /*    XSUB.h
   2   *
   3   *    Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
   4   *    2003, 2004, 2005, 2006, 2007 by Larry Wall and others
   5   *
   6   *    You may distribute under the terms of either the GNU General Public
   7   *    License or the Artistic License, as specified in the README file.
   8   *
   9   */
  10  
  11  #ifndef _INC_PERL_XSUB_H
  12  #define _INC_PERL_XSUB_H 1
  13  
  14  /* first, some documentation for xsubpp-generated items */
  15  
  16  /*
  17  =head1 Variables created by C<xsubpp> and C<xsubpp> internal functions
  18  
  19  =for apidoc Amn|char*|CLASS
  20  Variable which is setup by C<xsubpp> to indicate the 
  21  class name for a C++ XS constructor.  This is always a C<char*>.  See C<THIS>.
  22  
  23  =for apidoc Amn|(whatever)|RETVAL
  24  Variable which is setup by C<xsubpp> to hold the return value for an 
  25  XSUB. This is always the proper type for the XSUB. See 
  26  L<perlxs/"The RETVAL Variable">.
  27  
  28  =for apidoc Amn|(whatever)|THIS
  29  Variable which is setup by C<xsubpp> to designate the object in a C++ 
  30  XSUB.  This is always the proper type for the C++ object.  See C<CLASS> and 
  31  L<perlxs/"Using XS With C++">.
  32  
  33  =for apidoc Amn|I32|ax
  34  Variable which is setup by C<xsubpp> to indicate the stack base offset,
  35  used by the C<ST>, C<XSprePUSH> and C<XSRETURN> macros.  The C<dMARK> macro
  36  must be called prior to setup the C<MARK> variable.
  37  
  38  =for apidoc Amn|I32|items
  39  Variable which is setup by C<xsubpp> to indicate the number of 
  40  items on the stack.  See L<perlxs/"Variable-length Parameter Lists">.
  41  
  42  =for apidoc Amn|I32|ix
  43  Variable which is setup by C<xsubpp> to indicate which of an 
  44  XSUB's aliases was used to invoke it.  See L<perlxs/"The ALIAS: Keyword">.
  45  
  46  =for apidoc Am|SV*|ST|int ix
  47  Used to access elements on the XSUB's stack.
  48  
  49  =for apidoc AmU||XS
  50  Macro to declare an XSUB and its C parameter list.  This is handled by
  51  C<xsubpp>.
  52  
  53  =for apidoc Ams||dAX
  54  Sets up the C<ax> variable.
  55  This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
  56  
  57  =for apidoc Ams||dAXMARK
  58  Sets up the C<ax> variable and stack marker variable C<mark>.
  59  This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
  60  
  61  =for apidoc Ams||dITEMS
  62  Sets up the C<items> variable.
  63  This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
  64  
  65  =for apidoc Ams||dXSARGS
  66  Sets up stack and mark pointers for an XSUB, calling dSP and dMARK.
  67  Sets up the C<ax> and C<items> variables by calling C<dAX> and C<dITEMS>.
  68  This is usually handled automatically by C<xsubpp>.
  69  
  70  =for apidoc Ams||dXSI32
  71  Sets up the C<ix> variable for an XSUB which has aliases.  This is usually
  72  handled automatically by C<xsubpp>.
  73  
  74  =for apidoc Ams||dUNDERBAR
  75  Sets up the C<padoff_du> variable for an XSUB that wishes to use
  76  C<UNDERBAR>.
  77  
  78  =for apidoc AmU||UNDERBAR
  79  The SV* corresponding to the $_ variable. Works even if there
  80  is a lexical $_ in scope.
  81  
  82  =cut
  83  */
  84  
  85  #ifndef PERL_UNUSED_ARG
  86  #  if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
  87  #    include <note.h>
  88  #    define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
  89  #  else
  90  #    define PERL_UNUSED_ARG(x) ((void)x)
  91  #  endif
  92  #endif
  93  #ifndef PERL_UNUSED_VAR
  94  #  define PERL_UNUSED_VAR(x) ((void)x)
  95  #endif
  96  
  97  #define ST(off) PL_stack_base[ax + (off)]
  98  
  99  /* XSPROTO() is also used by SWIG like this:
 100   *
 101   *     typedef XSPROTO(SwigPerlWrapper);
 102   *     typedef SwigPerlWrapper *SwigPerlWrapperPtr;
 103   *
 104   * This code needs to be compilable under both C and C++.
 105   *
 106   * Don't forget to change the __attribute__unused__ version of XS()
 107   * below too if you change XSPROTO() here.
 108   */
 109  #define XSPROTO(name) void name(pTHX_ CV* cv)
 110  
 111  #undef XS
 112  #if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
 113  #  define XS(name) __declspec(dllexport) XSPROTO(name)
 114  #endif
 115  #if defined(__SYMBIAN32__)
 116  #  define XS(name) EXPORT_C XSPROTO(name)
 117  #endif
 118  #ifndef XS
 119  #  if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
 120  #    define XS(name) void name(pTHX_ CV* cv __attribute__unused__)
 121  #  else
 122  #    ifdef __cplusplus
 123  #      define XS(name) extern "C" XSPROTO(name)
 124  #    else
 125  #      define XS(name) XSPROTO(name)
 126  #    endif
 127  #  endif
 128  #endif
 129  
 130  #define dAX const I32 ax = (I32)(MARK - PL_stack_base + 1)
 131  
 132  #define dAXMARK                \
 133      I32 ax = POPMARK;    \
 134      register SV **mark = PL_stack_base + ax++
 135  
 136  #define dITEMS I32 items = (I32)(SP - MARK)
 137  
 138  #if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
 139  #  define dXSARGS \
 140      NOTE(ARGUNUSED(cv)) \
 141      dSP; dAXMARK; dITEMS
 142  #else
 143  #  define dXSARGS \
 144      dSP; dAXMARK; dITEMS
 145  #endif
 146  
 147  #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
 148                   ? PAD_SV(PL_op->op_targ) : sv_newmortal())
 149  
 150  /* Should be used before final PUSHi etc. if not in PPCODE section. */
 151  #define XSprePUSH (sp = PL_stack_base + ax - 1)
 152  
 153  #define XSANY CvXSUBANY(cv)
 154  
 155  #define dXSI32 I32 ix = XSANY.any_i32
 156  
 157  #ifdef __cplusplus
 158  #  define XSINTERFACE_CVT(ret,name) ret (*name)(...)
 159  #  define XSINTERFACE_CVT_ANON(ret) ret (*)(...)
 160  #else
 161  #  define XSINTERFACE_CVT(ret,name) ret (*name)()
 162  #  define XSINTERFACE_CVT_ANON(ret) ret (*)()
 163  #endif
 164  #define dXSFUNCTION(ret)        XSINTERFACE_CVT(ret,XSFUNCTION)
 165  #define XSINTERFACE_FUNC(ret,cv,f)     ((XSINTERFACE_CVT_ANON(ret))(f))
 166  #define XSINTERFACE_FUNC_SET(cv,f)    \
 167          CvXSUBANY(cv).any_dxptr = (void (*) (pTHX_ void*))(f)
 168  
 169  #define dUNDERBAR PADOFFSET padoff_du = find_rundefsvoffset()
 170  #define UNDERBAR ((padoff_du == NOT_IN_PAD \
 171          || PAD_COMPNAME_FLAGS_isOUR(padoff_du)) \
 172      ? DEFSV : PAD_SVl(padoff_du))
 173  
 174  /* Simple macros to put new mortal values onto the stack.   */
 175  /* Typically used to return values from XS functions.       */
 176  
 177  /*
 178  =head1 Stack Manipulation Macros
 179  
 180  =for apidoc Am|void|XST_mIV|int pos|IV iv
 181  Place an integer into the specified position C<pos> on the stack.  The
 182  value is stored in a new mortal SV.
 183  
 184  =for apidoc Am|void|XST_mNV|int pos|NV nv
 185  Place a double into the specified position C<pos> on the stack.  The value
 186  is stored in a new mortal SV.
 187  
 188  =for apidoc Am|void|XST_mPV|int pos|char* str
 189  Place a copy of a string into the specified position C<pos> on the stack. 
 190  The value is stored in a new mortal SV.
 191  
 192  =for apidoc Am|void|XST_mNO|int pos
 193  Place C<&PL_sv_no> into the specified position C<pos> on the
 194  stack.
 195  
 196  =for apidoc Am|void|XST_mYES|int pos
 197  Place C<&PL_sv_yes> into the specified position C<pos> on the
 198  stack.
 199  
 200  =for apidoc Am|void|XST_mUNDEF|int pos
 201  Place C<&PL_sv_undef> into the specified position C<pos> on the
 202  stack.
 203  
 204  =for apidoc Am|void|XSRETURN|int nitems
 205  Return from XSUB, indicating number of items on the stack.  This is usually
 206  handled by C<xsubpp>.
 207  
 208  =for apidoc Am|void|XSRETURN_IV|IV iv
 209  Return an integer from an XSUB immediately.  Uses C<XST_mIV>.
 210  
 211  =for apidoc Am|void|XSRETURN_UV|IV uv
 212  Return an integer from an XSUB immediately.  Uses C<XST_mUV>.
 213  
 214  =for apidoc Am|void|XSRETURN_NV|NV nv
 215  Return a double from an XSUB immediately.  Uses C<XST_mNV>.
 216  
 217  =for apidoc Am|void|XSRETURN_PV|char* str
 218  Return a copy of a string from an XSUB immediately.  Uses C<XST_mPV>.
 219  
 220  =for apidoc Ams||XSRETURN_NO
 221  Return C<&PL_sv_no> from an XSUB immediately.  Uses C<XST_mNO>.
 222  
 223  =for apidoc Ams||XSRETURN_YES
 224  Return C<&PL_sv_yes> from an XSUB immediately.  Uses C<XST_mYES>.
 225  
 226  =for apidoc Ams||XSRETURN_UNDEF
 227  Return C<&PL_sv_undef> from an XSUB immediately.  Uses C<XST_mUNDEF>.
 228  
 229  =for apidoc Ams||XSRETURN_EMPTY
 230  Return an empty list from an XSUB immediately.
 231  
 232  =head1 Variables created by C<xsubpp> and C<xsubpp> internal functions
 233  
 234  =for apidoc AmU||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto
 235  Used by C<xsubpp> to hook up XSUBs as Perl subs.  Adds Perl prototypes to
 236  the subs.
 237  
 238  =for apidoc AmU||XS_VERSION
 239  The version identifier for an XS module.  This is usually
 240  handled automatically by C<ExtUtils::MakeMaker>.  See C<XS_VERSION_BOOTCHECK>.
 241  
 242  =for apidoc Ams||XS_VERSION_BOOTCHECK
 243  Macro to verify that a PM module's $VERSION variable matches the XS
 244  module's C<XS_VERSION> variable.  This is usually handled automatically by
 245  C<xsubpp>.  See L<perlxs/"The VERSIONCHECK: Keyword">.
 246  
 247  =head1 Simple Exception Handling Macros
 248  
 249  =for apidoc Ams||dXCPT
 250  Set up necessary local variables for exception handling.
 251  See L<perlguts/"Exception Handling">.
 252  
 253  =for apidoc AmU||XCPT_TRY_START
 254  Starts a try block.  See L<perlguts/"Exception Handling">.
 255  
 256  =for apidoc AmU||XCPT_TRY_END
 257  Ends a try block.  See L<perlguts/"Exception Handling">.
 258  
 259  =for apidoc AmU||XCPT_CATCH
 260  Introduces a catch block.  See L<perlguts/"Exception Handling">.
 261  
 262  =for apidoc Ams||XCPT_RETHROW
 263  Rethrows a previously caught exception.  See L<perlguts/"Exception Handling">.
 264  
 265  =cut
 266  */
 267  
 268  #define XST_mIV(i,v)  (ST(i) = sv_2mortal(newSViv(v))  )
 269  #define XST_mUV(i,v)  (ST(i) = sv_2mortal(newSVuv(v))  )
 270  #define XST_mNV(i,v)  (ST(i) = sv_2mortal(newSVnv(v))  )
 271  #define XST_mPV(i,v)  (ST(i) = sv_2mortal(newSVpv(v,0)))
 272  #define XST_mPVN(i,v,n)  (ST(i) = sv_2mortal(newSVpvn(v,n)))
 273  #define XST_mNO(i)    (ST(i) = &PL_sv_no   )
 274  #define XST_mYES(i)   (ST(i) = &PL_sv_yes  )
 275  #define XST_mUNDEF(i) (ST(i) = &PL_sv_undef)
 276  
 277  #define XSRETURN(off)                    \
 278      STMT_START {                    \
 279      const IV tmpXSoff = (off);            \
 280      PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1);    \
 281      return;                        \
 282      } STMT_END
 283  
 284  #define XSRETURN_IV(v) STMT_START { XST_mIV(0,v);  XSRETURN(1); } STMT_END
 285  #define XSRETURN_UV(v) STMT_START { XST_mUV(0,v);  XSRETURN(1); } STMT_END
 286  #define XSRETURN_NV(v) STMT_START { XST_mNV(0,v);  XSRETURN(1); } STMT_END
 287  #define XSRETURN_PV(v) STMT_START { XST_mPV(0,v);  XSRETURN(1); } STMT_END
 288  #define XSRETURN_PVN(v,n) STMT_START { XST_mPVN(0,v,n);  XSRETURN(1); } STMT_END
 289  #define XSRETURN_NO    STMT_START { XST_mNO(0);    XSRETURN(1); } STMT_END
 290  #define XSRETURN_YES   STMT_START { XST_mYES(0);   XSRETURN(1); } STMT_END
 291  #define XSRETURN_UNDEF STMT_START { XST_mUNDEF(0); XSRETURN(1); } STMT_END
 292  #define XSRETURN_EMPTY STMT_START {                XSRETURN(0); } STMT_END
 293  
 294  #define newXSproto(a,b,c,d)    newXS_flags(a,b,c,d,0)
 295  
 296  #ifdef XS_VERSION
 297  #  define XS_VERSION_BOOTCHECK \
 298      STMT_START {                            \
 299      SV *_sv;                            \
 300      const char *vn = NULL, *module = SvPV_nolen_const(ST(0));    \
 301      if (items >= 2)     /* version supplied as bootstrap arg */    \
 302          _sv = ST(1);                        \
 303      else {                                \
 304          /* XXX GV_ADDWARN */                    \
 305          _sv = get_sv(Perl_form(aTHX_ "%s::%s", module,        \
 306                  vn = "XS_VERSION"), FALSE);        \
 307          if (!_sv || !SvOK(_sv))                    \
 308          _sv = get_sv(Perl_form(aTHX_ "%s::%s", module,    \
 309                      vn = "VERSION"), FALSE);        \
 310      }                                \
 311      if (_sv) {                            \
 312          SV *xssv = Perl_newSVpv(aTHX_ XS_VERSION, 0);        \
 313          xssv = new_version(xssv);                    \
 314          if ( !sv_derived_from(_sv, "version") )            \
 315          _sv = new_version(_sv);                \
 316          if ( vcmp(_sv,xssv) )                    \
 317          Perl_croak(aTHX_ "%s object version %"SVf" does not match %s%s%s%s %"SVf,\
 318                module, SVfARG(vstringify(xssv)),            \
 319                vn ? "$" : "", vn ? module : "", vn ? "::" : "",    \
 320                vn ? vn : "bootstrap parameter", SVfARG(vstringify(_sv)));\
 321      }                                                               \
 322      } STMT_END
 323  #else
 324  #  define XS_VERSION_BOOTCHECK
 325  #endif
 326  
 327  #ifdef NO_XSLOCKS
 328  #  define dXCPT             dJMPENV; int rEtV = 0
 329  #  define XCPT_TRY_START    JMPENV_PUSH(rEtV); if (rEtV == 0)
 330  #  define XCPT_TRY_END      JMPENV_POP;
 331  #  define XCPT_CATCH        if (rEtV != 0)
 332  #  define XCPT_RETHROW      JMPENV_JUMP(rEtV)
 333  #endif
 334  
 335  /* 
 336     The DBM_setFilter & DBM_ckFilter macros are only used by 
 337     the *DB*_File modules 
 338  */
 339  
 340  #define DBM_setFilter(db_type,code)                \
 341      STMT_START {                        \
 342          if (db_type)                    \
 343              RETVAL = sv_mortalcopy(db_type) ;        \
 344          ST(0) = RETVAL ;                    \
 345          if (db_type && (code == &PL_sv_undef)) {        \
 346                  SvREFCNT_dec(db_type) ;                \
 347              db_type = NULL ;                \
 348          }                            \
 349          else if (code) {                    \
 350              if (db_type)                    \
 351                  sv_setsv(db_type, code) ;            \
 352              else                        \
 353                  db_type = newSVsv(code) ;            \
 354          }                                \
 355      } STMT_END
 356  
 357  #define DBM_ckFilter(arg,type,name)                \
 358          STMT_START {                        \
 359      if (db->type) {                        \
 360          if (db->filtering) {                \
 361              croak("recursion detected in %s", name) ;    \
 362          }                                     \
 363          ENTER ;                        \
 364          SAVETMPS ;                        \
 365          SAVEINT(db->filtering) ;                \
 366          db->filtering = TRUE ;                \
 367          SAVESPTR(DEFSV) ;                    \
 368              if (name[7] == 's')                                 \
 369                  arg = newSVsv(arg);                             \
 370          DEFSV = arg ;                    \
 371          SvTEMP_off(arg) ;                    \
 372          PUSHMARK(SP) ;                    \
 373          PUTBACK ;                        \
 374          (void) perl_call_sv(db->type, G_DISCARD);         \
 375          SPAGAIN ;                        \
 376          PUTBACK ;                        \
 377          FREETMPS ;                        \
 378          LEAVE ;                        \
 379              if (name[7] == 's'){                                \
 380                  arg = sv_2mortal(arg);                          \
 381              }                                                   \
 382      } } STMT_END                                                     
 383  
 384  #if 1        /* for compatibility */
 385  #  define VTBL_sv        &PL_vtbl_sv
 386  #  define VTBL_env        &PL_vtbl_env
 387  #  define VTBL_envelem        &PL_vtbl_envelem
 388  #  define VTBL_sig        &PL_vtbl_sig
 389  #  define VTBL_sigelem        &PL_vtbl_sigelem
 390  #  define VTBL_pack        &PL_vtbl_pack
 391  #  define VTBL_packelem        &PL_vtbl_packelem
 392  #  define VTBL_dbline        &PL_vtbl_dbline
 393  #  define VTBL_isa        &PL_vtbl_isa
 394  #  define VTBL_isaelem        &PL_vtbl_isaelem
 395  #  define VTBL_arylen        &PL_vtbl_arylen
 396  #  define VTBL_glob        &PL_vtbl_glob
 397  #  define VTBL_mglob        &PL_vtbl_mglob
 398  #  define VTBL_nkeys        &PL_vtbl_nkeys
 399  #  define VTBL_taint        &PL_vtbl_taint
 400  #  define VTBL_substr        &PL_vtbl_substr
 401  #  define VTBL_vec        &PL_vtbl_vec
 402  #  define VTBL_pos        &PL_vtbl_pos
 403  #  define VTBL_bm        &PL_vtbl_bm
 404  #  define VTBL_fm        &PL_vtbl_fm
 405  #  define VTBL_uvar        &PL_vtbl_uvar
 406  #  define VTBL_defelem        &PL_vtbl_defelem
 407  #  define VTBL_regexp        &PL_vtbl_regexp
 408  #  define VTBL_regdata        &PL_vtbl_regdata
 409  #  define VTBL_regdatum        &PL_vtbl_regdatum
 410  #  ifdef USE_LOCALE_COLLATE
 411  #    define VTBL_collxfrm    &PL_vtbl_collxfrm
 412  #  endif
 413  #  define VTBL_amagic        &PL_vtbl_amagic
 414  #  define VTBL_amagicelem    &PL_vtbl_amagicelem
 415  #endif
 416  
 417  #include "perlapi.h"
 418  #ifndef PERL_MAD
 419  #  undef PL_madskills
 420  #  undef PL_xmlfp
 421  #  define PL_madskills 0
 422  #  define PL_xmlfp 0
 423  #endif
 424  
 425  #if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_GET_CONTEXT) && !defined(PERL_CORE)
 426  #  undef aTHX
 427  #  undef aTHX_
 428  #  define aTHX        PERL_GET_THX
 429  #  define aTHX_        aTHX,
 430  #endif
 431  
 432  #if defined(PERL_IMPLICIT_SYS) && !defined(PERL_CORE)
 433  #  ifndef NO_XSLOCKS
 434  # if defined (NETWARE) && defined (USE_STDIO)
 435  #    define times        PerlProc_times
 436  #    define setuid        PerlProc_setuid
 437  #    define setgid        PerlProc_setgid
 438  #    define getpid        PerlProc_getpid
 439  #    define pause        PerlProc_pause
 440  #    define exit        PerlProc_exit
 441  #    define _exit        PerlProc__exit
 442  # else
 443  #    undef closedir
 444  #    undef opendir
 445  #    undef stdin
 446  #    undef stdout
 447  #    undef stderr
 448  #    undef feof
 449  #    undef ferror
 450  #    undef fgetpos
 451  #    undef ioctl
 452  #    undef getlogin
 453  #    undef setjmp
 454  #    undef getc
 455  #    undef ungetc
 456  #    undef fileno
 457  
 458  /* Following symbols were giving redefinition errors while building extensions - sgp 17th Oct 2000 */
 459  #ifdef NETWARE
 460  #    undef readdir
 461  #    undef fstat
 462  #    undef stat
 463  #    undef longjmp
 464  #    undef endhostent
 465  #    undef endnetent
 466  #    undef endprotoent
 467  #    undef endservent
 468  #    undef gethostbyaddr
 469  #    undef gethostbyname
 470  #    undef gethostent
 471  #    undef getnetbyaddr
 472  #    undef getnetbyname
 473  #    undef getnetent
 474  #    undef getprotobyname
 475  #    undef getprotobynumber
 476  #    undef getprotoent
 477  #    undef getservbyname
 478  #    undef getservbyport
 479  #    undef getservent
 480  #    undef inet_ntoa
 481  #    undef sethostent
 482  #    undef setnetent
 483  #    undef setprotoent
 484  #    undef setservent
 485  #endif    /* NETWARE */
 486  
 487  #    undef  socketpair
 488  
 489  #    define mkdir        PerlDir_mkdir
 490  #    define chdir        PerlDir_chdir
 491  #    define rmdir        PerlDir_rmdir
 492  #    define closedir        PerlDir_close
 493  #    define opendir        PerlDir_open
 494  #    define readdir        PerlDir_read
 495  #    define rewinddir        PerlDir_rewind
 496  #    define seekdir        PerlDir_seek
 497  #    define telldir        PerlDir_tell
 498  #    define putenv        PerlEnv_putenv
 499  #    define getenv        PerlEnv_getenv
 500  #    define uname        PerlEnv_uname
 501  #    define stdin        PerlSIO_stdin
 502  #    define stdout        PerlSIO_stdout
 503  #    define stderr        PerlSIO_stderr
 504  #    define fopen        PerlSIO_fopen
 505  #    define fclose        PerlSIO_fclose
 506  #    define feof        PerlSIO_feof
 507  #    define ferror        PerlSIO_ferror
 508  #    define clearerr        PerlSIO_clearerr
 509  #    define getc        PerlSIO_getc
 510  #    define fputc        PerlSIO_fputc
 511  #    define fputs        PerlSIO_fputs
 512  #    define fflush        PerlSIO_fflush
 513  #    define ungetc        PerlSIO_ungetc
 514  #    define fileno        PerlSIO_fileno
 515  #    define fdopen        PerlSIO_fdopen
 516  #    define freopen        PerlSIO_freopen
 517  #    define fread        PerlSIO_fread
 518  #    define fwrite        PerlSIO_fwrite
 519  #    define setbuf        PerlSIO_setbuf
 520  #    define setvbuf        PerlSIO_setvbuf
 521  #    define setlinebuf        PerlSIO_setlinebuf
 522  #    define stdoutf        PerlSIO_stdoutf
 523  #    define vfprintf        PerlSIO_vprintf
 524  #    define ftell        PerlSIO_ftell
 525  #    define fseek        PerlSIO_fseek
 526  #    define fgetpos        PerlSIO_fgetpos
 527  #    define fsetpos        PerlSIO_fsetpos
 528  #    define frewind        PerlSIO_rewind
 529  #    define tmpfile        PerlSIO_tmpfile
 530  #    define access        PerlLIO_access
 531  #    define chmod        PerlLIO_chmod
 532  #    define chsize        PerlLIO_chsize
 533  #    define close        PerlLIO_close
 534  #    define dup            PerlLIO_dup
 535  #    define dup2        PerlLIO_dup2
 536  #    define flock        PerlLIO_flock
 537  #    define fstat        PerlLIO_fstat
 538  #    define ioctl        PerlLIO_ioctl
 539  #    define isatty        PerlLIO_isatty
 540  #    define link                PerlLIO_link
 541  #    define lseek        PerlLIO_lseek
 542  #    define lstat        PerlLIO_lstat
 543  #    define mktemp        PerlLIO_mktemp
 544  #    define open        PerlLIO_open
 545  #    define read        PerlLIO_read
 546  #    define rename        PerlLIO_rename
 547  #    define setmode        PerlLIO_setmode
 548  #    define stat(buf,sb)    PerlLIO_stat(buf,sb)
 549  #    define tmpnam        PerlLIO_tmpnam
 550  #    define umask        PerlLIO_umask
 551  #    define unlink        PerlLIO_unlink
 552  #    define utime        PerlLIO_utime
 553  #    define write        PerlLIO_write
 554  #    define malloc        PerlMem_malloc
 555  #    define realloc        PerlMem_realloc
 556  #    define free        PerlMem_free
 557  #    define abort        PerlProc_abort
 558  #    define exit        PerlProc_exit
 559  #    define _exit        PerlProc__exit
 560  #    define execl        PerlProc_execl
 561  #    define execv        PerlProc_execv
 562  #    define execvp        PerlProc_execvp
 563  #    define getuid        PerlProc_getuid
 564  #    define geteuid        PerlProc_geteuid
 565  #    define getgid        PerlProc_getgid
 566  #    define getegid        PerlProc_getegid
 567  #    define getlogin        PerlProc_getlogin
 568  #    define kill        PerlProc_kill
 569  #    define killpg        PerlProc_killpg
 570  #    define pause        PerlProc_pause
 571  #    define popen        PerlProc_popen
 572  #    define pclose        PerlProc_pclose
 573  #    define pipe        PerlProc_pipe
 574  #    define setuid        PerlProc_setuid
 575  #    define setgid        PerlProc_setgid
 576  #    define sleep        PerlProc_sleep
 577  #    define times        PerlProc_times
 578  #    define wait        PerlProc_wait
 579  #    define setjmp        PerlProc_setjmp
 580  #    define longjmp        PerlProc_longjmp
 581  #    define signal        PerlProc_signal
 582  #    define getpid        PerlProc_getpid
 583  #    define gettimeofday    PerlProc_gettimeofday
 584  #    define htonl        PerlSock_htonl
 585  #    define htons        PerlSock_htons
 586  #    define ntohl        PerlSock_ntohl
 587  #    define ntohs        PerlSock_ntohs
 588  #    define accept        PerlSock_accept
 589  #    define bind        PerlSock_bind
 590  #    define connect        PerlSock_connect
 591  #    define endhostent        PerlSock_endhostent
 592  #    define endnetent        PerlSock_endnetent
 593  #    define endprotoent        PerlSock_endprotoent
 594  #    define endservent        PerlSock_endservent
 595  #    define gethostbyaddr    PerlSock_gethostbyaddr
 596  #    define gethostbyname    PerlSock_gethostbyname
 597  #    define gethostent        PerlSock_gethostent
 598  #    define gethostname        PerlSock_gethostname
 599  #    define getnetbyaddr    PerlSock_getnetbyaddr
 600  #    define getnetbyname    PerlSock_getnetbyname
 601  #    define getnetent        PerlSock_getnetent
 602  #    define getpeername        PerlSock_getpeername
 603  #    define getprotobyname    PerlSock_getprotobyname
 604  #    define getprotobynumber    PerlSock_getprotobynumber
 605  #    define getprotoent        PerlSock_getprotoent
 606  #    define getservbyname    PerlSock_getservbyname
 607  #    define getservbyport    PerlSock_getservbyport
 608  #    define getservent        PerlSock_getservent
 609  #    define getsockname        PerlSock_getsockname
 610  #    define getsockopt        PerlSock_getsockopt
 611  #    define inet_addr        PerlSock_inet_addr
 612  #    define inet_ntoa        PerlSock_inet_ntoa
 613  #    define listen        PerlSock_listen
 614  #    define recv        PerlSock_recv
 615  #    define recvfrom        PerlSock_recvfrom
 616  #    define select        PerlSock_select
 617  #    define send        PerlSock_send
 618  #    define sendto        PerlSock_sendto
 619  #    define sethostent        PerlSock_sethostent
 620  #    define setnetent        PerlSock_setnetent
 621  #    define setprotoent        PerlSock_setprotoent
 622  #    define setservent        PerlSock_setservent
 623  #    define setsockopt        PerlSock_setsockopt
 624  #    define shutdown        PerlSock_shutdown
 625  #    define socket        PerlSock_socket
 626  #    define socketpair        PerlSock_socketpair
 627  #    endif    /* NETWARE && USE_STDIO */
 628  
 629  #    ifdef USE_SOCKETS_AS_HANDLES
 630  #      undef fd_set
 631  #      undef FD_SET
 632  #      undef FD_CLR
 633  #      undef FD_ISSET
 634  #      undef FD_ZERO
 635  #      define fd_set        Perl_fd_set
 636  #      define FD_SET(n,p)    PERL_FD_SET(n,p)
 637  #      define FD_CLR(n,p)    PERL_FD_CLR(n,p)
 638  #      define FD_ISSET(n,p)    PERL_FD_ISSET(n,p)
 639  #      define FD_ZERO(p)    PERL_FD_ZERO(p)
 640  #    endif    /* USE_SOCKETS_AS_HANDLES */
 641  
 642  #  endif  /* NO_XSLOCKS */
 643  #endif  /* PERL_IMPLICIT_SYS && !PERL_CORE */
 644  
 645  #endif /* _INC_PERL_XSUB_H */        /* include guard */
 646  
 647  /*
 648   * Local variables:
 649   * c-indentation-style: bsd
 650   * c-basic-offset: 4
 651   * indent-tabs-mode: t
 652   * End:
 653   *
 654   * ex: set ts=8 sts=4 sw=4 noet:
 655   */


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1