Clean up and document API for hashes
[p5sagit/p5-mst-13.2.git] / EXTERN.h
index 765c558..5741fbf 100644 (file)
--- a/EXTERN.h
+++ b/EXTERN.h
@@ -7,8 +7,27 @@
  *
  */
 
+/*
+ * EXT  designates a global var which is defined in perl.h
+ * dEXT designates a global var which is defined in another
+ *      file, so we can't count on finding it in perl.h
+ *      (this practice should be avoided).
+ */
 #undef EXT
-#define EXT extern
+#undef dEXT
+#undef EXTCONST
+#undef dEXTCONST
+#if defined(VMS) && !defined(__GNUC__)
+#  define EXT globalref
+#  define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
+#  define EXTCONST globalref
+#  define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
+#else
+#  define EXT extern
+#  define dEXT
+#  define EXTCONST extern const
+#  define dEXTCONST const
+#endif
 
 #undef INIT
 #define INIT(x)