[Python-checkins] r77642 - python/branches/py3k-cdecimal/Modules/cdecimal/mpdecimal64.h
stefan.krah
python-checkins at python.org
Thu Jan 21 16:25:08 CET 2010
Author: stefan.krah
Date: Thu Jan 21 16:25:07 2010
New Revision: 77642
Log:
Enable CONFIG_32+ANSI on 64-bit platforms.
Modified:
python/branches/py3k-cdecimal/Modules/cdecimal/mpdecimal64.h
Modified: python/branches/py3k-cdecimal/Modules/cdecimal/mpdecimal64.h
==============================================================================
--- python/branches/py3k-cdecimal/Modules/cdecimal/mpdecimal64.h (original)
+++ python/branches/py3k-cdecimal/Modules/cdecimal/mpdecimal64.h Thu Jan 21 16:25:07 2010
@@ -44,11 +44,15 @@
#define MPD_BITS_PER_UINT 64
typedef uint64_t mpd_uint_t; /* unsigned mod type */
+/* enable CONFIG_32+ANSI on 64-bit platforms without resorting to -m32 */
+#define MPD_SIZE_MAX SIZE_MAX
+typedef size_t mpd_size_t; /* unsigned size type */
+
/* type for exp, digits, len, prec */
#define MPD_SSIZE_MAX INT64_MAX
#define MPD_SSIZE_MIN INT64_MIN
typedef int64_t mpd_ssize_t;
-#define mpd_strtossize strtoll
+#define _mpd_strtossize strtoll
/* decimal arithmetic */
#define MPD_RADIX 10000000000000000000ULL /* 10**19 */
@@ -65,13 +69,11 @@
#define MPD_MIN_ETINY (MPD_MIN_EMIN-(MPD_MAX_PREC-1))
#define MPD_EXP_INF (MPD_ELIMIT+1)
#define MPD_EXP_CLAMP (2*MPD_MIN_ETINY)
+#define MPD_MAXIMPORT 105263157894736842L /* (2*MPD_MAX_PREC)/MPD_RDIGITS */
-#if SIZE_MAX < MPD_SSIZE_MAX
- #error "unsupported platform: need size_t >= mpd_ssize_t"
-#endif
-#if MPD_SSIZE_MAX > MPD_UINT_MAX
- #error "unsupported platform: need mpd_ssize_t <= mpd_uint_t"
+#if MPD_SIZE_MAX != MPD_UINT_MAX
+ #error "unsupported platform: need mpd_size_t == mpd_uint_t"
#endif
@@ -384,12 +386,12 @@
size_t mpd_sizeinbase(mpd_t *a, uint32_t base);
-int mpd_qimport_u16(mpd_t *result, const uint16_t *srcdata, size_t srclen,
- uint8_t srcsign, uint32_t base,
- const mpd_context_t *ctx, uint32_t *status);
-int mpd_qimport_u32(mpd_t *result, const uint32_t *srcdata, size_t srclen,
- uint8_t srcsign, uint32_t base,
- const mpd_context_t *ctx, uint32_t *status);
+void mpd_qimport_u16(mpd_t *result, const uint16_t *srcdata, size_t srclen,
+ uint8_t srcsign, uint32_t srcbase,
+ const mpd_context_t *ctx, uint32_t *status);
+void mpd_qimport_u32(mpd_t *result, const uint32_t *srcdata, size_t srclen,
+ uint8_t srcsign, uint32_t srcbase,
+ const mpd_context_t *ctx, uint32_t *status);
size_t mpd_qexport_u16(uint16_t *rdata, size_t rlen, uint32_t base,
const mpd_t *src, uint32_t *status);
size_t mpd_qexport_u32(uint32_t *rdata, size_t rlen, uint32_t base,
@@ -500,19 +502,19 @@
void *mpd_callocfunc_em(size_t nmemb, size_t size);
-void *mpd_alloc(size_t nmemb, size_t size);
-void *mpd_calloc(size_t nmemb, size_t size);
-void *mpd_realloc(void *ptr, size_t nmemb, size_t size, uint8_t *err);
-void *mpd_sh_alloc(size_t struct_size, size_t nmemb, size_t size);
-void *mpd_sh_calloc(size_t struct_size, size_t nmemb, size_t size);
-void *mpd_sh_realloc(void *ptr, size_t struct_size, size_t nmemb, size_t size, uint8_t *err);
+void *mpd_alloc(mpd_size_t nmemb, mpd_size_t size);
+void *mpd_calloc(mpd_size_t nmemb, mpd_size_t size);
+void *mpd_realloc(void *ptr, mpd_size_t nmemb, mpd_size_t size, uint8_t *err);
+void *mpd_sh_alloc(mpd_size_t struct_size, mpd_size_t nmemb, mpd_size_t size);
+void *mpd_sh_calloc(mpd_size_t struct_size, mpd_size_t nmemb, mpd_size_t size);
+void *mpd_sh_realloc(void *ptr, mpd_size_t struct_size, mpd_size_t nmemb, mpd_size_t size, uint8_t *err);
mpd_t *mpd_qnew(void);
mpd_t *mpd_new(mpd_context_t *ctx);
mpd_t *mpd_qnew_size(mpd_ssize_t size);
void mpd_del(mpd_t *dec);
-void mpd_uint_zero(mpd_uint_t *dest, size_t len);
+void mpd_uint_zero(mpd_uint_t *dest, mpd_size_t len);
int mpd_qresize(mpd_t *result, mpd_ssize_t size, uint32_t *status);
int mpd_qresize_zero(mpd_t *result, mpd_ssize_t size, uint32_t *status);
void mpd_minalloc(mpd_t *result);
More information about the Python-checkins
mailing list