X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=gv.h;h=01764e3617db822e320ef059475d526653a9da85;hb=cdbd8744255340e4922b281574dca2cdb92a747b;hp=f489d2d50bf06a54bb0fe3a0b138d2223397563f;hpb=f472eb5c07ed95306a11c98250bda17aae994339;p=p5sagit%2Fp5-mst-13.2.git diff --git a/gv.h b/gv.h index f489d2d..01764e3 100644 --- a/gv.h +++ b/gv.h @@ -1,6 +1,6 @@ /* gv.h * - * Copyright (c) 1991-1999, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -34,6 +34,14 @@ struct gp { #define GvSTASH(gv) (GvXPVGV(gv)->xgv_stash) #define GvFLAGS(gv) (GvXPVGV(gv)->xgv_flags) +/* +=for apidoc Am|SV*|GvSV|GV* gv + +Return the SV from the GV. + +=cut +*/ + #define GvSV(gv) (GvGP(gv)->gp_sv) #define GvREFCNT(gv) (GvGP(gv)->gp_refcnt) #define GvIO(gv) ((gv) && SvTYPE((SV*)gv) == SVt_PVGV ? GvIOp(gv) : 0) @@ -123,6 +131,19 @@ HV *GvHVn(); #define GvIN_PAD_on(gv) (GvFLAGS(gv) |= GVf_IN_PAD) #define GvIN_PAD_off(gv) (GvFLAGS(gv) &= ~GVf_IN_PAD) +/* XXX: all GvFLAGS options are used, borrowing GvGPFLAGS for the moment */ + +#define GVf_SHARED 0x0001 +#define GvSHARED(gv) (GvGP(gv) && (GvGPFLAGS(gv) & GVf_SHARED)) +#define GvSHARED_on(gv) (GvGPFLAGS(gv) |= GVf_SHARED) +#define GvSHARED_off(gv) (GvGPFLAGS(gv) &= ~GVf_SHARED) + +#ifdef USE_ITHREADS +#define GV_SHARED_CHECK +#else +#undef GV_SHARED_CHECK +#endif + #define Nullgv Null(GV*) #define DM_UID 0x003