initial commit
This commit is contained in:
commit
636959b37b
2474 files changed
+1343178
No files matched your search
@@ -0,0 +1,37 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_ASSERT_H__
|
||||
#define __PJ_COMPAT_ASSERT_H__
|
||||
|
||||
/**
|
||||
* @file assert.h
|
||||
* @brief Provides assert() macro.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_ASSERT_H) && PJ_HAS_ASSERT_H != 0
|
||||
# include <assert.h>
|
||||
|
||||
#else
|
||||
# warning "assert() is not implemented"
|
||||
# define assert(expr)
|
||||
#endif
|
||||
|
||||
#endif /* __PJ_COMPAT_ASSERT_H__ */
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_CC_ARMCC_H__
|
||||
#define __PJ_COMPAT_CC_ARMCC_H__
|
||||
|
||||
/**
|
||||
* @file cc_armcc.h
|
||||
* @brief Describes ARMCC compiler specifics.
|
||||
*/
|
||||
|
||||
#ifndef __ARMCC__
|
||||
# error "This file is only for armcc!"
|
||||
#endif
|
||||
|
||||
#define PJ_CC_NAME "armcc"
|
||||
#define PJ_CC_VER_1 (__ARMCC_VERSION/100000)
|
||||
#define PJ_CC_VER_2 ((__ARMCC_VERSION%100000)/10000)
|
||||
#define PJ_CC_VER_3 (__ARMCC_VERSION%10000)
|
||||
|
||||
#ifdef __cplusplus
|
||||
# define PJ_INLINE_SPECIFIER inline
|
||||
#else
|
||||
# define PJ_INLINE_SPECIFIER static __inline
|
||||
#endif
|
||||
|
||||
#define PJ_THREAD_FUNC
|
||||
#define PJ_NORETURN
|
||||
#define PJ_ATTR_NORETURN __attribute__ ((noreturn))
|
||||
#define PJ_ATTR_MAY_ALIAS __attribute__ ((__may_alias__))
|
||||
|
||||
#define PJ_HAS_INT64 1
|
||||
|
||||
typedef long long pj_int64_t;
|
||||
typedef unsigned long long pj_uint64_t;
|
||||
|
||||
#define PJ_INT64_FMT "L"
|
||||
|
||||
#define PJ_UNREACHED(x)
|
||||
|
||||
#endif /* __PJ_COMPAT_CC_ARMCC_H__ */
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_CC_CODEW_H__
|
||||
#define __PJ_COMPAT_CC_CODEW_H__
|
||||
|
||||
/**
|
||||
* @file cc_codew.h
|
||||
* @brief Describes MetroWerks Code Warrior compiler specifics.
|
||||
*/
|
||||
|
||||
#ifndef __MWERKS__
|
||||
# error "This file is only for Code Warrior!"
|
||||
#endif
|
||||
|
||||
#define PJ_CC_NAME "codewarrior"
|
||||
#define PJ_CC_VER_1 ((__MWERKS__ & 0xF000) >> 12)
|
||||
#define PJ_CC_VER_2 ((__MWERKS__ & 0x0F00) >> 8)
|
||||
#define PJ_CC_VER_3 ((__MWERKS__ & 0xFF))
|
||||
|
||||
|
||||
#define PJ_INLINE_SPECIFIER static inline
|
||||
#define PJ_THREAD_FUNC
|
||||
#define PJ_NORETURN
|
||||
#define PJ_ATTR_NORETURN
|
||||
#define PJ_ATTR_MAY_ALIAS
|
||||
|
||||
#define PJ_HAS_INT64 1
|
||||
|
||||
typedef long long pj_int64_t;
|
||||
typedef unsigned long long pj_uint64_t;
|
||||
|
||||
#define PJ_INT64(val) val##LL
|
||||
#define PJ_UINT64(val) val##LLU
|
||||
#define PJ_INT64_FMT "L"
|
||||
|
||||
#define PJ_UNREACHED(x)
|
||||
|
||||
#endif /* __PJ_COMPAT_CC_CODEW_H__ */
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_CC_GCC_H__
|
||||
#define __PJ_COMPAT_CC_GCC_H__
|
||||
|
||||
/**
|
||||
* @file cc_gcc.h
|
||||
* @brief Describes GCC compiler specifics.
|
||||
*/
|
||||
|
||||
#ifndef __GNUC__
|
||||
# error "This file is only for gcc!"
|
||||
#endif
|
||||
|
||||
#define PJ_CC_NAME "gcc"
|
||||
#define PJ_CC_VER_1 __GNUC__
|
||||
#define PJ_CC_VER_2 __GNUC_MINOR__
|
||||
|
||||
/* __GNUC_PATCHLEVEL__ doesn't exist in gcc-2.9x.x */
|
||||
#ifdef __GNUC_PATCHLEVEL__
|
||||
# define PJ_CC_VER_3 __GNUC_PATCHLEVEL__
|
||||
#else
|
||||
# define PJ_CC_VER_3 0
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#define PJ_THREAD_FUNC
|
||||
#define PJ_NORETURN
|
||||
|
||||
#define PJ_HAS_INT64 1
|
||||
|
||||
#ifdef __STRICT_ANSI__
|
||||
#include <inttypes.h>
|
||||
typedef int64_t pj_int64_t;
|
||||
typedef uint64_t pj_uint64_t;
|
||||
#define PJ_INLINE_SPECIFIER static __inline
|
||||
#define PJ_ATTR_NORETURN
|
||||
#define PJ_ATTR_MAY_ALIAS
|
||||
#else
|
||||
typedef long long pj_int64_t;
|
||||
typedef unsigned long long pj_uint64_t;
|
||||
#define PJ_INLINE_SPECIFIER static inline
|
||||
#define PJ_ATTR_NORETURN __attribute__ ((noreturn))
|
||||
#define PJ_ATTR_MAY_ALIAS __attribute__((__may_alias__))
|
||||
#endif
|
||||
|
||||
#define PJ_INT64(val) val##LL
|
||||
#define PJ_UINT64(val) val##ULL
|
||||
#define PJ_INT64_FMT "L"
|
||||
|
||||
|
||||
#ifdef __GLIBC__
|
||||
# define PJ_HAS_BZERO 1
|
||||
#endif
|
||||
|
||||
#define PJ_UNREACHED(x)
|
||||
|
||||
#define PJ_ALIGN_DATA(declaration, alignment) declaration __attribute__((aligned (alignment)))
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_CC_GCC_H__ */
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_CC_GCCE_H__
|
||||
#define __PJ_COMPAT_CC_GCCE_H__
|
||||
|
||||
/**
|
||||
* @file cc_gcce.h
|
||||
* @brief Describes GCCE compiler specifics.
|
||||
*/
|
||||
|
||||
#ifndef __GCCE__
|
||||
# error "This file is only for gcce!"
|
||||
#endif
|
||||
|
||||
#define PJ_CC_NAME "gcce"
|
||||
#define PJ_CC_VER_1 __GCCE__
|
||||
#define PJ_CC_VER_2 __GCCE_MINOR__
|
||||
#define PJ_CC_VER_3 __GCCE_PATCHLEVEL__
|
||||
|
||||
|
||||
#define PJ_INLINE_SPECIFIER static inline
|
||||
#define PJ_THREAD_FUNC
|
||||
#define PJ_NORETURN
|
||||
#define PJ_ATTR_NORETURN __attribute__ ((noreturn))
|
||||
#define PJ_ATTR_MAY_ALIAS __attribute__ ((__may_alias__))
|
||||
|
||||
#define PJ_HAS_INT64 1
|
||||
|
||||
typedef long long pj_int64_t;
|
||||
typedef unsigned long long pj_uint64_t;
|
||||
|
||||
#define PJ_INT64(val) val##LL
|
||||
#define PJ_UINT64(val) val##LLU
|
||||
#define PJ_INT64_FMT "L"
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_CC_GCCE_H__ */
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_CC_MSVC_H__
|
||||
#define __PJ_COMPAT_CC_MSVC_H__
|
||||
|
||||
/**
|
||||
* @file cc_msvc.h
|
||||
* @brief Describes Microsoft Visual C compiler specifics.
|
||||
*/
|
||||
|
||||
#ifndef _MSC_VER
|
||||
# error "This header file is only for Visual C compiler!"
|
||||
#endif
|
||||
|
||||
#define PJ_CC_NAME "msvc"
|
||||
#define PJ_CC_VER_1 (_MSC_VER/100)
|
||||
#define PJ_CC_VER_2 (_MSC_VER%100)
|
||||
#define PJ_CC_VER_3 0
|
||||
|
||||
/* Disable CRT deprecation warnings. */
|
||||
#if PJ_CC_VER_1 >= 8 && !defined(_CRT_SECURE_NO_DEPRECATE)
|
||||
# define _CRT_SECURE_NO_DEPRECATE
|
||||
#endif
|
||||
#if PJ_CC_VER_1 >= 8 && !defined(_CRT_SECURE_NO_WARNINGS)
|
||||
# define _CRT_SECURE_NO_WARNINGS
|
||||
/* The above doesn't seem to work, at least on VS2005, so lets use
|
||||
* this construct as well.
|
||||
*/
|
||||
# pragma warning(disable: 4996)
|
||||
#endif
|
||||
|
||||
#pragma warning(disable: 4127) // conditional expression is constant
|
||||
#pragma warning(disable: 4611) // not wise to mix setjmp with C++
|
||||
#pragma warning(disable: 4514) // unref. inline function has been removed
|
||||
#ifdef NDEBUG
|
||||
# pragma warning(disable: 4702) // unreachable code
|
||||
# pragma warning(disable: 4710) // function is not inlined.
|
||||
# pragma warning(disable: 4711) // function selected for auto inline expansion
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
# define PJ_INLINE_SPECIFIER inline
|
||||
#else
|
||||
# define PJ_INLINE_SPECIFIER static __inline
|
||||
#endif
|
||||
|
||||
#define PJ_EXPORT_DECL_SPECIFIER __declspec(dllexport)
|
||||
#define PJ_EXPORT_DEF_SPECIFIER __declspec(dllexport)
|
||||
#define PJ_IMPORT_DECL_SPECIFIER __declspec(dllimport)
|
||||
|
||||
#define PJ_THREAD_FUNC
|
||||
#define PJ_NORETURN __declspec(noreturn)
|
||||
#define PJ_ATTR_NORETURN
|
||||
#define PJ_ATTR_MAY_ALIAS
|
||||
|
||||
#define PJ_HAS_INT64 1
|
||||
|
||||
typedef __int64 pj_int64_t;
|
||||
typedef unsigned __int64 pj_uint64_t;
|
||||
|
||||
#define PJ_INT64(val) val##i64
|
||||
#define PJ_UINT64(val) val##ui64
|
||||
#define PJ_INT64_FMT "I64"
|
||||
|
||||
#define PJ_UNREACHED(x)
|
||||
|
||||
#define PJ_ALIGN_DATA(declaration, alignment) __declspec(align(alignment)) declaration
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_CC_MSVC_H__ */
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_CC_MWCC_H__
|
||||
#define __PJ_COMPAT_CC_MWCC_H__
|
||||
|
||||
/**
|
||||
* @file cc_mwcc.h
|
||||
* @brief Describes MWCC compiler specifics.
|
||||
*/
|
||||
|
||||
#ifndef __CW32__
|
||||
# error "This file is only for mwcc!"
|
||||
#endif
|
||||
|
||||
#define PJ_CC_NAME "mwcc32sym"
|
||||
#define PJ_CC_VER_1 1
|
||||
#define PJ_CC_VER_2 0
|
||||
#define PJ_CC_VER_3 0
|
||||
|
||||
|
||||
#define PJ_INLINE_SPECIFIER static inline
|
||||
#define PJ_THREAD_FUNC
|
||||
#define PJ_NORETURN
|
||||
#define PJ_ATTR_NORETURN __attribute__ ((noreturn))
|
||||
#define PJ_ATTR_MAY_ALIAS
|
||||
|
||||
#define PJ_HAS_INT64 1
|
||||
|
||||
typedef long long pj_int64_t;
|
||||
typedef unsigned long long pj_uint64_t;
|
||||
|
||||
#define PJ_INT64(val) val##LL
|
||||
#define PJ_UINT64(val) val##LLU
|
||||
#define PJ_INT64_FMT "L"
|
||||
|
||||
#define PJ_UNREACHED(x)
|
||||
|
||||
#endif /* __PJ_COMPAT_CC_MWCC_H__ */
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_CTYPE_H__
|
||||
#define __PJ_COMPAT_CTYPE_H__
|
||||
|
||||
/**
|
||||
* @file ctype.h
|
||||
* @brief Provides ctype function family.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_CTYPE_H) && PJ_HAS_CTYPE_H != 0
|
||||
# include <ctype.h>
|
||||
#else
|
||||
# define isalnum(c) (isalpha(c) || isdigit(c))
|
||||
# define isalpha(c) (islower(c) || isupper(c))
|
||||
# define isascii(c) (((unsigned char)(c))<=0x7f)
|
||||
# define isdigit(c) ((c)>='0' && (c)<='9')
|
||||
# define isspace(c) ((c)==' ' || (c)=='\t' ||\
|
||||
(c)=='\n' || (c)=='\r' || (c)=='\v')
|
||||
# define islower(c) ((c)>='a' && (c)<='z')
|
||||
# define isupper(c) ((c)>='A' && (c)<='Z')
|
||||
# define isxdigit(c) (isdigit(c) || (tolower(c)>='a'&&tolower(c)<='f'))
|
||||
# define tolower(c) (((c) >= 'A' && (c) <= 'Z') ? (c)+('a'-'A') : (c))
|
||||
# define toupper(c) (((c) >= 'a' && (c) <= 'z') ? (c)-('a'-'A') : (c))
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_CTYPE_H__ */
|
||||
@@ -0,0 +1,45 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_ERRNO_H__
|
||||
#define __PJ_COMPAT_ERRNO_H__
|
||||
|
||||
#if defined(PJ_WIN32) && PJ_WIN32 != 0 || \
|
||||
defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE != 0 || \
|
||||
defined(PJ_WIN64) && PJ_WIN64 != 0
|
||||
|
||||
typedef unsigned long pj_os_err_type;
|
||||
# define pj_get_native_os_error() GetLastError()
|
||||
# define pj_get_native_netos_error() WSAGetLastError()
|
||||
|
||||
#elif defined(PJ_HAS_ERRNO_VAR) && PJ_HAS_ERRNO_VAR!= 0
|
||||
|
||||
typedef int pj_os_err_type;
|
||||
# define pj_get_native_os_error() (errno)
|
||||
# define pj_get_native_netos_error() (errno)
|
||||
|
||||
#else
|
||||
|
||||
# error "Please define how to get errno for this platform here!"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_ERRNO_H__ */
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_HIGH_PRECISION_H__
|
||||
#define __PJ_COMPAT_HIGH_PRECISION_H__
|
||||
|
||||
|
||||
#if defined(PJ_HAS_FLOATING_POINT) && PJ_HAS_FLOATING_POINT != 0
|
||||
/*
|
||||
* The first choice for high precision math is to use double.
|
||||
*/
|
||||
# include <math.h>
|
||||
typedef double pj_highprec_t;
|
||||
|
||||
# define PJ_HIGHPREC_VALUE_IS_ZERO(a) (a==0)
|
||||
# define pj_highprec_mod(a,b) (a=fmod(a,b))
|
||||
|
||||
#elif defined(PJ_HAS_INT64) && PJ_HAS_INT64 != 0
|
||||
/*
|
||||
* Next choice is to use 64-bit arithmatics.
|
||||
*/
|
||||
typedef pj_int64_t pj_highprec_t;
|
||||
|
||||
#else
|
||||
# warning "High precision math is not available"
|
||||
|
||||
/*
|
||||
* Last, fallback to 32-bit arithmetics.
|
||||
*/
|
||||
typedef pj_int32_t pj_highprec_t;
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def pj_highprec_mul
|
||||
* pj_highprec_mul(a1, a2) - High Precision Multiplication
|
||||
* Multiply a1 and a2, and store the result in a1.
|
||||
*/
|
||||
#ifndef pj_highprec_mul
|
||||
# define pj_highprec_mul(a1,a2) (a1 = a1 * a2)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def pj_highprec_div
|
||||
* pj_highprec_div(a1, a2) - High Precision Division
|
||||
* Divide a2 from a1, and store the result in a1.
|
||||
*/
|
||||
#ifndef pj_highprec_div
|
||||
# define pj_highprec_div(a1,a2) (a1 = a1 / a2)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def pj_highprec_mod
|
||||
* pj_highprec_mod(a1, a2) - High Precision Modulus
|
||||
* Get the modulus a2 from a1, and store the result in a1.
|
||||
*/
|
||||
#ifndef pj_highprec_mod
|
||||
# define pj_highprec_mod(a1,a2) (a1 = a1 % a2)
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* @def PJ_HIGHPREC_VALUE_IS_ZERO(a)
|
||||
* Test if the specified high precision value is zero.
|
||||
*/
|
||||
#ifndef PJ_HIGHPREC_VALUE_IS_ZERO
|
||||
# define PJ_HIGHPREC_VALUE_IS_ZERO(a) (a==0)
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_HIGH_PRECISION_H__ */
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2017 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2017 George Joseph <gjoseph@digium.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_LIMITS_H__
|
||||
#define __PJ_COMPAT_LIMITS_H__
|
||||
|
||||
/**
|
||||
* @file limits.h
|
||||
* @brief Provides integer limits normally found in limits.h.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_LIMITS_H) && PJ_HAS_LIMITS_H != 0
|
||||
# include <limits.h>
|
||||
#else
|
||||
|
||||
# ifdef _MSC_VER
|
||||
# pragma message("limits.h is not found or not supported. LONG_MIN and "\
|
||||
"LONG_MAX will be defined by the library in "\
|
||||
"pj/compats/limits.h and overridable in config_site.h")
|
||||
# else
|
||||
# warning "limits.h is not found or not supported. LONG_MIN and LONG_MAX " \
|
||||
"will be defined by the library in pj/compats/limits.h and "\
|
||||
"overridable in config_site.h"
|
||||
# endif
|
||||
|
||||
/* Minimum and maximum values a `signed long int' can hold. */
|
||||
# ifndef LONG_MAX
|
||||
# if __WORDSIZE == 64
|
||||
# define LONG_MAX 9223372036854775807L
|
||||
# else
|
||||
# define LONG_MAX 2147483647L
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef LONG_MIN
|
||||
# define LONG_MIN (-LONG_MAX - 1L)
|
||||
# endif
|
||||
|
||||
/* Maximum value an `unsigned long int' can hold. (Minimum is 0.) */
|
||||
# ifndef ULONG_MAX
|
||||
# if __WORDSIZE == 64
|
||||
# define ULONG_MAX 18446744073709551615UL
|
||||
# else
|
||||
# define ULONG_MAX 4294967295UL
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif /* __PJ_COMPAT_LIMITS_H__ */
|
||||
@@ -0,0 +1,36 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_ALPHA_H__
|
||||
#define __PJ_COMPAT_M_ALPHA_H__
|
||||
|
||||
/**
|
||||
* @file m_alpha.h
|
||||
* @brief Describes Alpha processor family specifics.
|
||||
*/
|
||||
|
||||
#define PJ_M_NAME "alpha"
|
||||
|
||||
#define PJ_HAS_PENTIUM 0
|
||||
#define PJ_IS_LITTLE_ENDIAN 1
|
||||
#define PJ_IS_BIG_ENDIAN 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_M_ALPHA_H__ */
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_ARMV4_H__
|
||||
#define __PJ_COMPAT_M_ARMV4_H__
|
||||
|
||||
/**
|
||||
* @file m_armv4.h
|
||||
* @brief Describes ARM family processor specifics.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file covers PJ_M_ARMV4 etc.
|
||||
*/
|
||||
|
||||
#define PJ_M_NAME "armv4"
|
||||
|
||||
#define PJ_HAS_PENTIUM 0
|
||||
#define PJ_IS_LITTLE_ENDIAN 1
|
||||
#define PJ_IS_BIG_ENDIAN 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_M_ARMV4_H__ */
|
||||
@@ -0,0 +1,60 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_AUTO_H__
|
||||
#define __PJ_COMPAT_M_AUTO_H__
|
||||
|
||||
/**
|
||||
* @file m_auto.h
|
||||
* @brief Automatically generated process definition file.
|
||||
*/
|
||||
|
||||
/* Machine name, filled in by autoconf script */
|
||||
#undef PJ_M_NAME
|
||||
|
||||
/* Endianness. It's reported on pjsip list on 09/02/13 that autoconf
|
||||
* endianness detection failed for universal build, so special case
|
||||
* for it here. Thanks Ruud Klaver for the fix.
|
||||
*/
|
||||
#ifdef PJ_DARWINOS
|
||||
# ifdef __BIG_ENDIAN__
|
||||
# define WORDS_BIGENDIAN 1
|
||||
# endif
|
||||
#else
|
||||
/* Endianness, as detected by autoconf */
|
||||
# undef WORDS_BIGENDIAN
|
||||
#endif
|
||||
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
# define PJ_IS_LITTLE_ENDIAN 0
|
||||
# define PJ_IS_BIG_ENDIAN 1
|
||||
#else
|
||||
# define PJ_IS_LITTLE_ENDIAN 1
|
||||
# define PJ_IS_BIG_ENDIAN 0
|
||||
#endif
|
||||
|
||||
|
||||
/* Specify if floating point is present/desired */
|
||||
#undef PJ_HAS_FLOATING_POINT
|
||||
|
||||
/* Deprecated */
|
||||
#define PJ_HAS_PENTIUM 0
|
||||
|
||||
#endif /* __PJ_COMPAT_M_AUTO_H__ */
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_i386_H__
|
||||
#define __PJ_COMPAT_M_i386_H__
|
||||
|
||||
/**
|
||||
* @file m_i386.h
|
||||
* @brief Describes Intel i386 family processor specifics.
|
||||
*/
|
||||
|
||||
#define PJ_M_NAME "i386"
|
||||
|
||||
#define PJ_HAS_PENTIUM 1
|
||||
#define PJ_IS_LITTLE_ENDIAN 1
|
||||
#define PJ_IS_BIG_ENDIAN 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_M_i386_H__ */
|
||||
@@ -0,0 +1,35 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_M68K_H__
|
||||
#define __PJ_COMPAT_M_M68K_H__
|
||||
|
||||
/**
|
||||
* @file m_m68k.h
|
||||
* @brief Describes Motorola m68k family processor specifics.
|
||||
*/
|
||||
|
||||
#define PJ_M_NAME "m68k"
|
||||
|
||||
#define PJ_HAS_PENTIUM 0
|
||||
#define PJ_IS_LITTLE_ENDIAN 1
|
||||
#define PJ_IS_BIG_ENDIAN 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_M_M68K_H__ */
|
||||
@@ -0,0 +1,36 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_POWERPC_H__
|
||||
#define __PJ_COMPAT_M_POWERPC_H__
|
||||
|
||||
/**
|
||||
* @file m_ppc.h
|
||||
* @brief Describes PowerPC family processor specifics.
|
||||
*/
|
||||
|
||||
#define PJ_M_NAME "powerpc"
|
||||
|
||||
#define PJ_HAS_PENTIUM 0
|
||||
#define PJ_IS_LITTLE_ENDIAN 0
|
||||
#define PJ_IS_BIG_ENDIAN 1
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_M_POWERPC_H__ */
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_SPARC_H__
|
||||
#define __PJ_COMPAT_M_SPARC_H__
|
||||
|
||||
/**
|
||||
* @file m_sparc.h
|
||||
* @brief Describes SPARC family processor specifics.
|
||||
*/
|
||||
|
||||
#define PJ_M_NAME "sparc"
|
||||
|
||||
#define PJ_HAS_PENTIUM 0
|
||||
#define PJ_IS_LITTLE_ENDIAN 0
|
||||
#define PJ_IS_BIG_ENDIAN 1
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_M_SPARC_H__ */
|
||||
@@ -0,0 +1,36 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_M_x86_64_H__
|
||||
#define __PJ_COMPAT_M_x86_64_H__
|
||||
|
||||
/**
|
||||
* @file m_i386.h
|
||||
* @brief Describes 64bit x86 Intel/AMD family processor specifics.
|
||||
*/
|
||||
|
||||
#define PJ_M_NAME "x86_64"
|
||||
|
||||
#define PJ_HAS_PENTIUM 1
|
||||
#define PJ_IS_LITTLE_ENDIAN 1
|
||||
#define PJ_IS_BIG_ENDIAN 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_M_x86_64_H__ */
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_MALLOC_H__
|
||||
#define __PJ_COMPAT_MALLOC_H__
|
||||
|
||||
/**
|
||||
* @file malloc.h
|
||||
* @brief Provides malloc() and free() functions.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_MALLOC_H) && PJ_HAS_MALLOC_H != 0
|
||||
# include <malloc.h>
|
||||
#elif defined(PJ_HAS_STDLIB_H) && PJ_HAS_STDLIB_H != 0
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#endif /* __PJ_COMPAT_MALLOC_H__ */
|
||||
@@ -0,0 +1,231 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_AUTO_H__
|
||||
#define __PJ_COMPAT_OS_AUTO_H__
|
||||
|
||||
/**
|
||||
* @file os_auto.h
|
||||
* @brief Describes operating system specifics (automatically detected by
|
||||
* autoconf)
|
||||
*/
|
||||
|
||||
/* Canonical OS name */
|
||||
#undef PJ_OS_NAME
|
||||
|
||||
/* Legacy macros */
|
||||
#undef PJ_WIN64
|
||||
#undef PJ_WIN32
|
||||
#undef PJ_WIN32_WINNT
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#undef PJ_DARWINOS
|
||||
#undef PJ_LINUX
|
||||
#undef PJ_RTEMS
|
||||
#undef PJ_SUNOS
|
||||
#undef PJ_ANDROID
|
||||
|
||||
#if defined(PJ_WIN32_WINNT) && !defined(_WIN32_WINNT)
|
||||
# define _WIN32_WINNT PJ_WIN32_WINNT
|
||||
#endif
|
||||
|
||||
/* Headers availability */
|
||||
#undef PJ_HAS_ARPA_INET_H
|
||||
#undef PJ_HAS_ASSERT_H
|
||||
#undef PJ_HAS_CTYPE_H
|
||||
#undef PJ_HAS_ERRNO_H
|
||||
#undef PJ_HAS_FCNTL_H
|
||||
#undef PJ_HAS_LIMITS_H
|
||||
#undef PJ_HAS_LINUX_SOCKET_H
|
||||
#undef PJ_HAS_MALLOC_H
|
||||
#undef PJ_HAS_NETDB_H
|
||||
#undef PJ_HAS_NETINET_IN_SYSTM_H
|
||||
#undef PJ_HAS_NETINET_IN_H
|
||||
#undef PJ_HAS_NETINET_IP_H
|
||||
#undef PJ_HAS_NETINET_TCP_H
|
||||
#undef PJ_HAS_NET_IF_H
|
||||
#undef PJ_HAS_IFADDRS_H
|
||||
#undef PJ_HAS_SEMAPHORE_H
|
||||
#undef PJ_HAS_SETJMP_H
|
||||
#undef PJ_HAS_STDARG_H
|
||||
#undef PJ_HAS_STDDEF_H
|
||||
#undef PJ_HAS_STDIO_H
|
||||
#undef PJ_HAS_STDINT_H
|
||||
#undef PJ_HAS_STDLIB_H
|
||||
#undef PJ_HAS_STRING_H
|
||||
#undef PJ_HAS_SYS_IOCTL_H
|
||||
#undef PJ_HAS_SYS_SELECT_H
|
||||
#undef PJ_HAS_SYS_SOCKET_H
|
||||
#undef PJ_HAS_SYS_TIME_H
|
||||
#undef PJ_HAS_SYS_TIMEB_H
|
||||
#undef PJ_HAS_SYS_TYPES_H
|
||||
#undef PJ_HAS_SYS_FILIO_H
|
||||
#undef PJ_HAS_SYS_SOCKIO_H
|
||||
#undef PJ_HAS_SYS_UTSNAME_H
|
||||
#undef PJ_HAS_TIME_H
|
||||
#undef PJ_HAS_UNISTD_H
|
||||
|
||||
#undef PJ_HAS_MSWSOCK_H
|
||||
#undef PJ_HAS_WINSOCK_H
|
||||
#undef PJ_HAS_WINSOCK2_H
|
||||
#undef PJ_HAS_WS2TCPIP_H
|
||||
|
||||
#undef PJ_SOCK_HAS_IPV6_V6ONLY
|
||||
#undef PJ_SOCK_HAS_INET_ATON
|
||||
#undef PJ_SOCK_HAS_INET_PTON
|
||||
#undef PJ_SOCK_HAS_INET_NTOP
|
||||
#undef PJ_SOCK_HAS_GETADDRINFO
|
||||
|
||||
/* On these OSes, semaphore feature depends on semaphore.h */
|
||||
#if defined(PJ_HAS_SEMAPHORE_H) && PJ_HAS_SEMAPHORE_H!=0
|
||||
# define PJ_HAS_SEMAPHORE 1
|
||||
#elif defined(PJ_WIN32) && PJ_WIN32!=0
|
||||
# define PJ_HAS_SEMAPHORE 1
|
||||
#else
|
||||
# define PJ_HAS_SEMAPHORE 0
|
||||
#endif
|
||||
|
||||
/* Do we have pthread_mutexattr_settype()? */
|
||||
#undef PJ_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
|
||||
/* Does pthread_mutexattr_t has "recursive" member? */
|
||||
#undef PJ_PTHREAD_MUTEXATTR_T_HAS_RECURSIVE
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#undef PJ_SOCKADDR_HAS_LEN
|
||||
|
||||
/* Does the OS have socklen_t? */
|
||||
#undef PJ_HAS_SOCKLEN_T
|
||||
|
||||
#if !defined(socklen_t) && (!defined(PJ_HAS_SOCKLEN_T) || PJ_HAS_SOCKLEN_T==0)
|
||||
# define PJ_HAS_SOCKLEN_T 1
|
||||
typedef int socklen_t;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#undef PJ_SELECT_NEEDS_NFDS
|
||||
|
||||
/* Was Linux epoll support enabled */
|
||||
#undef PJ_HAS_LINUX_EPOLL
|
||||
|
||||
/* Is errno a good way to retrieve OS errors?
|
||||
*/
|
||||
#undef PJ_HAS_ERRNO_VAR
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#undef PJ_HAS_SO_ERROR
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() can not return immediate daata.
|
||||
*/
|
||||
#undef PJ_BLOCKING_ERROR_VAL
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#undef PJ_BLOCKING_CONNECT_ERROR_VAL
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
/* Do we need high resolution timer? */
|
||||
#undef PJ_HAS_HIGH_RES_TIMER
|
||||
|
||||
/* Is malloc() available? */
|
||||
#undef PJ_HAS_MALLOC
|
||||
|
||||
#ifndef PJ_OS_HAS_CHECK_STACK
|
||||
# define PJ_OS_HAS_CHECK_STACK 0
|
||||
#endif
|
||||
|
||||
/* Is localtime_r() available? */
|
||||
#undef PJ_HAS_LOCALTIME_R
|
||||
|
||||
/* Unicode? */
|
||||
#undef PJ_NATIVE_STRING_IS_UNICODE
|
||||
|
||||
/* Pool alignment in bytes */
|
||||
#undef PJ_POOL_ALIGNMENT
|
||||
|
||||
/* The type of atomic variable value: */
|
||||
#undef PJ_ATOMIC_VALUE_TYPE
|
||||
|
||||
#if defined(PJ_DARWINOS) && PJ_DARWINOS!=0
|
||||
/* Disable local host resolution in pj_gethostip() (see ticket #1342) */
|
||||
# define PJ_GETHOSTIP_DISABLE_LOCAL_RESOLUTION 1
|
||||
/* Use pj_getaddrinfo() (instead of pj_inet_pton()) in
|
||||
* pj_sockaddr_set_str_addr()
|
||||
*/
|
||||
# define PJ_SOCKADDR_USE_GETADDRINFO 1
|
||||
|
||||
# include "TargetConditionals.h"
|
||||
# if TARGET_OS_IPHONE
|
||||
# include "Availability.h"
|
||||
/* Use CFHost API for pj_getaddrinfo() (see ticket #1246) */
|
||||
# ifndef PJ_GETADDRINFO_USE_CFHOST
|
||||
# define PJ_GETADDRINFO_USE_CFHOST 0
|
||||
# endif
|
||||
# ifdef __IPHONE_4_0
|
||||
/* Is multitasking support available? (see ticket #1107) */
|
||||
# define PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT 1
|
||||
/* Enable activesock TCP background mode support */
|
||||
# define PJ_ACTIVESOCK_TCP_IPHONE_OS_BG 1
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#undef PJ_EMULATE_RWMUTEX
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#undef PJ_THREAD_SET_STACK_SIZE
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#undef PJ_THREAD_ALLOCATE_STACK
|
||||
|
||||
/* SSL socket availability. */
|
||||
#ifndef PJ_HAS_SSL_SOCK
|
||||
#undef PJ_HAS_SSL_SOCK
|
||||
#endif
|
||||
#ifndef PJ_SSL_SOCK_IMP
|
||||
# define PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_NONE
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_AUTO_H__ */
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_DARWINOS_H__
|
||||
#define __PJ_COMPAT_OS_DARWINOS_H__
|
||||
|
||||
/**
|
||||
* @file os_darwinos.h
|
||||
* @brief Describes Darwin/MacOSX operating system specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "darwin"
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 1
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 1
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 0
|
||||
#define PJ_HAS_NETDB_H 1
|
||||
#define PJ_HAS_NETINET_IN_H 1
|
||||
#define PJ_HAS_NETINET_TCP_H 1
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 1
|
||||
#define PJ_HAS_SYS_SELECT_H 1
|
||||
#define PJ_HAS_SYS_SOCKET_H 1
|
||||
#define PJ_HAS_SYS_TIME_H 1
|
||||
#define PJ_HAS_SYS_TIMEB_H 1
|
||||
#define PJ_HAS_SYS_TYPES_H 1
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 1
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 0
|
||||
|
||||
#define PJ_HAS_LOCALTIME_R 1
|
||||
|
||||
/* Is errno a good way to retrieve OS errors?
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 1
|
||||
|
||||
/* Has inet_aton() ?
|
||||
*/
|
||||
#define PJ_SOCK_HAS_INET_ATON 1
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 1
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() can not return immediate daata.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL EWOULDBLOCK
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL EINPROGRESS
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_HAS_MALLOC 1
|
||||
#ifndef PJ_OS_HAS_CHECK_STACK
|
||||
# define PJ_OS_HAS_CHECK_STACK 0
|
||||
#endif
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 0
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE long
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 1
|
||||
|
||||
/*
|
||||
* gcc complains that it can not use precompiled header because
|
||||
* the value of FD_SETSIZE that we declare in pj/config.h is
|
||||
* different than the value in /usr/include/sys/types.h.
|
||||
*
|
||||
* This changes the default value for Darwin.
|
||||
*/
|
||||
#define PJ_IOQUEUE_MAX_HANDLES 1024
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 0
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
/* MacOS has had socklen since 10.4 */
|
||||
#define PJ_HAS_SOCKLEN_T 1
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_DARWINOS_H__ */
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_LINUX_H__
|
||||
#define __PJ_COMPAT_OS_LINUX_H__
|
||||
|
||||
/**
|
||||
* @file os_linux.h
|
||||
* @brief Describes Linux operating system specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "linux"
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 1
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 1
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 1
|
||||
#define PJ_HAS_NETDB_H 1
|
||||
#define PJ_HAS_NETINET_IN_H 1
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 1
|
||||
#define PJ_HAS_SYS_SELECT_H 1
|
||||
#define PJ_HAS_SYS_SOCKET_H 1
|
||||
#define PJ_HAS_SYS_TIME_H 1
|
||||
#define PJ_HAS_SYS_TIMEB_H 1
|
||||
#define PJ_HAS_SYS_TYPES_H 1
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 1
|
||||
#define PJ_HAS_SEMAPHORE_H 1
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 0
|
||||
|
||||
#define PJ_HAS_LOCALTIME_R 1
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 1
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 0
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* Is errno a good way to retrieve OS errors?
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 1
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 1
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() can not return immediate daata.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL EAGAIN
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL EINPROGRESS
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_HAS_MALLOC 1
|
||||
#ifndef PJ_OS_HAS_CHECK_STACK
|
||||
# define PJ_OS_HAS_CHECK_STACK 0
|
||||
#endif
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 0
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE long
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 0
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
/* Linux has socklen_t */
|
||||
#define PJ_HAS_SOCKLEN_T 1
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_LINUX_H__ */
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_PALMOS_H__
|
||||
#define __PJ_COMPAT_OS_PALMOS_H__
|
||||
|
||||
/**
|
||||
* @file os_palmos.h
|
||||
* @brief Describes PalmOS operating system specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "palmos"
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 0
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 0
|
||||
#define PJ_HAS_MALLOC_H 1
|
||||
#define PJ_HAS_NETDB_H 0
|
||||
#define PJ_HAS_NETINET_IN_H 0
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 0
|
||||
#define PJ_HAS_SYS_SELECT_H 0
|
||||
#define PJ_HAS_SYS_SOCKET_H 0
|
||||
#define PJ_HAS_SYS_TIMEB_H 0
|
||||
#define PJ_HAS_SYS_TYPES_H 1
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 0
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 0
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 0
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 0
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* Is errno a good way to retrieve OS errors?
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 0
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 0
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() can not return immediate daata.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL xxx
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL xxx
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#ifndef PJ_OS_HAS_CHECK_STACK
|
||||
# define PJ_OS_HAS_CHECK_STACK 0
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 0
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 1
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_PALMOS_H__ */
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* Thanks Zetron, Inc and Phil Torre <ptorre@zetron.com> for donating PJLIB
|
||||
* port to RTEMS.
|
||||
*/
|
||||
|
||||
#ifndef __PJ_COMPAT_OS_RTEMS_H__
|
||||
#define __PJ_COMPAT_OS_RTEMS_H__
|
||||
|
||||
/**
|
||||
* @file os_linux.h
|
||||
* @brief Describes Linux operating system specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "rtems"
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 1
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 1
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 1
|
||||
#define PJ_HAS_NETDB_H 1
|
||||
#define PJ_HAS_NETINET_IN_H 1
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 0
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 1
|
||||
#define PJ_HAS_SYS_SELECT_H 1
|
||||
#define PJ_HAS_SYS_SOCKET_H 1
|
||||
#define PJ_HAS_SYS_TIME_H 1
|
||||
#define PJ_HAS_SYS_TIMEB_H 1
|
||||
#define PJ_HAS_SYS_TYPES_H 1
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 1
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 0
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 1
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 1
|
||||
|
||||
/* Is errno a good way to retrieve OS errors?
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 1
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 1
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 1
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() can not return immediate daata.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL EWOULDBLOCK
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL EINPROGRESS
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_HAS_MALLOC 1
|
||||
#ifndef PJ_OS_HAS_CHECK_STACK
|
||||
# define PJ_OS_HAS_CHECK_STACK 0
|
||||
#endif
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 0
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE int
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 1
|
||||
|
||||
/* Missing socklen_t */
|
||||
typedef int socklen_t;
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 1
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 1
|
||||
|
||||
/* RTEMS has socklen_t (does it? )*/
|
||||
#define PJ_HAS_SOCKLEN_T 1
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_RTEMS_H__ */
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_SUNOS_H__
|
||||
#define __PJ_COMPAT_OS_SUNOS_H__
|
||||
|
||||
/**
|
||||
* @file os_sunos.h
|
||||
* @brief Describes SunOS/Solaris operating system specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "sunos"
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 1
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 1
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 1
|
||||
#define PJ_HAS_NETDB_H 1
|
||||
#define PJ_HAS_NETINET_IN_H 1
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 1
|
||||
#define PJ_HAS_SYS_SELECT_H 1
|
||||
#define PJ_HAS_SYS_SOCKET_H 1
|
||||
#define PJ_HAS_SYS_TIME_H 0
|
||||
#define PJ_HAS_SYS_TIMEB_H 1
|
||||
#define PJ_HAS_SYS_TYPES_H 1
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 1
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 0
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 0
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 0
|
||||
|
||||
/* Is errno a good way to retrieve OS errors?
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 1
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 0
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() can not return immediate daata.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL EWOULDBLOCK
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL EINPROGRESS
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_HAS_MALLOC 1
|
||||
#ifndef PJ_OS_HAS_CHECK_STACK
|
||||
# define PJ_OS_HAS_CHECK_STACK 0
|
||||
#endif
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 0
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE long
|
||||
|
||||
/* Get BSD related identifers in Sun's include files */
|
||||
#define BSD_COMP
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 0
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
/* SunOS has socklen_t (does it? )*/
|
||||
#define PJ_HAS_SOCKLEN_T 1
|
||||
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_SUNOS_H__ */
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_SYMBIAN_H__
|
||||
#define __PJ_COMPAT_OS_SYMBIAN_H__
|
||||
|
||||
/**
|
||||
* @file os_symbian.h
|
||||
* @brief Describes Symbian operating system specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "symbian"
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 1
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 1
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 0
|
||||
#define PJ_HAS_NETDB_H 1
|
||||
#define PJ_HAS_NETINET_IN_H 1
|
||||
#define PJ_HAS_NETINET_TCP_H 0
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_NO_SNPRINTF 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 1
|
||||
#define PJ_HAS_SYS_SELECT_H 0
|
||||
#define PJ_HAS_SYS_SOCKET_H 1
|
||||
#define PJ_HAS_SYS_TIME_H 1
|
||||
#define PJ_HAS_SYS_TIMEB_H 0
|
||||
#define PJ_HAS_SYS_TYPES_H 1
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 1
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 0
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 0
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 0
|
||||
/* Is errno a good way to retrieve OS errors?
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 1
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 1
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() can not return immediate daata.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL EAGAIN
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL EINPROGRESS
|
||||
|
||||
/*
|
||||
* We don't want to use threads in Symbian
|
||||
*/
|
||||
#define PJ_HAS_THREADS 0
|
||||
|
||||
|
||||
/*
|
||||
* Declare __FD_SETSIZE now before including <linux*>.
|
||||
#define __FD_SETSIZE PJ_IOQUEUE_MAX_HANDLES
|
||||
*/
|
||||
|
||||
#ifndef NULL
|
||||
# define NULL 0
|
||||
#endif
|
||||
|
||||
/* Endianness */
|
||||
#ifndef PJ_IS_LITTLE_ENDIAN
|
||||
# define PJ_IS_LITTLE_ENDIAN 1
|
||||
# define PJ_IS_BIG_ENDIAN 0
|
||||
#endif
|
||||
|
||||
/* Doesn't seem to allow more than this */
|
||||
#define PJ_IOQUEUE_MAX_HANDLES 8
|
||||
|
||||
/*
|
||||
* Override features.
|
||||
*/
|
||||
#define PJ_HAS_FLOATING_POINT 0
|
||||
#define PJ_HAS_MALLOC 0
|
||||
#define PJ_HAS_SEMAPHORE 1
|
||||
#define PJ_HAS_EVENT_OBJ 0
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_OS_HAS_CHECK_STACK 0
|
||||
#define PJ_TERM_HAS_COLOR 0
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 0
|
||||
#define PJ_NATIVE_ERR_POSITIVE 0
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE int
|
||||
#define PJ_THREAD_DESC_SIZE 128
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 1
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
/* Missing socklen_t */
|
||||
#define PJ_HAS_SOCKLEN_T 1
|
||||
typedef unsigned int socklen_t;
|
||||
|
||||
#ifndef __GCCE__
|
||||
#include <e32def.h>
|
||||
#endif
|
||||
|
||||
#define PJ_EXPORT_DECL_SPECIFIER IMPORT_C
|
||||
//#define PJ_EXPORT_DECL_SPECIFIER
|
||||
#define PJ_EXPORT_DEF_SPECIFIER EXPORT_C
|
||||
#define PJ_IMPORT_DECL_SPECIFIER IMPORT_C
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_SYMBIAN_H__ */
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_WIN32_H__
|
||||
#define __PJ_COMPAT_OS_WIN32_H__
|
||||
|
||||
/**
|
||||
* @file os_win32.h
|
||||
* @brief Describes Win32 operating system family specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "win32"
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define PJ_WIN32_WINNT 0x0400
|
||||
#ifndef _WIN32_WINNT
|
||||
# define _WIN32_WINNT PJ_WIN32_WINNT
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 0
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 0 /* Must be zero, otherwise errno_test() fails. */
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 1
|
||||
#define PJ_HAS_NETDB_H 0
|
||||
#define PJ_HAS_NETINET_IN_H 0
|
||||
#define PJ_HAS_NETINET_TCP_H 0
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#undef PJ_HAS_STDINT_H
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 0
|
||||
#define PJ_HAS_SYS_SELECT_H 0
|
||||
#define PJ_HAS_SYS_SOCKET_H 0
|
||||
#define PJ_HAS_SYS_TIME_H 0
|
||||
#define PJ_HAS_SYS_TIMEB_H 1
|
||||
#define PJ_HAS_SYS_TYPES_H 1
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 0
|
||||
#define PJ_HAS_LIMITS_H 1
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 1
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 1
|
||||
#define PJ_HAS_WS2TCPIP_H 1
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 0
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 0
|
||||
|
||||
/* Is errno a good way to retrieve OS errors? (No)
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 0
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 1
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() or send() can not return immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL WSAEWOULDBLOCK
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL WSAEWOULDBLOCK
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_HAS_MALLOC 1
|
||||
#ifndef PJ_OS_HAS_CHECK_STACK
|
||||
# define PJ_OS_HAS_CHECK_STACK 1
|
||||
#endif
|
||||
|
||||
#ifdef UNICODE
|
||||
# define PJ_NATIVE_STRING_IS_UNICODE 1
|
||||
#else
|
||||
# define PJ_NATIVE_STRING_IS_UNICODE 0
|
||||
#endif
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE long
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 1
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_WIN32_H__ */
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_WIN32_WINCE_H__
|
||||
#define __PJ_COMPAT_OS_WIN32_WINCE_H__
|
||||
|
||||
/**
|
||||
* @file os_win32.h
|
||||
* @brief Describes Win32 operating system family specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "win32-wince"
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define RPC_NO_WINDOWS_H
|
||||
//#define PJ_WIN32_WINNT 0x0400
|
||||
//#define _WIN32_WINNT PJ_WIN32_WINNT
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 0
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 0 /* Must be zero, otherwise errno_test() fails. */
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 1
|
||||
#define PJ_HAS_NETDB_H 0
|
||||
#define PJ_HAS_NETINET_IN_H 0
|
||||
#define PJ_HAS_NETINET_TCP_H 0
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 0
|
||||
#define PJ_HAS_SYS_SELECT_H 0
|
||||
#define PJ_HAS_SYS_SOCKET_H 0
|
||||
#define PJ_HAS_SYS_TIME_H 0
|
||||
#define PJ_HAS_SYS_TIMEB_H 0 /* Doesn't have sys/timeb.h */
|
||||
#define PJ_HAS_SYS_TYPES_H 0 /* Doesn't have sys/types.h */
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 0
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 1
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 1
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 0
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 0
|
||||
|
||||
/* Is errno a good way to retrieve OS errors? (no)
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 0
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 0
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() or send() can not return immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL WSAEWOULDBLOCK
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL WSAEWOULDBLOCK
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* Endianness */
|
||||
#ifndef PJ_IS_LITTLE_ENDIAN
|
||||
# define PJ_IS_LITTLE_ENDIAN 1
|
||||
# define PJ_IS_BIG_ENDIAN 0
|
||||
#endif
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_HAS_MALLOC 1
|
||||
#define PJ_OS_HAS_CHECK_STACK 1
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE long
|
||||
|
||||
/* TlsAlloc() error value. */
|
||||
#define TLS_OUT_OF_INDEXES 0xFFFFFFFF
|
||||
|
||||
/* No console. */
|
||||
#define PJ_TERM_HAS_COLOR 0
|
||||
|
||||
/* No rdtsc */
|
||||
#define PJ_TIMESTAMP_USE_RDTSC 0
|
||||
|
||||
/* Native string is Unicode. */
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 1
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 1
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_WIN32_WINCE_H__ */
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_WINPHONE8_H__
|
||||
#define __PJ_COMPAT_OS_WINPHONE8_H__
|
||||
|
||||
/**
|
||||
* @file os_winphone8.h
|
||||
* @brief Describes Windows Phone 8 operating system family specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "winphone8"
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define RPC_NO_WINDOWS_H
|
||||
#define PJ_WIN32_WINNT 0x0602 /*_WIN32_WINNT_WIN8*/
|
||||
#ifdef _WIN32_WINNT
|
||||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT PJ_WIN32_WINNT
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 0
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 0 /* Must be zero, otherwise errno_test() fails. */
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 1
|
||||
#define PJ_HAS_NETDB_H 0
|
||||
#define PJ_HAS_NETINET_IN_H 0
|
||||
#define PJ_HAS_NETINET_TCP_H 0
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 0
|
||||
#define PJ_HAS_SYS_SELECT_H 0
|
||||
#define PJ_HAS_SYS_SOCKET_H 0
|
||||
#define PJ_HAS_SYS_TIME_H 0
|
||||
#define PJ_HAS_SYS_TIMEB_H 0 /* Doesn't have sys/timeb.h */
|
||||
#define PJ_HAS_SYS_TYPES_H 0 /* Doesn't have sys/types.h */
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 0
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 1
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 1
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 0
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 0
|
||||
|
||||
/* Is errno a good way to retrieve OS errors? (no)
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 0
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 0
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() or send() can not return immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL WSAEWOULDBLOCK
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL WSAEWOULDBLOCK
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* Endianness */
|
||||
#ifndef PJ_IS_LITTLE_ENDIAN
|
||||
# define PJ_IS_LITTLE_ENDIAN 1
|
||||
# define PJ_IS_BIG_ENDIAN 0
|
||||
#endif
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_HAS_MALLOC 1
|
||||
#define PJ_OS_HAS_CHECK_STACK 1
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE long
|
||||
|
||||
/* No console. */
|
||||
#define PJ_TERM_HAS_COLOR 0
|
||||
|
||||
/* TlsAlloc() error value. */
|
||||
#ifndef TLS_OUT_OF_INDEXES
|
||||
#define TLS_OUT_OF_INDEXES 0xFFFFFFFF
|
||||
#endif
|
||||
|
||||
/* No rdtsc */
|
||||
#define PJ_TIMESTAMP_USE_RDTSC 0
|
||||
|
||||
/* Native string is Unicode. */
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 1
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 1
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_WINPHONE8_H__ */
|
||||
@@ -0,0 +1,148 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_OS_UWP_H__
|
||||
#define __PJ_COMPAT_OS_UWP_H__
|
||||
|
||||
/**
|
||||
* @file os_winuwp.h
|
||||
* @brief Describes Windows UWP operating system family specifics.
|
||||
*/
|
||||
|
||||
#define PJ_OS_NAME "winuwp"
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define RPC_NO_WINDOWS_H
|
||||
#define PJ_WIN32_WINNT 0x0602 /*_WIN32_WINNT_WIN8*/
|
||||
#ifdef _WIN32_WINNT
|
||||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT PJ_WIN32_WINNT
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_ARPA_INET_H 0
|
||||
#define PJ_HAS_ASSERT_H 1
|
||||
#define PJ_HAS_CTYPE_H 1
|
||||
#define PJ_HAS_ERRNO_H 0 /* Must be zero, otherwise errno_test() fails. */
|
||||
#define PJ_HAS_LINUX_SOCKET_H 0
|
||||
#define PJ_HAS_MALLOC_H 1
|
||||
#define PJ_HAS_NETDB_H 0
|
||||
#define PJ_HAS_NETINET_IN_H 0
|
||||
#define PJ_HAS_NETINET_TCP_H 0
|
||||
#define PJ_HAS_SETJMP_H 1
|
||||
#define PJ_HAS_STDARG_H 1
|
||||
#define PJ_HAS_STDDEF_H 1
|
||||
#define PJ_HAS_STDIO_H 1
|
||||
#define PJ_HAS_STDLIB_H 1
|
||||
#define PJ_HAS_STRING_H 1
|
||||
#define PJ_HAS_SYS_IOCTL_H 0
|
||||
#define PJ_HAS_SYS_SELECT_H 0
|
||||
#define PJ_HAS_SYS_SOCKET_H 0
|
||||
#define PJ_HAS_SYS_TIME_H 0
|
||||
#define PJ_HAS_SYS_TIMEB_H 0 /* Doesn't have sys/timeb.h */
|
||||
#define PJ_HAS_SYS_TYPES_H 0 /* Doesn't have sys/types.h */
|
||||
#define PJ_HAS_TIME_H 1
|
||||
#define PJ_HAS_UNISTD_H 0
|
||||
|
||||
#define PJ_HAS_MSWSOCK_H 1
|
||||
#define PJ_HAS_WINSOCK_H 0
|
||||
#define PJ_HAS_WINSOCK2_H 1
|
||||
|
||||
#define PJ_SOCK_HAS_INET_ATON 0
|
||||
|
||||
/* Set 1 if native sockaddr_in has sin_len member.
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SOCKADDR_HAS_LEN 0
|
||||
|
||||
/* Is errno a good way to retrieve OS errors? (no)
|
||||
*/
|
||||
#define PJ_HAS_ERRNO_VAR 0
|
||||
|
||||
/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
|
||||
* the status of non-blocking connect() operation.
|
||||
*/
|
||||
#define PJ_HAS_SO_ERROR 0
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket recv() or send() can not return immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_ERROR_VAL WSAEWOULDBLOCK
|
||||
|
||||
/* This value specifies the value set in errno by the OS when a non-blocking
|
||||
* socket connect() can not get connected immediately.
|
||||
*/
|
||||
#define PJ_BLOCKING_CONNECT_ERROR_VAL WSAEWOULDBLOCK
|
||||
|
||||
/**
|
||||
* If this macro is set, it tells select I/O Queue that select() needs to
|
||||
* be given correct value of nfds (i.e. largest fd + 1). This requires
|
||||
* select ioqueue to re-scan the descriptors on each registration and
|
||||
* unregistration.
|
||||
* If this macro is not set, then ioqueue will always give FD_SETSIZE for
|
||||
* nfds argument when calling select().
|
||||
*
|
||||
* Default: 0
|
||||
*/
|
||||
#define PJ_SELECT_NEEDS_NFDS 0
|
||||
|
||||
/* Endianness */
|
||||
#ifndef PJ_IS_LITTLE_ENDIAN
|
||||
# define PJ_IS_LITTLE_ENDIAN 1
|
||||
# define PJ_IS_BIG_ENDIAN 0
|
||||
#endif
|
||||
|
||||
/* Default threading is enabled, unless it's overridden. */
|
||||
#ifndef PJ_HAS_THREADS
|
||||
# define PJ_HAS_THREADS (1)
|
||||
#endif
|
||||
|
||||
#define PJ_HAS_HIGH_RES_TIMER 1
|
||||
#define PJ_HAS_MALLOC 1
|
||||
|
||||
#ifndef PJ_OS_HAS_CHECK_STACK
|
||||
# define PJ_OS_HAS_CHECK_STACK 0
|
||||
#endif
|
||||
|
||||
#define PJ_ATOMIC_VALUE_TYPE long
|
||||
|
||||
/* No console. */
|
||||
#define PJ_TERM_HAS_COLOR 0
|
||||
|
||||
/* No rdtsc */
|
||||
#define PJ_TIMESTAMP_USE_RDTSC 0
|
||||
|
||||
/* Native string is Unicode. */
|
||||
#define PJ_NATIVE_STRING_IS_UNICODE 1
|
||||
|
||||
/* If 1, use Read/Write mutex emulation for platforms that don't support it */
|
||||
#define PJ_EMULATE_RWMUTEX 1
|
||||
|
||||
/* If 1, pj_thread_create() should enforce the stack size when creating
|
||||
* threads.
|
||||
* Default: 0 (let OS decide the thread's stack size).
|
||||
*/
|
||||
#define PJ_THREAD_SET_STACK_SIZE 0
|
||||
|
||||
/* If 1, pj_thread_create() should allocate stack from the pool supplied.
|
||||
* Default: 0 (let OS allocate memory for thread's stack).
|
||||
*/
|
||||
#define PJ_THREAD_ALLOCATE_STACK 0
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_OS_UWP_H__ */
|
||||
@@ -0,0 +1,56 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_RAND_H__
|
||||
#define __PJ_COMPAT_RAND_H__
|
||||
|
||||
/**
|
||||
* @file rand.h
|
||||
* @brief Provides platform_rand() and platform_srand() functions.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_STDLIB_H) && PJ_HAS_STDLIB_H != 0
|
||||
/*
|
||||
* Use stdlib based rand() and srand().
|
||||
*/
|
||||
# include <stdlib.h>
|
||||
# define platform_srand srand
|
||||
# if defined(RAND_MAX) && RAND_MAX <= 0xFFFF
|
||||
/*
|
||||
* When rand() is only 16 bit strong, double the strength
|
||||
* by calling it twice!
|
||||
*/
|
||||
PJ_INLINE(int) platform_rand(void)
|
||||
{
|
||||
return ((rand() & 0xFFFF) << 16) | (rand() & 0xFFFF);
|
||||
}
|
||||
# else
|
||||
# define platform_rand rand
|
||||
# endif
|
||||
|
||||
#else
|
||||
# warning "platform_rand() is not implemented"
|
||||
# define platform_rand() 1
|
||||
# define platform_srand(seed)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_RAND_H__ */
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_SETJMP_H__
|
||||
#define __PJ_COMPAT_SETJMP_H__
|
||||
|
||||
/**
|
||||
* @file setjmp.h
|
||||
* @brief Provides setjmp.h functionality.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_SETJMP_H) && PJ_HAS_SETJMP_H != 0
|
||||
# include <setjmp.h>
|
||||
typedef jmp_buf pj_jmp_buf;
|
||||
# ifndef pj_setjmp
|
||||
# define pj_setjmp(buf) setjmp(buf)
|
||||
# endif
|
||||
# ifndef pj_longjmp
|
||||
# define pj_longjmp(buf,d) longjmp(buf,d)
|
||||
# endif
|
||||
|
||||
#elif defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
|
||||
/* Symbian framework don't use setjmp/longjmp */
|
||||
|
||||
#else
|
||||
# warning "setjmp()/longjmp() is not implemented"
|
||||
typedef int pj_jmp_buf[1];
|
||||
# define pj_setjmp(buf) 0
|
||||
# define pj_longjmp(buf,d) 0
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_SETJMP_H__ */
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_SIZE_T_H__
|
||||
#define __PJ_COMPAT_SIZE_T_H__
|
||||
|
||||
/**
|
||||
* @file size_t.h
|
||||
* @brief Provides size_t type.
|
||||
*/
|
||||
#if PJ_HAS_STDDEF_H
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
|
||||
#endif /* __PJ_COMPAT_SIZE_T_H__ */
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_SOCKET_H__
|
||||
#define __PJ_COMPAT_SOCKET_H__
|
||||
|
||||
/**
|
||||
* @file socket.h
|
||||
* @brief Provides all socket related functions,data types, error codes, etc.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_WINSOCK2_H) && PJ_HAS_WINSOCK2_H != 0
|
||||
# include <winsock2.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_WINSOCK_H) && PJ_HAS_WINSOCK_H != 0
|
||||
# include <winsock.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_WS2TCPIP_H) && PJ_HAS_WS2TCPIP_H != 0
|
||||
# include <ws2tcpip.h>
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* IPv6 for Visual Studio's
|
||||
*
|
||||
* = Visual Studio 6 =
|
||||
*
|
||||
* Visual Studio 6 does not ship with IPv6 support, so you MUST
|
||||
* download and install IPv6 Tehnology Preview (IPv6Kit) from:
|
||||
* http://msdn.microsoft.com/downloads/sdks/platform/tpipv6/ReadMe.asp
|
||||
* Then put IPv6Kit\inc in your Visual Studio include path.
|
||||
*
|
||||
* In addition, by default IPv6Kit does not want to install on
|
||||
* Windows 2000 SP4. Please see:
|
||||
* http://msdn.microsoft.com/downloads/sdks/platform/tpipv6/faq.asp
|
||||
* on how to install IPv6Kit on Win2K SP4.
|
||||
*
|
||||
*
|
||||
* = Visual Studio 2003, 2005 (including Express) =
|
||||
*
|
||||
* These VS uses Microsoft Platform SDK for Windows Server 2003 SP1, and
|
||||
* it has built-in IPv6 support.
|
||||
*/
|
||||
#if defined(_MSC_VER) && defined(PJ_HAS_IPV6) && PJ_HAS_IPV6!=0
|
||||
# ifndef s_addr
|
||||
# define s_addr S_un.S_addr
|
||||
# endif
|
||||
|
||||
# if !defined(IPPROTO_IPV6) && (_WIN32_WINNT == 0x0500)
|
||||
/* Need to download and install IPv6Kit for this platform.
|
||||
* Please see the comments above about Visual Studio 6.
|
||||
*/
|
||||
# include <tpipv6.h>
|
||||
# endif
|
||||
|
||||
# define PJ_SOCK_HAS_GETADDRINFO 1
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
#if defined(PJ_HAS_SYS_TYPES_H) && PJ_HAS_SYS_TYPES_H != 0
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_SYS_SOCKET_H) && PJ_HAS_SYS_SOCKET_H != 0
|
||||
# include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_LINUX_SOCKET_H) && PJ_HAS_LINUX_SOCKET_H != 0
|
||||
# include <linux/socket.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_SYS_SELECT_H) && PJ_HAS_SYS_SELECT_H != 0
|
||||
# include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_NETINET_IN_H) && PJ_HAS_NETINET_IN_H != 0
|
||||
# include <netinet/in.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_NETINET_IN_SYSTM_H) && PJ_HAS_NETINET_IN_SYSTM_H != 0
|
||||
/* Required to include netinet/ip.h in FreeBSD 7.0 */
|
||||
# include <netinet/in_systm.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_NETINET_IP_H) && PJ_HAS_NETINET_IP_H != 0
|
||||
/* To pull in IPTOS_* constants */
|
||||
# include <netinet/ip.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_NETINET_TCP_H) && PJ_HAS_NETINET_TCP_H != 0
|
||||
/* To pull in TCP_NODELAY constants */
|
||||
# include <netinet/tcp.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_NET_IF_H) && PJ_HAS_NET_IF_H != 0
|
||||
/* For interface enumeration in ip_helper */
|
||||
# include <net/if.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_IFADDRS_H) && PJ_HAS_IFADDRS_H != 0
|
||||
/* Interface enum with getifaddrs() which works with IPv6 */
|
||||
# include <ifaddrs.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_ARPA_INET_H) && PJ_HAS_ARPA_INET_H != 0
|
||||
# include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_SYS_IOCTL_H) && PJ_HAS_SYS_IOCTL_H != 0
|
||||
# include <sys/ioctl.h> /* FBIONBIO */
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_ERRNO_H) && PJ_HAS_ERRNO_H != 0
|
||||
# include <errno.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_NETDB_H) && PJ_HAS_NETDB_H != 0
|
||||
# include <netdb.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_UNISTD_H) && PJ_HAS_UNISTD_H != 0
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_SYS_FILIO_H) && PJ_HAS_SYS_FILIO_H != 0
|
||||
# include <sys/filio.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_SYS_SOCKIO_H) && PJ_HAS_SYS_SOCKIO_H != 0
|
||||
# include <sys/sockio.h>
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Define common errors.
|
||||
*/
|
||||
#if (defined(PJ_WIN32) && PJ_WIN32!=0) || \
|
||||
(defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0) || \
|
||||
(defined(PJ_WIN64) && PJ_WIN64!=0)
|
||||
# define OSERR_EWOULDBLOCK WSAEWOULDBLOCK
|
||||
# define OSERR_EINPROGRESS WSAEINPROGRESS
|
||||
# define OSERR_ECONNRESET WSAECONNRESET
|
||||
# define OSERR_ENOTCONN WSAENOTCONN
|
||||
# define OSERR_EAFNOSUPPORT WSAEAFNOSUPPORT
|
||||
# define OSERR_ENOPROTOOPT WSAENOPROTOOPT
|
||||
#elif defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
|
||||
# define OSERR_EWOULDBLOCK -1
|
||||
# define OSERR_EINPROGRESS -1
|
||||
# define OSERR_ECONNRESET -1
|
||||
# define OSERR_ENOTCONN -1
|
||||
# define OSERR_EAFNOSUPPORT -1
|
||||
# define OSERR_ENOPROTOOPT -1
|
||||
#else
|
||||
# define OSERR_EWOULDBLOCK EWOULDBLOCK
|
||||
# define OSERR_EINPROGRESS EINPROGRESS
|
||||
# define OSERR_ECONNRESET ECONNRESET
|
||||
# define OSERR_ENOTCONN ENOTCONN
|
||||
# define OSERR_EAFNOSUPPORT EAFNOSUPPORT
|
||||
# define OSERR_ENOPROTOOPT ENOPROTOOPT
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* And undefine these..
|
||||
* Note (see issue #2311): unfortunately, this may cause build failure
|
||||
* to anyone who uses these standard macros.
|
||||
*/
|
||||
//#undef s_addr
|
||||
//#undef s6_addr
|
||||
//#undef sin_zero
|
||||
|
||||
/*
|
||||
* This will finally be obsoleted, since it should be declared in
|
||||
* os_auto.h
|
||||
*/
|
||||
#if !defined(PJ_HAS_SOCKLEN_T) || PJ_HAS_SOCKLEN_T==0
|
||||
typedef int socklen_t;
|
||||
#endif
|
||||
|
||||
/* Regarding sin_len member of sockaddr_in:
|
||||
* BSD systems (including MacOS X requires that the sin_len member of
|
||||
* sockaddr_in be set to sizeof(sockaddr_in), while other systems (Windows
|
||||
* and Linux included) do not.
|
||||
*
|
||||
* To maintain compatibility between systems, PJLIB will automatically
|
||||
* set this field before invoking native OS socket API, and it will
|
||||
* always reset the field to zero before returning pj_sockaddr_in to
|
||||
* application (such as in pj_getsockname() and pj_recvfrom()).
|
||||
*
|
||||
* Application MUST always set this field to zero.
|
||||
*
|
||||
* This way we can avoid hard to find problem such as when the socket
|
||||
* address is used as hash table key.
|
||||
*/
|
||||
#if defined(PJ_SOCKADDR_HAS_LEN) && PJ_SOCKADDR_HAS_LEN!=0
|
||||
# define PJ_SOCKADDR_SET_LEN(addr,len) (((pj_addr_hdr*)(addr))->sa_zero_len=(len))
|
||||
# define PJ_SOCKADDR_RESET_LEN(addr) (((pj_addr_hdr*)(addr))->sa_zero_len=0)
|
||||
#else
|
||||
# define PJ_SOCKADDR_SET_LEN(addr,len)
|
||||
# define PJ_SOCKADDR_RESET_LEN(addr)
|
||||
#endif
|
||||
|
||||
#endif /* __PJ_COMPAT_SOCKET_H__ */
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_STDARG_H__
|
||||
#define __PJ_COMPAT_STDARG_H__
|
||||
|
||||
/**
|
||||
* @file stdarg.h
|
||||
* @brief Provides stdarg functionality.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_STDARG_H) && PJ_HAS_STDARG_H != 0
|
||||
# include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#endif /* __PJ_COMPAT_STDARG_H__ */
|
||||
@@ -0,0 +1,32 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_STDFILEIO_H__
|
||||
#define __PJ_COMPAT_STDFILEIO_H__
|
||||
|
||||
/**
|
||||
* @file stdfileio.h
|
||||
* @brief Compatibility for ANSI file I/O like fputs, fflush, etc.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_STDIO_H) && PJ_HAS_STDIO_H != 0
|
||||
# include <stdio.h>
|
||||
#endif
|
||||
|
||||
#endif /* __PJ_COMPAT_STDFILEIO_H__ */
|
||||
@@ -0,0 +1,144 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_STRING_H__
|
||||
#define __PJ_COMPAT_STRING_H__
|
||||
|
||||
/**
|
||||
* @file string.h
|
||||
* @brief Provides string manipulation functions found in ANSI string.h.
|
||||
*/
|
||||
|
||||
|
||||
#if defined(PJ_HAS_STRING_H) && PJ_HAS_STRING_H != 0
|
||||
# include <string.h>
|
||||
#else
|
||||
|
||||
PJ_DECL(int) strcasecmp(const char *s1, const char *s2);
|
||||
PJ_DECL(int) strncasecmp(const char *s1, const char *s2, int len);
|
||||
|
||||
#endif
|
||||
|
||||
/* For sprintf family */
|
||||
#include <stdio.h>
|
||||
|
||||
/* On WinCE, string stuffs are declared in stdlib.h */
|
||||
#if defined(PJ_HAS_STDLIB_H) && PJ_HAS_STDLIB_H!=0
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# define strcasecmp _stricmp
|
||||
# define strncasecmp _strnicmp
|
||||
# define snprintf _snprintf
|
||||
# define vsnprintf _vsnprintf
|
||||
# define snwprintf _snwprintf
|
||||
# define wcsicmp _wcsicmp
|
||||
# define wcsnicmp _wcsnicmp
|
||||
#else
|
||||
# define stricmp strcasecmp
|
||||
# define strnicmp strncasecmp
|
||||
|
||||
# if defined(PJ_NATIVE_STRING_IS_UNICODE) && PJ_NATIVE_STRING_IS_UNICODE!=0
|
||||
# error "Implement Unicode string functions"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define pj_ansi_strcmp strcmp
|
||||
#define pj_ansi_strncmp strncmp
|
||||
#define pj_ansi_strlen strlen
|
||||
#define pj_ansi_strcpy strcpy
|
||||
#define pj_ansi_strncpy strncpy
|
||||
#define pj_ansi_strcat strcat
|
||||
#define pj_ansi_strstr strstr
|
||||
#define pj_ansi_strchr strchr
|
||||
#define pj_ansi_strcasecmp strcasecmp
|
||||
#define pj_ansi_stricmp strcasecmp
|
||||
#define pj_ansi_strncasecmp strncasecmp
|
||||
#define pj_ansi_strnicmp strncasecmp
|
||||
#define pj_ansi_sprintf sprintf
|
||||
|
||||
#if defined(PJ_HAS_NO_SNPRINTF) && PJ_HAS_NO_SNPRINTF != 0
|
||||
# include <pj/types.h>
|
||||
# include <pj/compat/stdarg.h>
|
||||
PJ_BEGIN_DECL
|
||||
PJ_DECL(int) snprintf(char*s1, pj_size_t len, const char*s2, ...);
|
||||
PJ_DECL(int) vsnprintf(char*s1, pj_size_t len, const char*s2, va_list arg);
|
||||
PJ_END_DECL
|
||||
#endif
|
||||
|
||||
#define pj_ansi_snprintf snprintf
|
||||
#define pj_ansi_vsprintf vsprintf
|
||||
#define pj_ansi_vsnprintf vsnprintf
|
||||
|
||||
#define pj_unicode_strcmp wcscmp
|
||||
#define pj_unicode_strncmp wcsncmp
|
||||
#define pj_unicode_strlen wcslen
|
||||
#define pj_unicode_strcpy wcscpy
|
||||
#define pj_unicode_strncpy wcsncpy
|
||||
#define pj_unicode_strcat wcscat
|
||||
#define pj_unicode_strstr wcsstr
|
||||
#define pj_unicode_strchr wcschr
|
||||
#define pj_unicode_strcasecmp wcsicmp
|
||||
#define pj_unicode_stricmp wcsicmp
|
||||
#define pj_unicode_strncasecmp wcsnicmp
|
||||
#define pj_unicode_strnicmp wcsnicmp
|
||||
#define pj_unicode_sprintf swprintf
|
||||
#define pj_unicode_snprintf snwprintf
|
||||
#define pj_unicode_vsprintf vswprintf
|
||||
#define pj_unicode_vsnprintf vsnwprintf
|
||||
|
||||
#if defined(PJ_NATIVE_STRING_IS_UNICODE) && PJ_NATIVE_STRING_IS_UNICODE!=0
|
||||
# define pj_native_strcmp pj_unicode_strcmp
|
||||
# define pj_native_strncmp pj_unicode_strncmp
|
||||
# define pj_native_strlen pj_unicode_strlen
|
||||
# define pj_native_strcpy pj_unicode_strcpy
|
||||
# define pj_native_strncpy pj_unicode_strncpy
|
||||
# define pj_native_strcat pj_unicode_strcat
|
||||
# define pj_native_strstr pj_unicode_strstr
|
||||
# define pj_native_strchr pj_unicode_strchr
|
||||
# define pj_native_strcasecmp pj_unicode_strcasecmp
|
||||
# define pj_native_stricmp pj_unicode_stricmp
|
||||
# define pj_native_strncasecmp pj_unicode_strncasecmp
|
||||
# define pj_native_strnicmp pj_unicode_strnicmp
|
||||
# define pj_native_sprintf pj_unicode_sprintf
|
||||
# define pj_native_snprintf pj_unicode_snprintf
|
||||
# define pj_native_vsprintf pj_unicode_vsprintf
|
||||
# define pj_native_vsnprintf pj_unicode_vsnprintf
|
||||
#else
|
||||
# define pj_native_strcmp pj_ansi_strcmp
|
||||
# define pj_native_strncmp pj_ansi_strncmp
|
||||
# define pj_native_strlen pj_ansi_strlen
|
||||
# define pj_native_strcpy pj_ansi_strcpy
|
||||
# define pj_native_strncpy pj_ansi_strncpy
|
||||
# define pj_native_strcat pj_ansi_strcat
|
||||
# define pj_native_strstr pj_ansi_strstr
|
||||
# define pj_native_strchr pj_ansi_strchr
|
||||
# define pj_native_strcasecmp pj_ansi_strcasecmp
|
||||
# define pj_native_stricmp pj_ansi_stricmp
|
||||
# define pj_native_strncasecmp pj_ansi_strncasecmp
|
||||
# define pj_native_strnicmp pj_ansi_strnicmp
|
||||
# define pj_native_sprintf pj_ansi_sprintf
|
||||
# define pj_native_snprintf pj_ansi_snprintf
|
||||
# define pj_native_vsprintf pj_ansi_vsprintf
|
||||
# define pj_native_vsnprintf pj_ansi_vsnprintf
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_STRING_H__ */
|
||||
@@ -0,0 +1,42 @@
|
||||
/* $Id$ */
|
||||
/*
|
||||
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
||||
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef __PJ_COMPAT_TIME_H__
|
||||
#define __PJ_COMPAT_TIME_H__
|
||||
|
||||
/**
|
||||
* @file time.h
|
||||
* @brief Provides ftime() and localtime() etc functions.
|
||||
*/
|
||||
|
||||
#if defined(PJ_HAS_TIME_H) && PJ_HAS_TIME_H != 0
|
||||
# include <time.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_SYS_TIME_H) && PJ_HAS_SYS_TIME_H != 0
|
||||
# include <sys/time.h>
|
||||
#endif
|
||||
|
||||
#if defined(PJ_HAS_SYS_TIMEB_H) && PJ_HAS_SYS_TIMEB_H != 0
|
||||
# include <sys/timeb.h>
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __PJ_COMPAT_TIME_H__ */
|
||||
|
||||
Reference in new issue
Block a user