# define htovs(x) vtohs(x)
# endif
/* otherwise default to functions in util.c */
+#ifndef htovs
+short htovs(short n);
+short vtohs(short n);
+long htovl(long n);
+long vtohl(long n);
+#endif
#endif
/* *MAX Plus 1. A floating point value.
END_EXTERN_C
struct am_table {
- long was_ok_sub;
+ U32 was_ok_sub;
long was_ok_am;
U32 flags;
CV* table[NofAMmeth];
long fallback;
};
struct am_table_short {
- long was_ok_sub;
+ U32 was_ok_sub;
long was_ok_am;
U32 flags;
};
# ifdef __hpux
# define strtoll __strtoll /* secret handshake */
# endif
+# ifdef WIN64
+# define strtoll _strtoi64 /* secret handshake */
+# endif
# if !defined(Strtol) && defined(HAS_STRTOLL)
# define Strtol strtoll
# endif
* (as is done for Atoul(), see below) but for backward compatibility
* we just assume atol(). */
# if defined(USE_64_BIT_INT) && defined(IV_IS_QUAD) && QUADKIND == QUAD_IS_LONG_LONG && defined(HAS_ATOLL)
+# ifdef WIN64
+# define atoll _atoi64 /* secret handshake */
+# endif
# define Atol atoll
# else
# define Atol atol
# ifdef __hpux
# define strtoull __strtoull /* secret handshake */
# endif
+# ifdef WIN64
+# define strtoull _strtoui64 /* secret handshake */
+# endif
# if !defined(Strtoul) && defined(HAS_STRTOULL)
# define Strtoul strtoull
# endif
* Boilerplate macros for initializing and accessing interpreter-local
* data from C. All statics in extensions should be reworked to use
* this, if you want to make the extension thread-safe. See ext/re/re.xs
- * for an example of the use of these macros.
+ * for an example of the use of these macros, and perlxs.pod for more.
*
* Code that uses these macros is responsible for the following:
- * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts"
+ * 1. #define MY_CXT_KEY to a unique string, e.g.
+ * "DynaLoader::_guts" XS_VERSION
* 2. Declare a typedef named my_cxt_t that is a structure that contains
* all the data that needs to be interpreter-local.
* 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.