1 ################################################################################
3 ## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
4 ## Version 2.x, Copyright (C) 2001, Paul Marquess.
5 ## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
7 ## This program is free software; you can redistribute it and/or
8 ## modify it under the same terms as Perl itself.
10 ################################################################################
43 #ifndef PERL_UCHAR_MIN
44 # define PERL_UCHAR_MIN ((unsigned char)0)
47 #ifndef PERL_UCHAR_MAX
49 # define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX)
52 # define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR)
54 # define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0)
59 #ifndef PERL_USHORT_MIN
60 # define PERL_USHORT_MIN ((unsigned short)0)
63 #ifndef PERL_USHORT_MAX
65 # define PERL_USHORT_MAX ((unsigned short)USHORT_MAX)
68 # define PERL_USHORT_MAX ((unsigned short)MAXUSHORT)
71 # define PERL_USHORT_MAX ((unsigned short)USHRT_MAX)
73 # define PERL_USHORT_MAX ((unsigned short)~(unsigned)0)
79 #ifndef PERL_SHORT_MAX
81 # define PERL_SHORT_MAX ((short)SHORT_MAX)
83 # ifdef MAXSHORT /* Often used in <values.h> */
84 # define PERL_SHORT_MAX ((short)MAXSHORT)
87 # define PERL_SHORT_MAX ((short)SHRT_MAX)
89 # define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1))
95 #ifndef PERL_SHORT_MIN
97 # define PERL_SHORT_MIN ((short)SHORT_MIN)
100 # define PERL_SHORT_MIN ((short)MINSHORT)
103 # define PERL_SHORT_MIN ((short)SHRT_MIN)
105 # define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3))
111 #ifndef PERL_UINT_MAX
113 # define PERL_UINT_MAX ((unsigned int)UINT_MAX)
116 # define PERL_UINT_MAX ((unsigned int)MAXUINT)
118 # define PERL_UINT_MAX (~(unsigned int)0)
123 #ifndef PERL_UINT_MIN
124 # define PERL_UINT_MIN ((unsigned int)0)
129 # define PERL_INT_MAX ((int)INT_MAX)
131 # ifdef MAXINT /* Often used in <values.h> */
132 # define PERL_INT_MAX ((int)MAXINT)
134 # define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1))
141 # define PERL_INT_MIN ((int)INT_MIN)
144 # define PERL_INT_MIN ((int)MININT)
146 # define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3))
151 #ifndef PERL_ULONG_MAX
153 # define PERL_ULONG_MAX ((unsigned long)ULONG_MAX)
156 # define PERL_ULONG_MAX ((unsigned long)MAXULONG)
158 # define PERL_ULONG_MAX (~(unsigned long)0)
163 #ifndef PERL_ULONG_MIN
164 # define PERL_ULONG_MIN ((unsigned long)0L)
167 #ifndef PERL_LONG_MAX
169 # define PERL_LONG_MAX ((long)LONG_MAX)
172 # define PERL_LONG_MAX ((long)MAXLONG)
174 # define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1))
179 #ifndef PERL_LONG_MIN
181 # define PERL_LONG_MIN ((long)LONG_MIN)
184 # define PERL_LONG_MIN ((long)MINLONG)
186 # define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3))
191 #if defined(HAS_QUAD) && (defined(convex) || defined(uts))
192 # ifndef PERL_UQUAD_MAX
193 # ifdef ULONGLONG_MAX
194 # define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX)
197 # define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG)
199 # define PERL_UQUAD_MAX (~(unsigned long long)0)
204 # ifndef PERL_UQUAD_MIN
205 # define PERL_UQUAD_MIN ((unsigned long long)0L)
208 # ifndef PERL_QUAD_MAX
210 # define PERL_QUAD_MAX ((long long)LONGLONG_MAX)
213 # define PERL_QUAD_MAX ((long long)MAXLONGLONG)
215 # define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1))
220 # ifndef PERL_QUAD_MIN
222 # define PERL_QUAD_MIN ((long long)LONGLONG_MIN)
225 # define PERL_QUAD_MIN ((long long)MINLONGLONG)
227 # define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3))
233 /* This is based on code from 5.003 perl.h */
236 __UNDEFINED__ IVTYPE int
237 __UNDEFINED__ IV_MIN PERL_INT_MIN
238 __UNDEFINED__ IV_MAX PERL_INT_MAX
239 __UNDEFINED__ UV_MIN PERL_UINT_MIN
240 __UNDEFINED__ UV_MAX PERL_UINT_MAX
242 __UNDEFINED__ IVSIZE INTSIZE
245 # if defined(convex) || defined(uts)
246 __UNDEFINED__ IVTYPE long long
247 __UNDEFINED__ IV_MIN PERL_QUAD_MIN
248 __UNDEFINED__ IV_MAX PERL_QUAD_MAX
249 __UNDEFINED__ UV_MIN PERL_UQUAD_MIN
250 __UNDEFINED__ UV_MAX PERL_UQUAD_MAX
252 __UNDEFINED__ IVSIZE LONGLONGSIZE
255 __UNDEFINED__ IVTYPE long
256 __UNDEFINED__ IV_MIN PERL_LONG_MIN
257 __UNDEFINED__ IV_MAX PERL_LONG_MAX
258 __UNDEFINED__ UV_MIN PERL_ULONG_MIN
259 __UNDEFINED__ UV_MAX PERL_ULONG_MAX
261 __UNDEFINED__ IVSIZE LONGSIZE
265 __UNDEFINED__ IVSIZE 8
266 __UNDEFINED__ LONGSIZE 8
267 __UNDEFINED__ PERL_QUAD_MIN IV_MIN
268 __UNDEFINED__ PERL_QUAD_MAX IV_MAX
269 __UNDEFINED__ PERL_UQUAD_MIN UV_MIN
270 __UNDEFINED__ PERL_UQUAD_MAX UV_MAX
272 __UNDEFINED__ IVTYPE long
273 __UNDEFINED__ LONGSIZE 4
274 __UNDEFINED__ IV_MIN PERL_LONG_MIN
275 __UNDEFINED__ IV_MAX PERL_LONG_MAX
276 __UNDEFINED__ UV_MIN PERL_ULONG_MIN
277 __UNDEFINED__ UV_MAX PERL_ULONG_MAX
282 # define IVSIZE LONGSIZE
284 # define IVSIZE 4 /* A bold guess, but the best we can make. */
288 __UNDEFINED__ UVTYPE unsigned IVTYPE
289 __UNDEFINED__ UVSIZE IVSIZE
296 RETVAL = IVSIZE == sizeof(IV);
303 RETVAL = UVSIZE == sizeof(UV);
310 RETVAL = sizeof(IVTYPE) == sizeof(IV);
317 RETVAL = sizeof(UVTYPE) == sizeof(UV);
323 ok(&Devel::PPPort::iv_size());
324 ok(&Devel::PPPort::uv_size());
325 ok(&Devel::PPPort::iv_type());
326 ok(&Devel::PPPort::uv_type());