From: Nick Mathewson <nickm@torproject.org>
Date: Wed, 3 Feb 2010 19:37:42 +0000 (-0500)
Subject: Add EV_*_MAX macros to event2/util.h to expose limits for ev_* types.
X-Git-Tag: release-2.0.4-alpha~45
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aba1fff33a9c1060a6a721f01f4d09c884a4ed5d;p=libevent

Add EV_*_MAX macros to event2/util.h to expose limits for ev_* types.
---

diff --git a/include/event2/util.h b/include/event2/util.h
index c14783e7..1d50dd2f 100644
--- a/include/event2/util.h
+++ b/include/event2/util.h
@@ -115,20 +115,26 @@ extern "C" {
 
 #ifdef _EVENT_HAVE_UINT16_T
 #define ev_uint16_t uint16_t
+#define ev_int16_t  int16_t
 #elif defined(WIN32)
 #define ev_uint16_t unsigned short
+#define ev_int16_t  signed short
 #elif _EVENT_SIZEOF_INT == 2
 #define ev_uint16_t unsigned int
+#define ev_int16_t  signed int
 #elif _EVENT_SIZEOF_SHORT == 2
 #define ev_uint16_t unsigned short
+#define ev_int16_t  signed short
 #else
 #error "No way to define ev_uint16_t"
 #endif
 
 #ifdef _EVENT_HAVE_UINT8_T
 #define ev_uint8_t uint8_t
+#define ev_int8_t int8_t
 #else
 #define ev_uint8_t unsigned char
+#define ev_int8_t signed char
 #endif
 
 #ifdef _EVENT_HAVE_UINTPTR_T
@@ -150,6 +156,25 @@ extern "C" {
 #define ev_ssize_t ssize_t
 #endif
 
+#define EV_UINT64_MAX ((((ev_uint64_t)0xffffffffUL) << 32) | 0xffffffffUL)
+#define EV_INT64_MAX  ((((ev_int64_t) 0x7fffffffL) << 32) | 0xffffffffL)
+#define EV_UINT32_MAX ((ev_uint32_t)0xffffffffUL)
+#define EV_INT32_MAX  ((ev_int32_t) 0x7fffffffL)
+#define EV_UINT16_MAX ((ev_uint16_t)0xffffUL)
+#define EV_INT16_MAX  ((ev_int16_t) 0x7fffL)
+#define EV_UINT8_MAX 255
+#define EV_INT8_MAX  127
+
+#if _EVENT_SIZEOF_SIZE_T == 8
+#define EV_SIZE_MAX EV_UINT64_MAX
+#define EV_SSIZE_MAX EV_INT64_MAX
+#elif _EVENT_SIZEOF_SIZE_T == 4
+#define EV_SIZE_MAX EV_UINT32_MAX
+#define EV_SSIZE_MAX EV_INT32_MAX
+#else
+#error "No way to define SIZE_MAX"
+#endif
+
 #ifdef WIN32
 #define ev_socklen_t int
 #elif defined(_EVENT_socklen_t)
diff --git a/util-internal.h b/util-internal.h
index 8d1420fe..24893684 100644
--- a/util-internal.h
+++ b/util-internal.h
@@ -174,41 +174,6 @@ long _evutil_weakrand(void);
 		}							\
 	} while(0)
 
-#ifdef UINT64_MAX
-#define EV_UINT64_MAX UINT64_MAX
-#elif defined(WIN32)
-#define EV_UINT64_MAX 0xffffffffffffffffui64
-#elif _EVENT_SIZEOF_LONG_LONG == 8
-#define EV_UINT64_MAX 0xffffffffffffffffull
-#elif _EVENT_SIZEOF_LONG == 8
-#define EV_UINT64_MAX 0xfffffffffffffffful
-#else
-/* Hope for a two's complement representation */
-#define EV_UINT64_MAX ((ev_uint64_t)-1)
-#endif
-
-#ifdef UINT32_MAX
-#define EV_UINT32_MAX UINT32_MAX
-#elif defined(WIN32)
-#define EV_UINT32_MAX 0xffffffffui64
-#elif _EVENT_SIZEOF_INT == 4
-#define EV_UINT32_MAX 0xffffffffu
-#elif _EVENT_SIZEOF_LONG == 4
-#define EV_UINT32_MAX 0xfffffffful
-#else
-/* Hope for a two's complement representation */
-#define EV_UINT32_MAX ((ev_uint32_t)-1)
-#endif
-
-#if _EVENT_SIZEOF_SIZE_T == 8
-#define EV_SIZE_MAX EV_UINT64_MAX
-#elif  _EVENT_SIZEOF_SIZE_T == 4
-#define EV_SIZE_MAX EV_UINT32_MAX
-#else
-/* Hope for a two's complement representation */
-#define EV_SIZE_MAX ((size_t)-1)
-#endif
-
 /* Internal addrinfo error code.  This one is returned from only from
  * evutil_getaddrinfo_common, when we are sure that we'll have to hit a DNS
  * server. */