|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
|
|
Packit |
7d6a7d |
## Version 2.x, Copyright (C) 2001, Paul Marquess.
|
|
Packit |
7d6a7d |
## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
## This program is free software; you can redistribute it and/or
|
|
Packit |
7d6a7d |
## modify it under the same terms as Perl itself.
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=provides
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
PERL_UCHAR_MIN
|
|
Packit |
7d6a7d |
PERL_UCHAR_MAX
|
|
Packit |
7d6a7d |
PERL_USHORT_MIN
|
|
Packit |
7d6a7d |
PERL_USHORT_MAX
|
|
Packit |
7d6a7d |
PERL_SHORT_MAX
|
|
Packit |
7d6a7d |
PERL_SHORT_MIN
|
|
Packit |
7d6a7d |
PERL_UINT_MAX
|
|
Packit |
7d6a7d |
PERL_UINT_MIN
|
|
Packit |
7d6a7d |
PERL_INT_MAX
|
|
Packit |
7d6a7d |
PERL_INT_MIN
|
|
Packit |
7d6a7d |
PERL_ULONG_MAX
|
|
Packit |
7d6a7d |
PERL_ULONG_MIN
|
|
Packit |
7d6a7d |
PERL_LONG_MAX
|
|
Packit |
7d6a7d |
PERL_LONG_MIN
|
|
Packit |
7d6a7d |
PERL_UQUAD_MAX
|
|
Packit |
7d6a7d |
PERL_UQUAD_MIN
|
|
Packit |
7d6a7d |
PERL_QUAD_MAX
|
|
Packit |
7d6a7d |
PERL_QUAD_MIN
|
|
Packit |
7d6a7d |
IVSIZE
|
|
Packit |
7d6a7d |
UVSIZE
|
|
Packit |
7d6a7d |
IVTYPE
|
|
Packit |
7d6a7d |
UVTYPE
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=implementation
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifdef I_LIMITS
|
|
Packit |
7d6a7d |
# include <limits.h>
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_UCHAR_MIN
|
|
Packit |
7d6a7d |
# define PERL_UCHAR_MIN ((unsigned char)0)
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_UCHAR_MAX
|
|
Packit |
7d6a7d |
# ifdef UCHAR_MAX
|
|
Packit |
7d6a7d |
# define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXUCHAR
|
|
Packit |
7d6a7d |
# define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0)
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_USHORT_MIN
|
|
Packit |
7d6a7d |
# define PERL_USHORT_MIN ((unsigned short)0)
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_USHORT_MAX
|
|
Packit |
7d6a7d |
# ifdef USHORT_MAX
|
|
Packit |
7d6a7d |
# define PERL_USHORT_MAX ((unsigned short)USHORT_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXUSHORT
|
|
Packit |
7d6a7d |
# define PERL_USHORT_MAX ((unsigned short)MAXUSHORT)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef USHRT_MAX
|
|
Packit |
7d6a7d |
# define PERL_USHORT_MAX ((unsigned short)USHRT_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_USHORT_MAX ((unsigned short)~(unsigned)0)
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_SHORT_MAX
|
|
Packit |
7d6a7d |
# ifdef SHORT_MAX
|
|
Packit |
7d6a7d |
# define PERL_SHORT_MAX ((short)SHORT_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXSHORT /* Often used in <values.h> */
|
|
Packit |
7d6a7d |
# define PERL_SHORT_MAX ((short)MAXSHORT)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef SHRT_MAX
|
|
Packit |
7d6a7d |
# define PERL_SHORT_MAX ((short)SHRT_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1))
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_SHORT_MIN
|
|
Packit |
7d6a7d |
# ifdef SHORT_MIN
|
|
Packit |
7d6a7d |
# define PERL_SHORT_MIN ((short)SHORT_MIN)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MINSHORT
|
|
Packit |
7d6a7d |
# define PERL_SHORT_MIN ((short)MINSHORT)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef SHRT_MIN
|
|
Packit |
7d6a7d |
# define PERL_SHORT_MIN ((short)SHRT_MIN)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3))
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_UINT_MAX
|
|
Packit |
7d6a7d |
# ifdef UINT_MAX
|
|
Packit |
7d6a7d |
# define PERL_UINT_MAX ((unsigned int)UINT_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXUINT
|
|
Packit |
7d6a7d |
# define PERL_UINT_MAX ((unsigned int)MAXUINT)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_UINT_MAX (~(unsigned int)0)
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_UINT_MIN
|
|
Packit |
7d6a7d |
# define PERL_UINT_MIN ((unsigned int)0)
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_INT_MAX
|
|
Packit |
7d6a7d |
# ifdef INT_MAX
|
|
Packit |
7d6a7d |
# define PERL_INT_MAX ((int)INT_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXINT /* Often used in <values.h> */
|
|
Packit |
7d6a7d |
# define PERL_INT_MAX ((int)MAXINT)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1))
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_INT_MIN
|
|
Packit |
7d6a7d |
# ifdef INT_MIN
|
|
Packit |
7d6a7d |
# define PERL_INT_MIN ((int)INT_MIN)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MININT
|
|
Packit |
7d6a7d |
# define PERL_INT_MIN ((int)MININT)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3))
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_ULONG_MAX
|
|
Packit |
7d6a7d |
# ifdef ULONG_MAX
|
|
Packit |
7d6a7d |
# define PERL_ULONG_MAX ((unsigned long)ULONG_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXULONG
|
|
Packit |
7d6a7d |
# define PERL_ULONG_MAX ((unsigned long)MAXULONG)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_ULONG_MAX (~(unsigned long)0)
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_ULONG_MIN
|
|
Packit |
7d6a7d |
# define PERL_ULONG_MIN ((unsigned long)0L)
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_LONG_MAX
|
|
Packit |
7d6a7d |
# ifdef LONG_MAX
|
|
Packit |
7d6a7d |
# define PERL_LONG_MAX ((long)LONG_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXLONG
|
|
Packit |
7d6a7d |
# define PERL_LONG_MAX ((long)MAXLONG)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1))
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef PERL_LONG_MIN
|
|
Packit |
7d6a7d |
# ifdef LONG_MIN
|
|
Packit |
7d6a7d |
# define PERL_LONG_MIN ((long)LONG_MIN)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MINLONG
|
|
Packit |
7d6a7d |
# define PERL_LONG_MIN ((long)MINLONG)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3))
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#if defined(HAS_QUAD) && (defined(convex) || defined(uts))
|
|
Packit |
7d6a7d |
# ifndef PERL_UQUAD_MAX
|
|
Packit |
7d6a7d |
# ifdef ULONGLONG_MAX
|
|
Packit |
7d6a7d |
# define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXULONGLONG
|
|
Packit |
7d6a7d |
# define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_UQUAD_MAX (~(unsigned long long)0)
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
# ifndef PERL_UQUAD_MIN
|
|
Packit |
7d6a7d |
# define PERL_UQUAD_MIN ((unsigned long long)0L)
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
# ifndef PERL_QUAD_MAX
|
|
Packit |
7d6a7d |
# ifdef LONGLONG_MAX
|
|
Packit |
7d6a7d |
# define PERL_QUAD_MAX ((long long)LONGLONG_MAX)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MAXLONGLONG
|
|
Packit |
7d6a7d |
# define PERL_QUAD_MAX ((long long)MAXLONGLONG)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1))
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
# ifndef PERL_QUAD_MIN
|
|
Packit |
7d6a7d |
# ifdef LONGLONG_MIN
|
|
Packit |
7d6a7d |
# define PERL_QUAD_MIN ((long long)LONGLONG_MIN)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# ifdef MINLONGLONG
|
|
Packit |
7d6a7d |
# define PERL_QUAD_MIN ((long long)MINLONGLONG)
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3))
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
/* This is based on code from 5.003 perl.h */
|
|
Packit |
7d6a7d |
#ifdef HAS_QUAD
|
|
Packit |
7d6a7d |
# ifdef cray
|
|
Packit |
7d6a7d |
__UNDEFINED__ IVTYPE int
|
|
Packit |
7d6a7d |
__UNDEFINED__ IV_MIN PERL_INT_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ IV_MAX PERL_INT_MAX
|
|
Packit |
7d6a7d |
__UNDEFINED__ UV_MIN PERL_UINT_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ UV_MAX PERL_UINT_MAX
|
|
Packit |
7d6a7d |
# ifdef INTSIZE
|
|
Packit |
7d6a7d |
__UNDEFINED__ IVSIZE INTSIZE
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# if defined(convex) || defined(uts)
|
|
Packit |
7d6a7d |
__UNDEFINED__ IVTYPE long long
|
|
Packit |
7d6a7d |
__UNDEFINED__ IV_MIN PERL_QUAD_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ IV_MAX PERL_QUAD_MAX
|
|
Packit |
7d6a7d |
__UNDEFINED__ UV_MIN PERL_UQUAD_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ UV_MAX PERL_UQUAD_MAX
|
|
Packit |
7d6a7d |
# ifdef LONGLONGSIZE
|
|
Packit |
7d6a7d |
__UNDEFINED__ IVSIZE LONGLONGSIZE
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
__UNDEFINED__ IVTYPE long
|
|
Packit |
7d6a7d |
__UNDEFINED__ IV_MIN PERL_LONG_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ IV_MAX PERL_LONG_MAX
|
|
Packit |
7d6a7d |
__UNDEFINED__ UV_MIN PERL_ULONG_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ UV_MAX PERL_ULONG_MAX
|
|
Packit |
7d6a7d |
# ifdef LONGSIZE
|
|
Packit |
7d6a7d |
__UNDEFINED__ IVSIZE LONGSIZE
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
__UNDEFINED__ IVSIZE 8
|
|
Packit |
7d6a7d |
__UNDEFINED__ LONGSIZE 8
|
|
Packit |
7d6a7d |
__UNDEFINED__ PERL_QUAD_MIN IV_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ PERL_QUAD_MAX IV_MAX
|
|
Packit |
7d6a7d |
__UNDEFINED__ PERL_UQUAD_MIN UV_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ PERL_UQUAD_MAX UV_MAX
|
|
Packit |
7d6a7d |
#else
|
|
Packit |
7d6a7d |
__UNDEFINED__ IVTYPE long
|
|
Packit |
7d6a7d |
__UNDEFINED__ LONGSIZE 4
|
|
Packit |
7d6a7d |
__UNDEFINED__ IV_MIN PERL_LONG_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ IV_MAX PERL_LONG_MAX
|
|
Packit |
7d6a7d |
__UNDEFINED__ UV_MIN PERL_ULONG_MIN
|
|
Packit |
7d6a7d |
__UNDEFINED__ UV_MAX PERL_ULONG_MAX
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifndef IVSIZE
|
|
Packit |
7d6a7d |
# ifdef LONGSIZE
|
|
Packit |
7d6a7d |
# define IVSIZE LONGSIZE
|
|
Packit |
7d6a7d |
# else
|
|
Packit |
7d6a7d |
# define IVSIZE 4 /* A bold guess, but the best we can make. */
|
|
Packit |
7d6a7d |
# endif
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__ UVTYPE unsigned IVTYPE
|
|
Packit |
7d6a7d |
__UNDEFINED__ UVSIZE IVSIZE
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=xsubs
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
IV
|
|
Packit |
7d6a7d |
iv_size()
|
|
Packit |
7d6a7d |
CODE:
|
|
Packit |
7d6a7d |
RETVAL = IVSIZE == sizeof(IV);
|
|
Packit |
7d6a7d |
OUTPUT:
|
|
Packit |
7d6a7d |
RETVAL
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
IV
|
|
Packit |
7d6a7d |
uv_size()
|
|
Packit |
7d6a7d |
CODE:
|
|
Packit |
7d6a7d |
RETVAL = UVSIZE == sizeof(UV);
|
|
Packit |
7d6a7d |
OUTPUT:
|
|
Packit |
7d6a7d |
RETVAL
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
IV
|
|
Packit |
7d6a7d |
iv_type()
|
|
Packit |
7d6a7d |
CODE:
|
|
Packit |
7d6a7d |
RETVAL = sizeof(IVTYPE) == sizeof(IV);
|
|
Packit |
7d6a7d |
OUTPUT:
|
|
Packit |
7d6a7d |
RETVAL
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
IV
|
|
Packit |
7d6a7d |
uv_type()
|
|
Packit |
7d6a7d |
CODE:
|
|
Packit |
7d6a7d |
RETVAL = sizeof(UVTYPE) == sizeof(UV);
|
|
Packit |
7d6a7d |
OUTPUT:
|
|
Packit |
7d6a7d |
RETVAL
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=tests plan => 4
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
ok(&Devel::PPPort::iv_size());
|
|
Packit |
7d6a7d |
ok(&Devel::PPPort::uv_size());
|
|
Packit |
7d6a7d |
ok(&Devel::PPPort::iv_type());
|
|
Packit |
7d6a7d |
ok(&Devel::PPPort::uv_type());
|