Attempting to add support for 64-bit platforms. (CVS 314)

FossilOrigin-Name: 03673adbfe0c8a92d79f86ddf1136736594208ad
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index 8f5481e..2a92353 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -11,7 +11,7 @@
 *************************************************************************
 ** Internal interface definitions for SQLite.
 **
-** @(#) $Id: sqliteInt.h,v 1.69 2001/11/08 00:45:21 drh Exp $
+** @(#) $Id: sqliteInt.h,v 1.70 2001/11/21 02:21:12 drh Exp $
 */
 #include "sqlite.h"
 #include "hash.h"
@@ -31,12 +31,35 @@
 #define TEMP_PAGES   25
 
 /*
-** Integers of known sizes.  These typedefs much change for architectures
-** where the sizes very.
+** Integers of known sizes.  These typedefs might change for architectures
+** where the sizes very.  Preprocessor macros are available so that the
+** types can be conveniently redefined at compile-type.  Like this:
+**
+**         cc '-DUINTPTR_TYPE=long long int' ...
 */
-typedef unsigned int u32;             /* 4-byte unsigned integer */
-typedef unsigned short int u16;       /* 2-byte unsigned integer */
-typedef unsigned char u8;             /* 1-byte unsigned integer */
+#ifndef UINT32_TYPE
+# define UINT32_TYPE unsigned int
+#endif
+#ifndef UINT16_TYPE
+# define UINT16_TYPE unsigned short int
+#endif
+#ifndef UINT8_TYPE
+# define UINT8_TYPE unsigned char
+#endif
+#ifndef INTPTR_TYPE
+# define INTPTR_TYPE int
+#endif
+typedef UINT32_TYPE u32;           /* 4-byte unsigned integer */
+typedef UINT16_TYPE u16;           /* 2-byte unsigned integer */
+typedef UINT8_TYPE u8;             /* 1-byte unsigned integer */
+typedef INTPTR_TYPE ptr;           /* Big enough to hold a pointer */
+typedef unsigned INTPTR_TYPE uptr; /* Big enough to hold a pointer */
+
+/*
+** This macro casts a pointer to an integer.  Useful for doing
+** pointer arithmetic.
+*/
+#define Addr(X)  ((uptr)X)
 
 /*
 ** The maximum number of bytes of data that can be put into a single