under dramatic changes...
This commit is contained in:
15
include/h2/cmn/str-priv.h
Normal file
15
include/h2/cmn/str-priv.h
Normal file
@ -0,0 +1,15 @@
|
||||
/* This is a private header. */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int H2_XFUN(strcmp) (const h2_xchar_t* str1, const h2_xchar_t* str2);
|
||||
h2_size_t H2_XFUN(strcpy) (h2_xchar_t* dst, const h2_xchar_t* src);
|
||||
h2_size_t H2_XFUN(strfmc) (h2_xchar_t* buf, const h2_xchar_t* fmt, const h2_xchar_t* str[]);
|
||||
h2_size_t H2_XFUN(strlen) (const h2_xchar_t* str);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
36
include/h2/cmn/str.h
Normal file
36
include/h2/cmn/str.h
Normal file
@ -0,0 +1,36 @@
|
||||
#ifndef _H2_STR_H_
|
||||
#define _H2_STR_H_
|
||||
|
||||
#include <h2/types.h>
|
||||
#include <h2/macros.h>
|
||||
|
||||
#if defined(H2_ENABLE_MCHAR)
|
||||
# define h2_xchar_t h2_mchar_t
|
||||
# define H2_XFUN(x) H2_FUN_M(x)
|
||||
# include "str-priv.h"
|
||||
# undef h2_xchar_t
|
||||
# undef H2_XFUN
|
||||
#endif
|
||||
|
||||
#if defined(H2_ENABLE_WCHAR)
|
||||
# define h2_xchar_t h2_wchar_t
|
||||
# define H2_XFUN(x) H2_FUN_W(x)
|
||||
# include "str-priv.h"
|
||||
# undef h2_xchar_t
|
||||
# undef H2_XFUN
|
||||
#endif
|
||||
|
||||
#if defined(H2_ENABLE_WWCHAR)
|
||||
# define h2_xchar_t h2_wwchar_t
|
||||
# define H2_XFUN(x) H2_FUN_WW(x)
|
||||
# include "str-priv.h"
|
||||
# undef h2_xchar_t
|
||||
# undef H2_XFUN
|
||||
#endif
|
||||
|
||||
#define h2_strcmp H2_FUN(strcmp)
|
||||
#define h2_strcpy H2_FUN(strcpy)
|
||||
#define h2_strfmc H2_FUN(strfmc)
|
||||
#define h2_strlen H2_FUN(strlen)
|
||||
|
||||
#endif
|
109
include/h2/cmn/utf8.h
Normal file
109
include/h2/cmn/utf8.h
Normal file
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* $Id$
|
||||
*
|
||||
Copyright 2006-2014 Chung, Hyung-Hwan.
|
||||
This file is part of H2.
|
||||
|
||||
H2 is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation, either version 3 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
H2 is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with H2. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _H2_CMN_UTF8_H_
|
||||
#define _H2_CMN_UTF8_H_
|
||||
|
||||
#include <h2/types.h>
|
||||
#include <h2/macros.h>
|
||||
|
||||
/** \file
|
||||
* This file provides functions, types, macros for utf8 conversion.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The H2_UTF8LEN_MAX macro defines the maximum number of bytes
|
||||
* needed to form a single unicode character.
|
||||
*/
|
||||
#if H2_SIZEOF_WXCHAR_T == 2
|
||||
# define H2_UTF8LEN_MAX 3
|
||||
#elif H2_SIZEOF_WXCHAR_T == 4
|
||||
# define H2_UTF8LEN_MAX 6
|
||||
#else
|
||||
# error Unsupported wide character size
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The h2_uctoutf8() function converts a unicode character to a utf8 sequence.
|
||||
* \return
|
||||
* - 0 is returned if \a uc is invalid.
|
||||
* - An integer greater than \a size is returned if the \a utf8 sequence buffer
|
||||
* is not #H2_NULL and not large enough. This integer is actually the number
|
||||
* of bytes needed.
|
||||
* - If \a utf8 is #H2_NULL, the number of bytes that would have been stored
|
||||
* into \a utf8 if it had not been #H2_NULL is returned.
|
||||
* - An integer between 1 and size inclusive is returned in all other cases.
|
||||
* \note
|
||||
* This function doesn't check invalid unicode code points and performs
|
||||
* conversion compuationally.
|
||||
*/
|
||||
h2_size_t h2_uctoutf8 (
|
||||
h2_wxchar_t uc,
|
||||
h2_mchar_t* utf8,
|
||||
h2_size_t size
|
||||
);
|
||||
|
||||
/**
|
||||
* The h2_utf8touc() function converts a utf8 sequence to a unicode character.
|
||||
* \return
|
||||
* - 0 is returned if the \a utf8 sequence is invalid.
|
||||
* - An integer greater than \a size is returned if the \a utf8 sequence is
|
||||
* not complete.
|
||||
* - An integer between 1 and size inclusive is returned in all other cases.
|
||||
*/
|
||||
h2_size_t h2_utf8touc (
|
||||
const h2_mchar_t* utf8,
|
||||
h2_size_t size,
|
||||
h2_wxchar_t* uc
|
||||
);
|
||||
|
||||
/**
|
||||
* The h2_utf8len() function scans at most \a size bytes from the \a utf8
|
||||
* sequence and returns the number of bytes needed to form a single unicode
|
||||
* character.
|
||||
* \return
|
||||
* - 0 is returned if the \a utf8 sequence is invalid.
|
||||
* - An integer greater than \a size is returned if the \a utf8 sequence is
|
||||
* not complete.
|
||||
* - An integer between 1 and size inclusive is returned in all other cases.
|
||||
*/
|
||||
h2_size_t h2_utf8len (
|
||||
const h2_mchar_t* utf8,
|
||||
h2_size_t size
|
||||
);
|
||||
|
||||
/**
|
||||
* The h2_utf8lenmax() function returns the maximum number of bytes needed
|
||||
* to form a single unicode character. Use #H2_UTF8LEN_MAX if you need a
|
||||
* compile-time constant.
|
||||
*/
|
||||
h2_size_t h2_utf8lenmax (
|
||||
void
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
947
include/h2/config.h.in
Normal file
947
include/h2/config.h.in
Normal file
@ -0,0 +1,947 @@
|
||||
/* include/h2/config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define if building universal (internal helper macro) */
|
||||
#undef AC_APPLE_UNIVERSAL_BUILD
|
||||
|
||||
/* Define h2_char_t to h2_mchar_t */
|
||||
#undef H2_CHAR_IS_MCHAR
|
||||
|
||||
/* Define h2_char_t to h2_wchar_t */
|
||||
#undef H2_CHAR_IS_WCHAR
|
||||
|
||||
/* Define h2_char_t to h2_wwchar_t */
|
||||
#undef H2_CHAR_IS_WWCHAR
|
||||
|
||||
/* use the bundled unicode routines */
|
||||
#undef H2_ENABLE_BUNDLED_UNICODE
|
||||
|
||||
/* Enable qse_mchar_t */
|
||||
#undef H2_ENABLE_MCHAR
|
||||
|
||||
/* enable h2_sed_setexectracer() */
|
||||
#undef H2_ENABLE_SED_TRACER
|
||||
|
||||
/* link modules statically into the main library */
|
||||
#undef H2_ENABLE_STATIC_MODULE
|
||||
|
||||
/* Enable qse_wchar_t */
|
||||
#undef H2_ENABLE_WCHAR
|
||||
|
||||
/* Enable qse_wwchar_t */
|
||||
#undef H2_ENABLE_WWCHAR
|
||||
|
||||
/* include more built-in cmgrs like cp949 and cp950 */
|
||||
#undef H2_ENABLE_XCMGRS
|
||||
|
||||
/* Big Endian */
|
||||
#undef H2_ENDIAN_BIG
|
||||
|
||||
/* Little Endian */
|
||||
#undef H2_ENDIAN_LITTLE
|
||||
|
||||
/* Unknown Endian */
|
||||
#undef H2_ENDIAN_UNKNOWN
|
||||
|
||||
/* MB_LEN_MAX */
|
||||
#undef H2_MBLEN_MAX
|
||||
|
||||
/* Author */
|
||||
#undef H2_PACKAGE_AUTHOR
|
||||
|
||||
/* package name */
|
||||
#undef H2_PACKAGE_NAME
|
||||
|
||||
/* Project URL */
|
||||
#undef H2_PACKAGE_URL
|
||||
|
||||
/* Package version */
|
||||
#undef H2_PACKAGE_VERSION
|
||||
|
||||
/* Major version number */
|
||||
#undef H2_PACKAGE_VERSION_MAJOR
|
||||
|
||||
/* Minor version number */
|
||||
#undef H2_PACKAGE_VERSION_MINOR
|
||||
|
||||
/* Patch level */
|
||||
#undef H2_PACKAGE_VERSION_PATCH
|
||||
|
||||
/* sizeof(char) */
|
||||
#undef H2_SIZEOF_CHAR
|
||||
|
||||
/* sizeof(double) */
|
||||
#undef H2_SIZEOF_DOUBLE
|
||||
|
||||
/* sizeof(float) */
|
||||
#undef H2_SIZEOF_FLOAT
|
||||
|
||||
/* sizeof(int) */
|
||||
#undef H2_SIZEOF_INT
|
||||
|
||||
/* sizeof(long) */
|
||||
#undef H2_SIZEOF_LONG
|
||||
|
||||
/* sizeof(long double) */
|
||||
#undef H2_SIZEOF_LONG_DOUBLE
|
||||
|
||||
/* sizeof(long long) */
|
||||
#undef H2_SIZEOF_LONG_LONG
|
||||
|
||||
/* sizeof(mbstate_t) */
|
||||
#undef H2_SIZEOF_MBSTATE_T
|
||||
|
||||
/* sizeof(off64_t) */
|
||||
#undef H2_SIZEOF_OFF64_T
|
||||
|
||||
/* sizeof(off_t) */
|
||||
#undef H2_SIZEOF_OFF_T
|
||||
|
||||
/* sizeof(short) */
|
||||
#undef H2_SIZEOF_SHORT
|
||||
|
||||
/* sizeof(struct sockaddr_in) */
|
||||
#undef H2_SIZEOF_STRUCT_SOCKADDR_IN
|
||||
|
||||
/* sizeof(struct sockaddr_in6) */
|
||||
#undef H2_SIZEOF_STRUCT_SOCKADDR_IN6
|
||||
|
||||
/* sizeof(void*) */
|
||||
#undef H2_SIZEOF_VOID_P
|
||||
|
||||
/* sizeof(wchar_t) */
|
||||
#undef H2_SIZEOF_WCHAR_T
|
||||
|
||||
/* sizeof(__float128) */
|
||||
#undef H2_SIZEOF___FLOAT128
|
||||
|
||||
/* sizeof(__int128) */
|
||||
#undef H2_SIZEOF___INT128
|
||||
|
||||
/* sizeof(__int128_t) */
|
||||
#undef H2_SIZEOF___INT128_T
|
||||
|
||||
/* sizeof(__int16) */
|
||||
#undef H2_SIZEOF___INT16
|
||||
|
||||
/* sizeof(__int32) */
|
||||
#undef H2_SIZEOF___INT32
|
||||
|
||||
/* sizeof(__int64) */
|
||||
#undef H2_SIZEOF___INT64
|
||||
|
||||
/* sizeof(__int8) */
|
||||
#undef H2_SIZEOF___INT8
|
||||
|
||||
/* use h2_fltmax_t for floating-point numbers in AWK */
|
||||
#undef H2_USE_AWK_FLTMAX
|
||||
|
||||
/* use h2_intmax_t for integers in AWK */
|
||||
#undef H2_USE_AWK_INTMAX
|
||||
|
||||
/* use the syscall() function to invoke a system call */
|
||||
#undef H2_USE_SYSCALL
|
||||
|
||||
/* Define to 1 if you have the `argz_add' function. */
|
||||
#undef HAVE_ARGZ_ADD
|
||||
|
||||
/* Define to 1 if you have the `argz_append' function. */
|
||||
#undef HAVE_ARGZ_APPEND
|
||||
|
||||
/* Define to 1 if you have the `argz_count' function. */
|
||||
#undef HAVE_ARGZ_COUNT
|
||||
|
||||
/* Define to 1 if you have the `argz_create_sep' function. */
|
||||
#undef HAVE_ARGZ_CREATE_SEP
|
||||
|
||||
/* Define to 1 if you have the <argz.h> header file. */
|
||||
#undef HAVE_ARGZ_H
|
||||
|
||||
/* Define to 1 if you have the `argz_insert' function. */
|
||||
#undef HAVE_ARGZ_INSERT
|
||||
|
||||
/* Define to 1 if you have the `argz_next' function. */
|
||||
#undef HAVE_ARGZ_NEXT
|
||||
|
||||
/* Define to 1 if you have the `argz_stringify' function. */
|
||||
#undef HAVE_ARGZ_STRINGIFY
|
||||
|
||||
/* Define to 1 if you have the `atan' function. */
|
||||
#undef HAVE_ATAN
|
||||
|
||||
/* Define to 1 if you have the `atan2' function. */
|
||||
#undef HAVE_ATAN2
|
||||
|
||||
/* Define to 1 if you have the `atan2f' function. */
|
||||
#undef HAVE_ATAN2F
|
||||
|
||||
/* Define to 1 if you have the `atan2l' function. */
|
||||
#undef HAVE_ATAN2L
|
||||
|
||||
/* Define to 1 if you have the `atan2q' function. */
|
||||
#undef HAVE_ATAN2Q
|
||||
|
||||
/* Define to 1 if you have the `atanf' function. */
|
||||
#undef HAVE_ATANF
|
||||
|
||||
/* Define to 1 if you have the `atanl' function. */
|
||||
#undef HAVE_ATANL
|
||||
|
||||
/* Define to 1 if you have the `atanq' function. */
|
||||
#undef HAVE_ATANQ
|
||||
|
||||
/* Define to 1 if you have the `backtrace' function. */
|
||||
#undef HAVE_BACKTRACE
|
||||
|
||||
/* Define to 1 if you have the `backtrace_symbols' function. */
|
||||
#undef HAVE_BACKTRACE_SYMBOLS
|
||||
|
||||
/* Define to 1 if you have the `ceil' function. */
|
||||
#undef HAVE_CEIL
|
||||
|
||||
/* Define to 1 if you have the `ceilf' function. */
|
||||
#undef HAVE_CEILF
|
||||
|
||||
/* Define to 1 if you have the `ceill' function. */
|
||||
#undef HAVE_CEILL
|
||||
|
||||
/* Define to 1 if you have the `ceilq' function. */
|
||||
#undef HAVE_CEILQ
|
||||
|
||||
/* Define to 1 if you have the `closedir' function. */
|
||||
#undef HAVE_CLOSEDIR
|
||||
|
||||
/* Define to 1 if you have the `connect' function. */
|
||||
#undef HAVE_CONNECT
|
||||
|
||||
/* Define to 1 if you have the `cos' function. */
|
||||
#undef HAVE_COS
|
||||
|
||||
/* Define to 1 if you have the `cosf' function. */
|
||||
#undef HAVE_COSF
|
||||
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
#undef HAVE_COSL
|
||||
|
||||
/* Define to 1 if you have the `cosq' function. */
|
||||
#undef HAVE_COSQ
|
||||
|
||||
/* Define to 1 if you have the <crt_externs.h> header file. */
|
||||
#undef HAVE_CRT_EXTERNS_H
|
||||
|
||||
/* Define if c++ supports namespace std. */
|
||||
#undef HAVE_CXX_NAMESPACE_STD
|
||||
|
||||
/* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if
|
||||
you don't. */
|
||||
#undef HAVE_DECL_CYGWIN_CONV_PATH
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_DIRENT_H
|
||||
|
||||
/* Define if you have the GNU dld library. */
|
||||
#undef HAVE_DLD
|
||||
|
||||
/* Define to 1 if you have the <dld.h> header file. */
|
||||
#undef HAVE_DLD_H
|
||||
|
||||
/* Define to 1 if you have the `dlerror' function. */
|
||||
#undef HAVE_DLERROR
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <dl.h> header file. */
|
||||
#undef HAVE_DL_H
|
||||
|
||||
/* Define if you have the _dyld_func_lookup function. */
|
||||
#undef HAVE_DYLD
|
||||
|
||||
/* epoll support */
|
||||
#undef HAVE_EPOLL
|
||||
|
||||
/* Define to 1 if you have the `epoll_create' function. */
|
||||
#undef HAVE_EPOLL_CREATE
|
||||
|
||||
/* Define to 1 if you have the `epoll_create1' function. */
|
||||
#undef HAVE_EPOLL_CREATE1
|
||||
|
||||
/* Define to 1 if you have the <errno.h> header file. */
|
||||
#undef HAVE_ERRNO_H
|
||||
|
||||
/* Define to 1 if the system has the type `error_t'. */
|
||||
#undef HAVE_ERROR_T
|
||||
|
||||
/* Define to 1 if you have the <execinfo.h> header file. */
|
||||
#undef HAVE_EXECINFO_H
|
||||
|
||||
/* Define to 1 if you have the `exp' function. */
|
||||
#undef HAVE_EXP
|
||||
|
||||
/* Define to 1 if you have the `expf' function. */
|
||||
#undef HAVE_EXPF
|
||||
|
||||
/* Define to 1 if you have the `expl' function. */
|
||||
#undef HAVE_EXPL
|
||||
|
||||
/* Define to 1 if you have the `expq' function. */
|
||||
#undef HAVE_EXPQ
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define to 1 if you have the `fdopendir' function. */
|
||||
#undef HAVE_FDOPENDIR
|
||||
|
||||
/* Define to 1 if you have the `floor' function. */
|
||||
#undef HAVE_FLOOR
|
||||
|
||||
/* Define to 1 if you have the `floorf' function. */
|
||||
#undef HAVE_FLOORF
|
||||
|
||||
/* Define to 1 if you have the `floorl' function. */
|
||||
#undef HAVE_FLOORL
|
||||
|
||||
/* Define to 1 if you have the `floorq' function. */
|
||||
#undef HAVE_FLOORQ
|
||||
|
||||
/* Define to 1 if you have the `fmod' function. */
|
||||
#undef HAVE_FMOD
|
||||
|
||||
/* Define to 1 if you have the `fmodf' function. */
|
||||
#undef HAVE_FMODF
|
||||
|
||||
/* Define to 1 if you have the `fmodl' function. */
|
||||
#undef HAVE_FMODL
|
||||
|
||||
/* Define to 1 if you have the `fmodq' function. */
|
||||
#undef HAVE_FMODQ
|
||||
|
||||
/* Define to 1 if you have the `fork' function. */
|
||||
#undef HAVE_FORK
|
||||
|
||||
/* Define to 1 if you have the `fstat64' function. */
|
||||
#undef HAVE_FSTAT64
|
||||
|
||||
/* Define to 1 if you have the `ftruncate64' function. */
|
||||
#undef HAVE_FTRUNCATE64
|
||||
|
||||
/* Define to 1 if you have the `getcontext' function. */
|
||||
#undef HAVE_GETCONTEXT
|
||||
|
||||
/* Define to 1 if you have the `gethostbyname' function. */
|
||||
#undef HAVE_GETHOSTBYNAME
|
||||
|
||||
/* Define to 1 if you have the `getifaddrs' function. */
|
||||
#undef HAVE_GETIFADDRS
|
||||
|
||||
/* Define to 1 if you have the `getrlimit' function. */
|
||||
#undef HAVE_GETRLIMIT
|
||||
|
||||
/* Define to 1 if you have the `gettid' function. */
|
||||
#undef HAVE_GETTID
|
||||
|
||||
/* Define to 1 if you have the <ifaddrs.h> header file. */
|
||||
#undef HAVE_IFADDRS_H
|
||||
|
||||
/* Define to 1 if you have the `if_indextoname' function. */
|
||||
#undef HAVE_IF_INDEXTONAME
|
||||
|
||||
/* Define to 1 if you have the `if_nametoindex' function. */
|
||||
#undef HAVE_IF_NAMETOINDEX
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `isblank' function. */
|
||||
#undef HAVE_ISBLANK
|
||||
|
||||
/* Define to 1 if you have the `iswblank' function. */
|
||||
#undef HAVE_ISWBLANK
|
||||
|
||||
/* Define to 1 if you have the `iswctype' function. */
|
||||
#undef HAVE_ISWCTYPE
|
||||
|
||||
/* Define to 1 if you have the `kevent' function. */
|
||||
#undef HAVE_KEVENT
|
||||
|
||||
/* Define to 1 if you have the `kqueue' function. */
|
||||
#undef HAVE_KQUEUE
|
||||
|
||||
/* Define to 1 if you have the `kqueue1' function. */
|
||||
#undef HAVE_KQUEUE1
|
||||
|
||||
/* Define if you have the libdl library or equivalent. */
|
||||
#undef HAVE_LIBDL
|
||||
|
||||
/* Define if libdlloader will be built on this platform */
|
||||
#undef HAVE_LIBDLLOADER
|
||||
|
||||
/* Define to 1 if you have the `ltdl' library (-lltdl). */
|
||||
#undef HAVE_LIBLTDL
|
||||
|
||||
/* Define to 1 if you have the <linux/ethtool.h> header file. */
|
||||
#undef HAVE_LINUX_ETHTOOL_H
|
||||
|
||||
/* Define to 1 if you have the <linux/netfilter_ipv4.h> header file. */
|
||||
#undef HAVE_LINUX_NETFILTER_IPV4_H
|
||||
|
||||
/* Define to 1 if you have the <linux/sockios.h> header file. */
|
||||
#undef HAVE_LINUX_SOCKIOS_H
|
||||
|
||||
/* Define to 1 if you have the `log' function. */
|
||||
#undef HAVE_LOG
|
||||
|
||||
/* Define to 1 if you have the `log10' function. */
|
||||
#undef HAVE_LOG10
|
||||
|
||||
/* Define to 1 if you have the `log10f' function. */
|
||||
#undef HAVE_LOG10F
|
||||
|
||||
/* Define to 1 if you have the `log10l' function. */
|
||||
#undef HAVE_LOG10L
|
||||
|
||||
/* Define to 1 if you have the `log10q' function. */
|
||||
#undef HAVE_LOG10Q
|
||||
|
||||
/* Define to 1 if you have the `logf' function. */
|
||||
#undef HAVE_LOGF
|
||||
|
||||
/* Define to 1 if you have the `logl' function. */
|
||||
#undef HAVE_LOGL
|
||||
|
||||
/* Define to 1 if you have the `logq' function. */
|
||||
#undef HAVE_LOGQ
|
||||
|
||||
/* Define to 1 if you have the `lseek64' function. */
|
||||
#undef HAVE_LSEEK64
|
||||
|
||||
/* Define to 1 if you have the `lstat64' function. */
|
||||
#undef HAVE_LSTAT64
|
||||
|
||||
/* Define this if a modern libltdl is already installed */
|
||||
#undef HAVE_LTDL
|
||||
|
||||
/* Define to 1 if you have the <mach-o/dyld.h> header file. */
|
||||
#undef HAVE_MACH_O_DYLD_H
|
||||
|
||||
/* Define to 1 if you have the `makecontext' function. */
|
||||
#undef HAVE_MAKECONTEXT
|
||||
|
||||
/* Define to 1 if you have the `mbrlen' function. */
|
||||
#undef HAVE_MBRLEN
|
||||
|
||||
/* Define to 1 if you have the `mbrtowc' function. */
|
||||
#undef HAVE_MBRTOWC
|
||||
|
||||
/* Define to 1 if you have the `mbsnrtowcs' function. */
|
||||
#undef HAVE_MBSNRTOWCS
|
||||
|
||||
/* Define to 1 if you have the `mbsrtowcs' function. */
|
||||
#undef HAVE_MBSRTOWCS
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have MPI libs and headers. */
|
||||
#undef HAVE_MPI
|
||||
|
||||
/* Define to 1 if you have the `nanosleep' function. */
|
||||
#undef HAVE_NANOSLEEP
|
||||
|
||||
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
||||
#undef HAVE_NDIR_H
|
||||
|
||||
/* Define to 1 if you have the <net/if_dl.h> header file. */
|
||||
#undef HAVE_NET_IF_DL_H
|
||||
|
||||
/* Define to 1 if you have the <net/if.h> header file. */
|
||||
#undef HAVE_NET_IF_H
|
||||
|
||||
/* Define to 1 if you have the `opendir' function. */
|
||||
#undef HAVE_OPENDIR
|
||||
|
||||
/* Define to 1 if you have the `posix_spawn' function. */
|
||||
#undef HAVE_POSIX_SPAWN
|
||||
|
||||
/* Define to 1 if you have the `pow' function. */
|
||||
#undef HAVE_POW
|
||||
|
||||
/* Define to 1 if you have the `powf' function. */
|
||||
#undef HAVE_POWF
|
||||
|
||||
/* Define to 1 if you have the `powl' function. */
|
||||
#undef HAVE_POWL
|
||||
|
||||
/* Define to 1 if you have the `powq' function. */
|
||||
#undef HAVE_POWQ
|
||||
|
||||
/* Define to 1 if you have the `prctl' function. */
|
||||
#undef HAVE_PRCTL
|
||||
|
||||
/* Define if libtool can extract symbol lists from object files. */
|
||||
#undef HAVE_PRELOADED_SYMBOLS
|
||||
|
||||
/* Define if you have POSIX threads libraries and header files. */
|
||||
#undef HAVE_PTHREAD
|
||||
|
||||
/* Have PTHREAD_PRIO_INHERIT. */
|
||||
#undef HAVE_PTHREAD_PRIO_INHERIT
|
||||
|
||||
/* Define to 1 if you have the <quadmath.h> header file. */
|
||||
#undef HAVE_QUADMATH_H
|
||||
|
||||
/* Define to 1 if you have the `quadmath_snprintf' function. */
|
||||
#undef HAVE_QUADMATH_SNPRINTF
|
||||
|
||||
/* Define to 1 if you have the `readdir' function. */
|
||||
#undef HAVE_READDIR
|
||||
|
||||
/* Define to 1 if you have the `readdir64' function. */
|
||||
#undef HAVE_READDIR64
|
||||
|
||||
/* Define to 1 if you have the `round' function. */
|
||||
#undef HAVE_ROUND
|
||||
|
||||
/* Define to 1 if you have the `roundf' function. */
|
||||
#undef HAVE_ROUNDF
|
||||
|
||||
/* Define to 1 if you have the `roundl' function. */
|
||||
#undef HAVE_ROUNDL
|
||||
|
||||
/* Define to 1 if you have the `roundq' function. */
|
||||
#undef HAVE_ROUNDQ
|
||||
|
||||
/* Define to 1 if you have the `select' function. */
|
||||
#undef HAVE_SELECT
|
||||
|
||||
/* Define to 1 if you have the `sendfile' function. */
|
||||
#undef HAVE_SENDFILE
|
||||
|
||||
/* Define to 1 if you have the `sendfile64' function. */
|
||||
#undef HAVE_SENDFILE64
|
||||
|
||||
/* Define to 1 if you have the `sendfilev' function. */
|
||||
#undef HAVE_SENDFILEV
|
||||
|
||||
/* Define to 1 if you have the `sendfilev64' function. */
|
||||
#undef HAVE_SENDFILEV64
|
||||
|
||||
/* Define to 1 if you have the `setcontext' function. */
|
||||
#undef HAVE_SETCONTEXT
|
||||
|
||||
/* Define to 1 if you have the `setrlimit' function. */
|
||||
#undef HAVE_SETRLIMIT
|
||||
|
||||
/* Define if you have the shl_load function. */
|
||||
#undef HAVE_SHL_LOAD
|
||||
|
||||
/* Define to 1 if you have the <signal.h> header file. */
|
||||
#undef HAVE_SIGNAL_H
|
||||
|
||||
/* Define to 1 if you have the `sin' function. */
|
||||
#undef HAVE_SIN
|
||||
|
||||
/* Define to 1 if you have the `sinf' function. */
|
||||
#undef HAVE_SINF
|
||||
|
||||
/* Define to 1 if you have the `sinl' function. */
|
||||
#undef HAVE_SINL
|
||||
|
||||
/* Define to 1 if you have the `sinq' function. */
|
||||
#undef HAVE_SINQ
|
||||
|
||||
/* Define it socklen_t typedef is in sys/socket.h. */
|
||||
#undef HAVE_SOCKLEN_T
|
||||
|
||||
/* Define to 1 if you have the <spawn.h> header file. */
|
||||
#undef HAVE_SPAWN_H
|
||||
|
||||
/* Define to 1 if you have the `sqrt' function. */
|
||||
#undef HAVE_SQRT
|
||||
|
||||
/* Define to 1 if you have the `sqrtf' function. */
|
||||
#undef HAVE_SQRTF
|
||||
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
#undef HAVE_SQRTL
|
||||
|
||||
/* Define to 1 if you have the `sqrtq' function. */
|
||||
#undef HAVE_SQRTQ
|
||||
|
||||
/* ssl support */
|
||||
#undef HAVE_SSL
|
||||
|
||||
/* Define to 1 if you have the `SSL_library_init' function. */
|
||||
#undef HAVE_SSL_LIBRARY_INIT
|
||||
|
||||
/* Define to 1 if you have the `stat64' function. */
|
||||
#undef HAVE_STAT64
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#undef HAVE_STDDEF_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strlcat' function. */
|
||||
#undef HAVE_STRLCAT
|
||||
|
||||
/* Define to 1 if you have the `strlcpy' function. */
|
||||
#undef HAVE_STRLCPY
|
||||
|
||||
/* Define to 1 if you have the `strtoflt128' function. */
|
||||
#undef HAVE_STRTOFLT128
|
||||
|
||||
/* Define to 1 if `d_type' is a member of `struct dirent'. */
|
||||
#undef HAVE_STRUCT_DIRENT_D_TYPE
|
||||
|
||||
/* Define to 1 if `ifr_ifindex' is a member of `struct ifreq'. */
|
||||
#undef HAVE_STRUCT_IFREQ_IFR_IFINDEX
|
||||
|
||||
/* Define to 1 if `ifr_mtu' is a member of `struct ifreq'. */
|
||||
#undef HAVE_STRUCT_IFREQ_IFR_MTU
|
||||
|
||||
/* Define to 1 if the system has the type `struct if_laddrreq'. */
|
||||
#undef HAVE_STRUCT_IF_LADDRREQ
|
||||
|
||||
/* Define to 1 if the system has the type `struct lifconf'. */
|
||||
#undef HAVE_STRUCT_LIFCONF
|
||||
|
||||
/* Define to 1 if the system has the type `struct lifreq'. */
|
||||
#undef HAVE_STRUCT_LIFREQ
|
||||
|
||||
/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */
|
||||
#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
|
||||
|
||||
/* Define to 1 if `st_birthtime' is a member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_BIRTHTIME
|
||||
|
||||
/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
|
||||
|
||||
/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
|
||||
|
||||
/* Define to 1 if `st_mtimespec.tv_nsec' is a member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC
|
||||
|
||||
/* Define to 1 if `st_mtim.tv_nsec' is a member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
|
||||
|
||||
/* Define to 1 if you have the `swapcontext' function. */
|
||||
#undef HAVE_SWAPCONTEXT
|
||||
|
||||
/* Define to 1 if you have the `sysconf' function. */
|
||||
#undef HAVE_SYSCONF
|
||||
|
||||
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_SYS_DIR_H
|
||||
|
||||
/* Define to 1 if you have the <sys/dl.h> header file. */
|
||||
#undef HAVE_SYS_DL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/epoll.h> header file. */
|
||||
#undef HAVE_SYS_EPOLL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/event.h> header file. */
|
||||
#undef HAVE_SYS_EVENT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/macstat.h> header file. */
|
||||
#undef HAVE_SYS_MACSTAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_SYS_NDIR_H
|
||||
|
||||
/* Define to 1 if you have the <sys/prctl.h> header file. */
|
||||
#undef HAVE_SYS_PRCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/resource.h> header file. */
|
||||
#undef HAVE_SYS_RESOURCE_H
|
||||
|
||||
/* Define to 1 if you have the <sys/sendfile.h> header file. */
|
||||
#undef HAVE_SYS_SENDFILE_H
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H
|
||||
|
||||
/* Define to 1 if you have the <sys/sockio.h> header file. */
|
||||
#undef HAVE_SYS_SOCKIO_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stropts.h> header file. */
|
||||
#undef HAVE_SYS_STROPTS_H
|
||||
|
||||
/* Define to 1 if you have the <sys/syscall.h> header file. */
|
||||
#undef HAVE_SYS_SYSCALL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/sysctl.h> header file. */
|
||||
#undef HAVE_SYS_SYSCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <sys/wait.h> header file. */
|
||||
#undef HAVE_SYS_WAIT_H
|
||||
|
||||
/* Define to 1 if you have the `tan' function. */
|
||||
#undef HAVE_TAN
|
||||
|
||||
/* Define to 1 if you have the `tanf' function. */
|
||||
#undef HAVE_TANF
|
||||
|
||||
/* Define to 1 if you have the `tanl' function. */
|
||||
#undef HAVE_TANL
|
||||
|
||||
/* Define to 1 if you have the `tanq' function. */
|
||||
#undef HAVE_TANQ
|
||||
|
||||
/* Define to 1 if you have the `timegm' function. */
|
||||
#undef HAVE_TIMEGM
|
||||
|
||||
/* Define to 1 if you have the `timelocal' function. */
|
||||
#undef HAVE_TIMELOCAL
|
||||
|
||||
/* Define to 1 if you have the <time.h> header file. */
|
||||
#undef HAVE_TIME_H
|
||||
|
||||
/* Define to 1 if you have the `towctrans' function. */
|
||||
#undef HAVE_TOWCTRANS
|
||||
|
||||
/* Define to 1 if you have the <uci.h> header file. */
|
||||
#undef HAVE_UCI_H
|
||||
|
||||
/* Define to 1 if you have the <ucontext.h> header file. */
|
||||
#undef HAVE_UCONTEXT_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `uselocale' function. */
|
||||
#undef HAVE_USELOCALE
|
||||
|
||||
/* Define to 1 if you have the `utime' function. */
|
||||
#undef HAVE_UTIME
|
||||
|
||||
/* Define to 1 if you have the `utimes' function. */
|
||||
#undef HAVE_UTIMES
|
||||
|
||||
/* Define to 1 if you have the <utime.h> header file. */
|
||||
#undef HAVE_UTIME_H
|
||||
|
||||
/* va_copy is available */
|
||||
#undef HAVE_VA_COPY
|
||||
|
||||
/* Define to 1 if you have the `vfork' function. */
|
||||
#undef HAVE_VFORK
|
||||
|
||||
/* Define to 1 if you have the <wchar.h> header file. */
|
||||
#undef HAVE_WCHAR_H
|
||||
|
||||
/* Define to 1 if you have the `wcrtomb' function. */
|
||||
#undef HAVE_WCRTOMB
|
||||
|
||||
/* Define to 1 if you have the `wcsnrtombs' function. */
|
||||
#undef HAVE_WCSNRTOMBS
|
||||
|
||||
/* Define to 1 if you have the `wcsrtombs' function. */
|
||||
#undef HAVE_WCSRTOMBS
|
||||
|
||||
/* Define to 1 if you have the `wctrans' function. */
|
||||
#undef HAVE_WCTRANS
|
||||
|
||||
/* Define to 1 if you have the `wctype' function. */
|
||||
#undef HAVE_WCTYPE
|
||||
|
||||
/* Define to 1 if you have the <wctype.h> header file. */
|
||||
#undef HAVE_WCTYPE_H
|
||||
|
||||
/* This value is set to 1 to indicate that the system argz facility works */
|
||||
#undef HAVE_WORKING_ARGZ
|
||||
|
||||
/* Define to 1 if you have the `_vsnprintf' function. */
|
||||
#undef HAVE__VSNPRINTF
|
||||
|
||||
/* Define to 1 if you have the `_vsnwprintf' function. */
|
||||
#undef HAVE__VSNWPRINTF
|
||||
|
||||
/* __va_copy is available */
|
||||
#undef HAVE___VA_COPY
|
||||
|
||||
/* Define if the OS needs help to load dependent libraries for dlopen(). */
|
||||
#undef LTDL_DLOPEN_DEPLIBS
|
||||
|
||||
/* Define to the system default library search path. */
|
||||
#undef LT_DLSEARCH_PATH
|
||||
|
||||
/* The archive extension */
|
||||
#undef LT_LIBEXT
|
||||
|
||||
/* The archive prefix */
|
||||
#undef LT_LIBPREFIX
|
||||
|
||||
/* Define to the extension used for runtime loadable modules, say, ".so". */
|
||||
#undef LT_MODULE_EXT
|
||||
|
||||
/* Define to the name of the environment variable that determines the run-time
|
||||
module search path. */
|
||||
#undef LT_MODULE_PATH_VAR
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Define to the shared library suffix, say, ".dylib". */
|
||||
#undef LT_SHARED_EXT
|
||||
|
||||
/* Define if dlsym() requires a leading underscore in symbol names. */
|
||||
#undef NEED_USCORE
|
||||
|
||||
/* The size of `MB_LEN_MAX', as computed by valueof. */
|
||||
#undef NUMVALOF_MB_LEN_MAX
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to necessary symbol if this constant uses a non-standard name on
|
||||
your system. */
|
||||
#undef PTHREAD_CREATE_JOINABLE
|
||||
|
||||
/* The size of `char', as computed by sizeof. */
|
||||
#undef SIZEOF_CHAR
|
||||
|
||||
/* The size of `double', as computed by sizeof. */
|
||||
#undef SIZEOF_DOUBLE
|
||||
|
||||
/* The size of `float', as computed by sizeof. */
|
||||
#undef SIZEOF_FLOAT
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
#undef SIZEOF_INT
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG
|
||||
|
||||
/* The size of `long double', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG_DOUBLE
|
||||
|
||||
/* The size of `long long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG_LONG
|
||||
|
||||
/* The size of `mbstate_t', as computed by sizeof. */
|
||||
#undef SIZEOF_MBSTATE_T
|
||||
|
||||
/* The size of `off64_t', as computed by sizeof. */
|
||||
#undef SIZEOF_OFF64_T
|
||||
|
||||
/* The size of `off_t', as computed by sizeof. */
|
||||
#undef SIZEOF_OFF_T
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
#undef SIZEOF_SHORT
|
||||
|
||||
/* The size of `struct sockaddr_in', as computed by sizeof. */
|
||||
#undef SIZEOF_STRUCT_SOCKADDR_IN
|
||||
|
||||
/* The size of `struct sockaddr_in6', as computed by sizeof. */
|
||||
#undef SIZEOF_STRUCT_SOCKADDR_IN6
|
||||
|
||||
/* The size of `void *', as computed by sizeof. */
|
||||
#undef SIZEOF_VOID_P
|
||||
|
||||
/* The size of `wchar_t', as computed by sizeof. */
|
||||
#undef SIZEOF_WCHAR_T
|
||||
|
||||
/* The size of `__float128', as computed by sizeof. */
|
||||
#undef SIZEOF___FLOAT128
|
||||
|
||||
/* The size of `__int128', as computed by sizeof. */
|
||||
#undef SIZEOF___INT128
|
||||
|
||||
/* The size of `__int128_t', as computed by sizeof. */
|
||||
#undef SIZEOF___INT128_T
|
||||
|
||||
/* The size of `__int16', as computed by sizeof. */
|
||||
#undef SIZEOF___INT16
|
||||
|
||||
/* The size of `__int16_t', as computed by sizeof. */
|
||||
#undef SIZEOF___INT16_T
|
||||
|
||||
/* The size of `__int32', as computed by sizeof. */
|
||||
#undef SIZEOF___INT32
|
||||
|
||||
/* The size of `__int32_t', as computed by sizeof. */
|
||||
#undef SIZEOF___INT32_T
|
||||
|
||||
/* The size of `__int64', as computed by sizeof. */
|
||||
#undef SIZEOF___INT64
|
||||
|
||||
/* The size of `__int64_t', as computed by sizeof. */
|
||||
#undef SIZEOF___INT64_T
|
||||
|
||||
/* The size of `__int8', as computed by sizeof. */
|
||||
#undef SIZEOF___INT8
|
||||
|
||||
/* The size of `__int8_t', as computed by sizeof. */
|
||||
#undef SIZEOF___INT8_T
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||
#if defined AC_APPLE_UNIVERSAL_BUILD
|
||||
# if defined __BIG_ENDIAN__
|
||||
# define WORDS_BIGENDIAN 1
|
||||
# endif
|
||||
#else
|
||||
# ifndef WORDS_BIGENDIAN
|
||||
# undef WORDS_BIGENDIAN
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Define so that glibc/gnulib argp.h does not typedef error_t. */
|
||||
#undef __error_t_defined
|
||||
|
||||
/* Define to a type to use for `error_t' if it is not otherwise available. */
|
||||
#undef error_t
|
90
include/h2/macros.h
Normal file
90
include/h2/macros.h
Normal file
@ -0,0 +1,90 @@
|
||||
|
||||
#ifndef _H2_MACROS_H_
|
||||
#define _H2_MACROS_H_
|
||||
|
||||
#include <h2/types.h>
|
||||
|
||||
#define H2_MCHAR(x) ((h2_mchar_t)(x))
|
||||
#define H2_WCHAR(x) ((h2_wchar_t)(x))
|
||||
#define H2_WWCHAR(x) ((h2_wwchar_t)(x))
|
||||
|
||||
#define H2_FUN_M(x) h2_ ## x ## _m
|
||||
#define H2_FUN_W(x) h2_ ## x ## _w
|
||||
#define H2_FUN_WW(x) h2_ ## x ## _ww
|
||||
|
||||
#if defined(H2_CHAR_IS_MCHAR)
|
||||
# define H2_CHAR(x) H2_MCHAR(x)
|
||||
# define H2_FUN(x) H2_FUN_M(x)
|
||||
#elif defined(H2_CHAR_IS_WCHAR)
|
||||
# define H2_CHAR(x) H2_WCHAR(x)
|
||||
# define H2_FUN(x) H2_FUN_W(x)
|
||||
#elif defined(H2_CHAR_IS_WWCHAR)
|
||||
# define H2_CHAR(x) H2_WWCHAR(x)
|
||||
# define H2_FUN(x) H2_FUN_WW(x)
|
||||
#else
|
||||
# error Unknown default character type
|
||||
#endif
|
||||
|
||||
|
||||
/* Basic character codes... */
|
||||
#define H2_CHAR_NUL 0
|
||||
#define H2_CHAR_SPC 32
|
||||
|
||||
|
||||
/**
|
||||
* The H2_SIZEOF() macro gets data size in bytes. It is equivalent to the
|
||||
* sizeof operator. The following code snippet should print sizeof(int)*128.
|
||||
* @code
|
||||
* int x[128];
|
||||
* printf ("%d\n", (int)H2_SIZEOF(x));
|
||||
* @endcode
|
||||
*/
|
||||
#define H2_SIZEOF(n) (sizeof(n))
|
||||
|
||||
/**
|
||||
* The H2_COUNTOF() macro returns the number elements in an array.
|
||||
* The following code snippet should print 128.
|
||||
* @code
|
||||
* int x[128];
|
||||
* printf ("%d\n", (int)H2_COUNTOF(x));
|
||||
* @endcode
|
||||
*/
|
||||
#define H2_COUNTOF(n) (sizeof(n)/sizeof(n[0]))
|
||||
|
||||
/**
|
||||
* The #H2_NULL macro defines a special pointer value to indicate an error or
|
||||
* that it does not point to anything.
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
# if H2_SIZEOF_VOID_P == H2_SIZEOF_INT
|
||||
# define H2_NULL (0)
|
||||
# elif H2_SIZEOF_VOID_P == H2_SIZEOF_LONG
|
||||
# define H2_NULL (0l)
|
||||
# elif H2_SIZEOF_VOID_P == H2_SIZEOF_LONG_LONG
|
||||
# define H2_NULL (0ll)
|
||||
# else
|
||||
# define H2_NULL (0)
|
||||
# endif
|
||||
#else
|
||||
# define H2_NULL ((void*)0)
|
||||
#endif
|
||||
|
||||
|
||||
/* TODO: define these properly */
|
||||
#define H2_ASSERT(expr) ((void)0)
|
||||
#define H2_ASSERTX(expr,desc) ((void)0)
|
||||
|
||||
|
||||
|
||||
#if defined(__STDC_VERSION__) && (__STDC_VERSION__>=199901L)
|
||||
# define H2_INLINE inline
|
||||
# define H2_HAVE_INLINE
|
||||
#elif defined(__GNUC__) && defined(__GNUC_GNU_INLINE__)
|
||||
# define H2_INLINE /*extern*/ inline
|
||||
# define H2_HAVE_INLINE
|
||||
#else
|
||||
# define H2_INLINE
|
||||
# undef H2_HAVE_INLINE
|
||||
#endif
|
||||
|
||||
#endif
|
571
include/h2/types.h
Normal file
571
include/h2/types.h
Normal file
@ -0,0 +1,571 @@
|
||||
#ifndef _H2_TYPES_H_
|
||||
#define _H2_TYPES_H_
|
||||
|
||||
/* WARNING: NEVER CHANGE/DELETE THE FOLLOWING H2_HAVE_CONFIG_H DEFINITION.
|
||||
* IT IS USED FOR DEPLOYMENT BY MAKEFILE.AM */
|
||||
/*#define H2_HAVE_CONFIG_H*/
|
||||
|
||||
#if defined(H2_HAVE_CONFIG_H)
|
||||
# include <h2/config.h>
|
||||
#elif defined(_WIN32)
|
||||
# include <h2/conf-msw.h>
|
||||
#elif defined(__OS2__)
|
||||
# include <h2/conf-os2.h>
|
||||
#elif defined(__DOS__)
|
||||
# include <h2/conf-dos.h>
|
||||
#elif defined(vms) || defined(__vms)
|
||||
# include <h2/conf-vms.h>
|
||||
#elif defined(macintosh)
|
||||
# include <:h2:conf-mac.h> /* class mac os */
|
||||
#else
|
||||
# error Unsupported operating system
|
||||
#endif
|
||||
|
||||
/** \typedef h2_int_t
|
||||
* The h2_int_t type defines a signed integer type as large as a pointer.
|
||||
*/
|
||||
/** \typedef h2_uint_t
|
||||
* The h2_uint_t type defines an unsigned integer type as large as a pointer.
|
||||
*/
|
||||
#if (defined(hpux) || defined(__hpux) || defined(__hpux__) || \
|
||||
(defined(__APPLE__) && defined(__MACH__))) && \
|
||||
(H2_SIZEOF_VOID_P == H2_SIZEOF_LONG)
|
||||
typedef signed long h2_int_t;
|
||||
typedef unsigned long h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF_LONG
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF_LONG
|
||||
#elif defined(__SPU__) && (H2_SIZEOF_VOID_P == H2_SIZEOF_LONG)
|
||||
typedef signed long h2_int_t;
|
||||
typedef unsigned long h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF_LONG
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF_LONG
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF_INT
|
||||
typedef signed int h2_int_t;
|
||||
typedef unsigned int h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF_INT
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF_INT
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF_LONG
|
||||
typedef signed long h2_int_t;
|
||||
typedef unsigned long h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF_LONG
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF_LONG
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF_LONG_LONG
|
||||
typedef signed long long h2_int_t;
|
||||
typedef unsigned long long h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF_LONG_LONG
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF_LONG_LONG
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF___INT32
|
||||
typedef signed __int32 h2_int_t;
|
||||
typedef unsigned __int32 h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF___INT32
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF___INT32
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF___INT32_T
|
||||
typedef __int32_t h2_int_t;
|
||||
typedef __uint32_t h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF___INT32_T
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF___INT32_T
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF___INT64
|
||||
typedef signed __int64 h2_int_t;
|
||||
typedef unsigned __int64 h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF___INT64
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF___INT64
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF___INT64_T
|
||||
typedef __int64_t h2_int_t;
|
||||
typedef __uint64_t h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF___INT64_T
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF___INT64_T
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF___INT128
|
||||
typedef signed __int128 h2_int_t;
|
||||
typedef unsigned __int128 h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF___INT128
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF___INT128
|
||||
#elif H2_SIZEOF_VOID_P == H2_SIZEOF___INT128_T
|
||||
typedef __int128_t h2_int_t;
|
||||
typedef __uint128_t h2_uint_t;
|
||||
#define H2_SIZEOF_INT_T H2_SIZEOF___INT128_T
|
||||
#define H2_SIZEOF_UINT_T H2_SIZEOF___INT128_T
|
||||
#else
|
||||
# error unsupported pointer size
|
||||
#endif
|
||||
|
||||
/** \typedef h2_long_t
|
||||
* The h2_long_t type defines the largest signed integer type that supported.
|
||||
*/
|
||||
/** \typedef h2_ulong_t
|
||||
* The h2_ulong_t type defines the largest unsigned integer type supported.
|
||||
*/
|
||||
#if H2_SIZEOF_LONG >= H2_SIZEOF_LONG_LONG
|
||||
typedef signed long h2_long_t;
|
||||
typedef unsigned long h2_ulong_t;
|
||||
#define H2_SIZEOF_LONG_T H2_SIZEOF_LONG
|
||||
#define H2_SIZEOF_ULONG_T H2_SIZEOF_LONG
|
||||
#elif H2_SIZEOF_LONG_LONG > 0
|
||||
typedef signed long long h2_long_t;
|
||||
typedef unsigned long long h2_ulong_t;
|
||||
#define H2_SIZEOF_LONG_T H2_SIZEOF_LONG_LONG
|
||||
#define H2_SIZEOF_ULONG_T H2_SIZEOF_LONG_LONG
|
||||
#elif H2_SIZEOF___INT64 > 0
|
||||
typedef signed __int64 h2_long_t;
|
||||
typedef unsigned __int64 h2_ulong_t;
|
||||
#define H2_SIZEOF_LONG_T H2_SIZEOF___INT64
|
||||
#define H2_SIZEOF_ULONG_T H2_SIZEOF___INT64
|
||||
#elif H2_SIZEOF___INT64_T > 0
|
||||
typedef __int64_t h2_long_t;
|
||||
typedef __uint64_t h2_ulong_t;
|
||||
#define H2_SIZEOF_LONG_T H2_SIZEOF___INT64_T
|
||||
#define H2_SIZEOF_ULONG_T H2_SIZEOF___INT64_T
|
||||
#else
|
||||
typedef signed long h2_long_t;
|
||||
typedef unsigned long h2_ulong_t;
|
||||
#define H2_SIZEOF_LONG_T H2_SIZEOF_LONG
|
||||
#define H2_SIZEOF_ULONG_T H2_SIZEOF_LONG
|
||||
#endif
|
||||
|
||||
/* these two items are revised whenever the size of a
|
||||
* fixed-size integer is determined */
|
||||
#define H2_SIZEOF_INTMAX_T 0
|
||||
#define H2_SIZEOF_UINTMAX_T 0
|
||||
|
||||
/** \typedef h2_int8_t
|
||||
* The h2_int8_t defines an 8-bit signed integer type.
|
||||
*/
|
||||
/** \typedef h2_uint8_t
|
||||
* The h2_uint8_t type defines an 8-bit unsigned integer type.
|
||||
*/
|
||||
#if H2_SIZEOF_CHAR == 1
|
||||
# define H2_HAVE_INT8_T
|
||||
# define H2_HAVE_UINT8_T
|
||||
typedef signed char h2_int8_t;
|
||||
typedef unsigned char h2_uint8_t;
|
||||
#elif H2_SIZEOF___INT8 == 1
|
||||
# define H2_HAVE_INT8_T
|
||||
# define H2_HAVE_UINT8_T
|
||||
typedef signed __int8 h2_int8_t;
|
||||
typedef unsigned __int8 h2_uint8_t;
|
||||
#elif H2_SIZEOF___INT8_T == 1
|
||||
# define H2_HAVE_INT8_T
|
||||
# define H2_HAVE_UINT8_T
|
||||
typedef __int8_t h2_int8_t;
|
||||
typedef __uint8_t h2_uint8_t;
|
||||
#endif
|
||||
|
||||
#ifdef H2_HAVE_INT8_T
|
||||
# define H2_SIZEOF_INT8_T 1
|
||||
# define H2_SIZEOF_UINT8_T 1
|
||||
# undef H2_SIZEOF_INTMAX_T
|
||||
# undef H2_SIZEOF_UINTMAX_T
|
||||
# define H2_SIZEOF_INTMAX_T 1
|
||||
# define H2_SIZEOF_UINTMAX_T 1
|
||||
#else
|
||||
# define H2_SIZEOF_INT8_T 0
|
||||
# define H2_SIZEOF_UINT8_T 0
|
||||
#endif
|
||||
|
||||
/** \typedef h2_int16_t
|
||||
* The h2_int16_t defines an 16-bit signed integer type.
|
||||
*/
|
||||
/** \typedef h2_uint16_t
|
||||
* The h2_uint16_t type defines an 16-bit unsigned integer type.
|
||||
*/
|
||||
#if H2_SIZEOF_SHORT == 2
|
||||
# define H2_HAVE_INT16_T
|
||||
# define H2_HAVE_UINT16_T
|
||||
typedef signed short h2_int16_t;
|
||||
typedef unsigned short h2_uint16_t;
|
||||
#elif H2_SIZEOF___INT16 == 2
|
||||
# define H2_HAVE_INT16_T
|
||||
# define H2_HAVE_UINT16_T
|
||||
typedef signed __int16 h2_int16_t;
|
||||
typedef unsigned __int16 h2_uint16_t;
|
||||
#elif H2_SIZEOF___INT16_T == 2
|
||||
# define H2_HAVE_INT16_T
|
||||
# define H2_HAVE_UINT16_T
|
||||
typedef __int16_t h2_int16_t;
|
||||
typedef __uint16_t h2_uint16_t;
|
||||
#endif
|
||||
|
||||
#ifdef H2_HAVE_INT16_T
|
||||
# define H2_SIZEOF_INT16_T 2
|
||||
# define H2_SIZEOF_UINT16_T 2
|
||||
# undef H2_SIZEOF_INTMAX_T
|
||||
# undef H2_SIZEOF_UINTMAX_T
|
||||
# define H2_SIZEOF_INTMAX_T 2
|
||||
# define H2_SIZEOF_UINTMAX_T 2
|
||||
#else
|
||||
# define H2_SIZEOF_INT16_T 0
|
||||
# define H2_SIZEOF_UINT16_T 0
|
||||
#endif
|
||||
|
||||
/** \typedef h2_int32_t
|
||||
* The h2_int32_t defines an 32-bit signed integer type.
|
||||
*/
|
||||
/** \typedef h2_uint32_t
|
||||
* The h2_uint32_t type defines an 32-bit unsigned integer type.
|
||||
*/
|
||||
#if H2_SIZEOF_INT == 4
|
||||
# define H2_HAVE_INT32_T
|
||||
# define H2_HAVE_UINT32_T
|
||||
typedef signed int h2_int32_t;
|
||||
typedef unsigned int h2_uint32_t;
|
||||
#elif H2_SIZEOF_LONG == 4
|
||||
# define H2_HAVE_INT32_T
|
||||
# define H2_HAVE_UINT32_T
|
||||
typedef signed long h2_int32_t;
|
||||
typedef unsigned long h2_uint32_t;
|
||||
#elif H2_SIZEOF___INT32 == 4
|
||||
# define H2_HAVE_INT32_T
|
||||
# define H2_HAVE_UINT32_T
|
||||
typedef signed __int32 h2_int32_t;
|
||||
typedef unsigned __int32 h2_uint32_t;
|
||||
#elif H2_SIZEOF___INT32_T == 4
|
||||
# define H2_HAVE_INT32_T
|
||||
# define H2_HAVE_UINT32_T
|
||||
typedef __int32_t h2_int32_t;
|
||||
typedef __uint32_t h2_uint32_t;
|
||||
#endif
|
||||
|
||||
#ifdef H2_HAVE_INT32_T
|
||||
# define H2_SIZEOF_INT32_T 4
|
||||
# define H2_SIZEOF_UINT32_T 4
|
||||
# undef H2_SIZEOF_INTMAX_T
|
||||
# undef H2_SIZEOF_UINTMAX_T
|
||||
# define H2_SIZEOF_INTMAX_T 4
|
||||
# define H2_SIZEOF_UINTMAX_T 4
|
||||
#else
|
||||
# define H2_SIZEOF_INT32_T 0
|
||||
# define H2_SIZEOF_UINT32_T 0
|
||||
#endif
|
||||
|
||||
/** \typedef h2_int64_t
|
||||
* The h2_int64_t defines an 64-bit signed integer type.
|
||||
*/
|
||||
/** \typedef h2_uint64_t
|
||||
* The h2_uint64_t type defines an 64-bit unsigned integer type.
|
||||
*/
|
||||
#if H2_SIZEOF_INT == 8
|
||||
# define H2_HAVE_INT64_T
|
||||
# define H2_HAVE_UINT64_T
|
||||
typedef signed int h2_int64_t;
|
||||
typedef unsigned int h2_uint64_t;
|
||||
#elif H2_SIZEOF_LONG == 8
|
||||
# define H2_HAVE_INT64_T
|
||||
# define H2_HAVE_UINT64_T
|
||||
typedef signed long h2_int64_t;
|
||||
typedef unsigned long h2_uint64_t;
|
||||
#elif H2_SIZEOF_LONG_LONG == 8
|
||||
# define H2_HAVE_INT64_T
|
||||
# define H2_HAVE_UINT64_T
|
||||
typedef signed long long h2_int64_t;
|
||||
typedef unsigned long long h2_uint64_t;
|
||||
#elif H2_SIZEOF___INT64 == 8
|
||||
# define H2_HAVE_INT64_T
|
||||
# define H2_HAVE_UINT64_T
|
||||
typedef signed __int64 h2_int64_t;
|
||||
typedef unsigned __int64 h2_uint64_t;
|
||||
#elif H2_SIZEOF___INT64_T == 8
|
||||
# define H2_HAVE_INT64_T
|
||||
# define H2_HAVE_UINT64_T
|
||||
typedef __int64_t h2_int64_t;
|
||||
typedef __uint64_t h2_uint64_t;
|
||||
#endif
|
||||
|
||||
#ifdef H2_HAVE_INT64_T
|
||||
# define H2_SIZEOF_INT64_T 8
|
||||
# define H2_SIZEOF_UINT64_T 8
|
||||
# undef H2_SIZEOF_INTMAX_T
|
||||
# undef H2_SIZEOF_UINTMAX_T
|
||||
# define H2_SIZEOF_INTMAX_T 8
|
||||
# define H2_SIZEOF_UINTMAX_T 8
|
||||
#else
|
||||
# define H2_SIZEOF_INT64_T 0
|
||||
# define H2_SIZEOF_UINT64_T 0
|
||||
#endif
|
||||
|
||||
#if H2_SIZEOF_INT == 16
|
||||
# define H2_HAVE_INT128_T
|
||||
# define H2_HAVE_UINT128_T
|
||||
typedef signed int h2_int128_t;
|
||||
typedef unsigned int h2_uint128_t;
|
||||
#elif H2_SIZEOF_LONG == 16
|
||||
# define H2_HAVE_INT128_T
|
||||
# define H2_HAVE_UINT128_T
|
||||
typedef signed long h2_int128_t;
|
||||
typedef unsigned long h2_uint128_t;
|
||||
#elif H2_SIZEOF_LONG_LONG == 16
|
||||
# define H2_HAVE_INT128_T
|
||||
# define H2_HAVE_UINT128_T
|
||||
typedef signed long long h2_int128_t;
|
||||
typedef unsigned long long h2_uint128_t;
|
||||
#elif H2_SIZEOF___INT128 == 16
|
||||
# define H2_HAVE_INT128_T
|
||||
# define H2_HAVE_UINT128_T
|
||||
typedef signed __int128 h2_int128_t;
|
||||
typedef unsigned __int128 h2_uint128_t;
|
||||
#elif (H2_SIZEOF___INT128_T == 16)
|
||||
# define H2_HAVE_INT128_T
|
||||
# define H2_HAVE_UINT128_T
|
||||
typedef __int128_t h2_int128_t;
|
||||
typedef __uint128_t h2_uint128_t;
|
||||
#endif
|
||||
|
||||
#ifdef H2_HAVE_INT128_T
|
||||
# define H2_SIZEOF_INT128_T 16
|
||||
# define H2_SIZEOF_UINT128_T 16
|
||||
# undef H2_SIZEOF_INTMAX_T
|
||||
# undef H2_SIZEOF_UINTMAX_T
|
||||
# define H2_SIZEOF_INTMAX_T 16
|
||||
# define H2_SIZEOF_UINTMAX_T 16
|
||||
#else
|
||||
# define H2_SIZEOF_INT128_T 0
|
||||
# define H2_SIZEOF_UINT128_T 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The h2_byte_t defines a byte type.
|
||||
*/
|
||||
typedef h2_uint8_t h2_byte_t;
|
||||
#define H2_SIZEOF_BYTE_T H2_SIZEOF_UINT8_T
|
||||
|
||||
/**
|
||||
* The h2_size_t type defines an unsigned integer type that is as large as
|
||||
* to hold a pointer value.
|
||||
*/
|
||||
#if defined(__SIZE_TYPE__) && defined(__SIZEOF_SIZE_T__)
|
||||
typedef __SIZE_TYPE__ h2_size_t;
|
||||
# define H2_SIZEOF_SIZE_T __SIZEOF_SIZE_T__
|
||||
#else
|
||||
typedef h2_uint_t h2_size_t;
|
||||
# define H2_SIZEOF_SIZE_T H2_SIZEOF_UINT_T
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The h2_ssize_t type defines a signed integer type that is as large as
|
||||
* to hold a pointer value.
|
||||
*/
|
||||
typedef h2_int_t h2_ssize_t;
|
||||
#define H2_SIZEOF_SSIZE_T H2_SIZEOF_INT_T
|
||||
|
||||
/**
|
||||
* The h2_word_t type redefines h2_uint_t.
|
||||
*/
|
||||
typedef h2_uint_t h2_word_t;
|
||||
#define H2_SIZEOF_WORD_T H2_SIZEOF_UINT_T
|
||||
|
||||
/**
|
||||
* The h2_uintptr_t redefines h2_uint_t to indicate that you are dealing
|
||||
* with a pointer.
|
||||
*/
|
||||
typedef h2_uint_t h2_uintptr_t;
|
||||
#define H2_SIZEOF_UINTPTR_T H2_SIZEOF_UINT_T
|
||||
|
||||
/**
|
||||
* The h2_untptr_t redefines h2_int_t to indicate that you are dealing
|
||||
* with a pointer.
|
||||
*/
|
||||
typedef h2_int_t h2_intptr_t;
|
||||
#define H2_SIZEOF_INTPTR_T H2_SIZEOF_INT_T
|
||||
|
||||
/** \typedef h2_intmax_t
|
||||
* The h2_llong_t type defines the largest signed integer type supported.
|
||||
*/
|
||||
/** \typedef h2_uintmax_t
|
||||
* The h2_ullong_t type defines the largest unsigned integer type supported.
|
||||
*/
|
||||
#if (H2_SIZEOF_LONG >= H2_SIZEOF_LONG_LONG) && \
|
||||
(H2_SIZEOF_LONG >= H2_SIZEOF_INTMAX_T)
|
||||
typedef long h2_intmax_t;
|
||||
typedef unsigned long h2_uintmax_t;
|
||||
#undef H2_SIZEOF_INTMAX_T
|
||||
#undef H2_SIZEOF_UINTMAX_T
|
||||
#define H2_SIZEOF_INTMAX_T H2_SIZEOF_LONG
|
||||
#define H2_SIZEOF_UINTMAX_T H2_SIZEOF_LONG
|
||||
#elif (H2_SIZEOF_LONG_LONG >= H2_SIZEOF_INTMAX_T)
|
||||
typedef long long h2_intmax_t;
|
||||
typedef unsigned long long h2_uintmax_t;
|
||||
#undef H2_SIZEOF_INTMAX_T
|
||||
#undef H2_SIZEOF_UINTMAX_T
|
||||
#define H2_SIZEOF_INTMAX_T H2_SIZEOF_LONG_LONG
|
||||
#define H2_SIZEOF_UINTMAX_T H2_SIZEOF_LONG_LONG
|
||||
#elif (H2_SIZEOF_INTMAX_T == H2_SIZEOF_INT128_T)
|
||||
typedef h2_int128_t h2_intmax_t;
|
||||
typedef h2_uint128_t h2_uintmax_t;
|
||||
/* H2_SIZEOF_INTMAX_T and H2_SIZEOF_UINTMAX_T are
|
||||
* defined when h2_int128_t is defined */
|
||||
#elif (H2_SIZEOF_INTMAX_T == H2_SIZEOF_INT64_T)
|
||||
typedef h2_int64_t h2_intmax_t;
|
||||
typedef h2_uint64_t h2_uintmax_t;
|
||||
/* H2_SIZEOF_INTMAX_T and H2_SIZEOF_UINTMAX_T are
|
||||
* defined when h2_int64_t is defined */
|
||||
#elif (H2_SIZEOF_INTMAX_T == H2_SIZEOF_INT32_T)
|
||||
typedef h2_int32_t h2_intmax_t;
|
||||
typedef h2_uint32_t h2_uintmax_t;
|
||||
/* H2_SIZEOF_INTMAX_T and H2_SIZEOF_UINTMAX_T are
|
||||
* defined when h2_int32_t is defined */
|
||||
#elif (H2_SIZEOF_INTMAX_T == H2_SIZEOF_INT16_T)
|
||||
typedef h2_int16_t h2_intmax_t;
|
||||
typedef h2_uint16_t h2_uintmax_t;
|
||||
/* H2_SIZEOF_INTMAX_T and H2_SIZEOF_UINTMAX_T are
|
||||
* defined when h2_int16_t is defined */
|
||||
#elif (H2_SIZEOF_INTMAX_T == H2_SIZEOF_INT8_T)
|
||||
typedef h2_int8_t h2_intmax_t;
|
||||
typedef h2_uint8_t h2_uintmax_t;
|
||||
/* H2_SIZEOF_INTMAX_T and H2_SIZEOF_UINTMAX_T are
|
||||
* defined when h2_int8_t is defined */
|
||||
#else
|
||||
# error FATAL. THIS MUST NOT HAPPEN
|
||||
#endif
|
||||
|
||||
|
||||
/** \typedef h2_flt_t
|
||||
* The h2_flt_t type defines the largest floating-pointer number type
|
||||
* naturally supported.
|
||||
*/
|
||||
#if defined(__FreeBSD__) || defined(__MINGW32__)
|
||||
/* TODO: check if the support for long double is complete.
|
||||
* if so, use long double for h2_flt_t */
|
||||
typedef double h2_flt_t;
|
||||
# define H2_SIZEOF_FLT_T H2_SIZEOF_DOUBLE
|
||||
#elif H2_SIZEOF_LONG_DOUBLE > H2_SIZEOF_DOUBLE
|
||||
typedef long double h2_flt_t;
|
||||
# define H2_SIZEOF_FLT_T H2_SIZEOF_LONG_DOUBLE
|
||||
#else
|
||||
typedef double h2_flt_t;
|
||||
# define H2_SIZEOF_FLT_T H2_SIZEOF_DOUBLE
|
||||
#endif
|
||||
|
||||
/** \typedef h2_fltmax_t
|
||||
* The h2_fltmax_t type defines the largest floating-pointer number type
|
||||
* ever supported.
|
||||
*/
|
||||
#if H2_SIZEOF___FLOAT128 >= H2_SIZEOF_FLT_T
|
||||
/* the size of long double may be equal to the size of __float128
|
||||
* for alignment on some platforms */
|
||||
typedef __float128 h2_fltmax_t;
|
||||
# define H2_SIZEOF_FLTMAX_T H2_SIZEOF___FLOAT128
|
||||
#else
|
||||
typedef h2_flt_t h2_fltmax_t;
|
||||
# define H2_SIZEOF_FLTMAX_T H2_SIZEOF_FLT_T
|
||||
#endif
|
||||
|
||||
/** \typedef h2_ptrdiff_t
|
||||
*/
|
||||
typedef h2_ssize_t h2_ptrdiff_t;
|
||||
#define H2_SIZEOF_PTRDIFF_T H2_SIZEOF_SSIZE_T
|
||||
|
||||
/** \typdef h2_mchar_t
|
||||
* The h2_mchar_t type is an alias to the char type.
|
||||
*/
|
||||
typedef char h2_mchar_t;
|
||||
typedef int h2_mcint_t;
|
||||
#define H2_SIZEOF_MCHAR_T H2_SIZEOF_CHAR
|
||||
#define H2_SIZEOF_MCINT_T H2_SIZEOF_INT_T
|
||||
|
||||
/** \typedef h2_wchar_t
|
||||
* The h2_wchar_t type defines a 16-bit wide character type.
|
||||
*/
|
||||
typedef h2_uint16_t h2_wchar_t;
|
||||
typedef h2_uint32_t h2_wcint_t;
|
||||
#define H2_SIZEOF_WCHAR_T H2_SIZEOF_UINT16_T
|
||||
#define H2_SIZEOF_WCINT_T H2_SIZEOF_UINT32_T
|
||||
|
||||
/** typedef h2_wwchar_t
|
||||
* The h2_wwchar_t type defines a 32-bit wide character type.
|
||||
*/
|
||||
typedef h2_uint32_t h2_wwchar_t;
|
||||
typedef h2_uint32_t h2_wwcint_t;
|
||||
#define H2_SIZEOF_WWCHAR_T H2_SIZEOF_UINT32_T
|
||||
#define H2_SIZEOF_WWCINT_T H2_SIZEOF_UINT32_T
|
||||
|
||||
#if defined(H2_CHAR_IS_MCHAR)
|
||||
typedef h2_mchar_t h2_char_t;
|
||||
typedef h2_mcint_t h2_cint_t;
|
||||
#elif defined(H2_CHAR_IS_WCHAR)
|
||||
typedef h2_wchar_t h2_char_t;
|
||||
typedef h2_wcint_t h2_cint_t;
|
||||
#elif defined(H2_CHAR_IS_WWCHAR)
|
||||
typedef h2_wwchar_t h2_char_t;
|
||||
typedef h2_wwcint_t h2_cint_t;
|
||||
#else
|
||||
# error Unknown default character type
|
||||
#endif
|
||||
|
||||
/** typedef h2_wxchar_t
|
||||
* The h2_wxchar_t type defines the widest character type supported.
|
||||
*/
|
||||
typedef h2_wwchar_t h2_wxchar_t;
|
||||
typedef h2_wwcint_t h2_wxcint_t;
|
||||
#define H2_SIZEOF_WXCHAR_T H2_SIZEOF_WWCHAR_T
|
||||
#define H2_SIZEOF_WXCINT_T H2_SIZEOF_WWCINT_T
|
||||
|
||||
|
||||
#if defined(_WIN32) && defined(H2_ENABLE_WCHAR)
|
||||
# define H2_OSCHAR_IS_WCHAR 1
|
||||
#elif defined(H2_ENABLE_MCHAR)
|
||||
# define H2_OSCHAR_IS_MCHAR 1
|
||||
#else
|
||||
# error Required OS character type is not enabled.
|
||||
#endif
|
||||
|
||||
/** typedef h2_oschar_t
|
||||
* The h2_oschar_t type defines the character type the operating system
|
||||
* calls use. */
|
||||
#if defined(H2_OSCHAR_IS_MCHAR)
|
||||
typedef h2_mchar_t h2_oschar_t;
|
||||
typedef h2_mcint_t h2_oscint_t;
|
||||
# define H2_SIZEOF_OSCHAR_T H2_SIZEOF_MCHAR_T
|
||||
# define H2_SIZEOF_OSCINT_T H2_SIZEOF_MCINT_T
|
||||
#elif defined(H2_OSCHAR_IS_WCHAR)
|
||||
typedef h2_wchar_t h2_oschar_t;
|
||||
typedef h2_wcint_t h2_oscint_t;
|
||||
# define H2_SIZEOF_OSCHAR_T H2_SIZEOF_WCHAR_T
|
||||
# define H2_SIZEOF_OSCINT_T H2_SIZEOF_WCINT_T
|
||||
#elif defined(H2_OSCHAR_IS_WWCHAR)
|
||||
typedef h2_wwchar_t h2_oschar_t;
|
||||
typedef h2_wwcint_t h2_oscint_t;
|
||||
# define H2_SIZEOF_OSCHAR_T H2_SIZEOF_WWCHAR_T
|
||||
# define H2_SIZEOF_OSCINT_T H2_SIZEOF_WWCINT_T
|
||||
#else
|
||||
# error Unknown OS character type
|
||||
#endif
|
||||
|
||||
enum h2_char_type_t
|
||||
{
|
||||
H2_MCHAR_T = 0,
|
||||
H2_WCHAR_T = 1,
|
||||
H2_WWCHAR_T = 2,
|
||||
|
||||
#if defined(H2_CHAR_IS_MCHAR)
|
||||
H2_CHAR_T = H2_MCHAR_T,
|
||||
#elif defined(H2_CHAR_IS_WCHAR)
|
||||
H2_CHAR_T = H2_WCHAR_T,
|
||||
#elif defined(H2_CHAR_IS_WWCHAR)
|
||||
H2_CHAR_T = H2_WWCHAR_T,
|
||||
#else
|
||||
# error Unknown default character type
|
||||
#endif
|
||||
|
||||
#if defined(H2_OSCHAR_IS_MCHAR)
|
||||
H2_OSCHAR_T = H2_MCHAR_T,
|
||||
#elif defined(H2_OSCHAR_IS_WCHAR)
|
||||
H2_OSCHAR_T = H2_WCHAR_T,
|
||||
#elif defined(H2_OSCHAR_IS_WWCHAR)
|
||||
H2_OSCHAR_T = H2_WWCHAR_T,
|
||||
#else
|
||||
# error Unknown OS character type
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* Special definiton to use Unicode APIs on Windows */
|
||||
#if defined(_WIN32)
|
||||
# if !defined(UNICODE)
|
||||
# define UNICODE
|
||||
# endif
|
||||
# if !defined(_UNICODE)
|
||||
# define _UNICODE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user