1*0Sstevel@tonic-gate /* EXTERN.h 2*0Sstevel@tonic-gate * 3*0Sstevel@tonic-gate * Copyright (C) 1991, 1992, 1993, 1995, 1996, 1997, 1998, 1999, 4*0Sstevel@tonic-gate * 2000, 2001, by Larry Wall and others 5*0Sstevel@tonic-gate * 6*0Sstevel@tonic-gate * You may distribute under the terms of either the GNU General Public 7*0Sstevel@tonic-gate * License or the Artistic License, as specified in the README file. 8*0Sstevel@tonic-gate * 9*0Sstevel@tonic-gate */ 10*0Sstevel@tonic-gate 11*0Sstevel@tonic-gate /* 12*0Sstevel@tonic-gate * EXT designates a global var which is defined in perl.h 13*0Sstevel@tonic-gate * dEXT designates a global var which is defined in another 14*0Sstevel@tonic-gate * file, so we can't count on finding it in perl.h 15*0Sstevel@tonic-gate * (this practice should be avoided). 16*0Sstevel@tonic-gate */ 17*0Sstevel@tonic-gate #undef EXT 18*0Sstevel@tonic-gate #undef dEXT 19*0Sstevel@tonic-gate #undef EXTCONST 20*0Sstevel@tonic-gate #undef dEXTCONST 21*0Sstevel@tonic-gate #if defined(VMS) && !defined(__GNUC__) 22*0Sstevel@tonic-gate /* Suppress portability warnings from DECC for VMS-specific extensions */ 23*0Sstevel@tonic-gate # ifdef __DECC 24*0Sstevel@tonic-gate # pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT) 25*0Sstevel@tonic-gate # endif 26*0Sstevel@tonic-gate # define EXT globalref 27*0Sstevel@tonic-gate # define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare 28*0Sstevel@tonic-gate # define EXTCONST globalref 29*0Sstevel@tonic-gate # define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly 30*0Sstevel@tonic-gate #else 31*0Sstevel@tonic-gate # if defined(WIN32) && !defined(PERL_STATIC_SYMS) 32*0Sstevel@tonic-gate # ifdef PERLDLL 33*0Sstevel@tonic-gate # define EXT extern __declspec(dllexport) 34*0Sstevel@tonic-gate # define dEXT 35*0Sstevel@tonic-gate # define EXTCONST extern __declspec(dllexport) const 36*0Sstevel@tonic-gate # define dEXTCONST const 37*0Sstevel@tonic-gate # else 38*0Sstevel@tonic-gate # define EXT extern __declspec(dllimport) 39*0Sstevel@tonic-gate # define dEXT 40*0Sstevel@tonic-gate # define EXTCONST extern __declspec(dllimport) const 41*0Sstevel@tonic-gate # define dEXTCONST const 42*0Sstevel@tonic-gate # endif 43*0Sstevel@tonic-gate # else 44*0Sstevel@tonic-gate # if defined(__CYGWIN__) && defined(USEIMPORTLIB) 45*0Sstevel@tonic-gate # define EXT extern __declspec(dllimport) 46*0Sstevel@tonic-gate # define dEXT 47*0Sstevel@tonic-gate # define EXTCONST extern __declspec(dllimport) const 48*0Sstevel@tonic-gate # define dEXTCONST const 49*0Sstevel@tonic-gate # else 50*0Sstevel@tonic-gate # define EXT extern 51*0Sstevel@tonic-gate # define dEXT 52*0Sstevel@tonic-gate # define EXTCONST extern const 53*0Sstevel@tonic-gate # define dEXTCONST const 54*0Sstevel@tonic-gate # endif 55*0Sstevel@tonic-gate # endif 56*0Sstevel@tonic-gate #endif 57*0Sstevel@tonic-gate 58*0Sstevel@tonic-gate #undef INIT 59*0Sstevel@tonic-gate #define INIT(x) 60*0Sstevel@tonic-gate 61*0Sstevel@tonic-gate #undef DOINIT 62