BLOG | DOCUMENTATION | TRAC

Home --> Documentations --> PJLIB Reference

config.h
Go to the documentation of this file.
1 /* $Id: config.h 4795 2014-03-14 06:58:10Z riza $ */
2 /*
3  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  */
20 #ifndef __PJ_CONFIG_H__
21 #define __PJ_CONFIG_H__
22 
23 
29 /********************************************************************
30  * Include compiler specific configuration.
31  */
32 #if defined(_MSC_VER)
33 # include <pj/compat/cc_msvc.h>
34 #elif defined(__GNUC__)
35 # include <pj/compat/cc_gcc.h>
36 #elif defined(__CW32__)
37 # include <pj/compat/cc_mwcc.h>
38 #elif defined(__MWERKS__)
39 # include <pj/compat/cc_codew.h>
40 #elif defined(__GCCE__)
41 # include <pj/compat/cc_gcce.h>
42 #elif defined(__ARMCC__)
43 # include <pj/compat/cc_armcc.h>
44 #else
45 # error "Unknown compiler."
46 #endif
47 
48 /* PJ_ALIGN_DATA is compiler specific directive to align data address */
49 #ifndef PJ_ALIGN_DATA
50 # error "PJ_ALIGN_DATA is not defined!"
51 #endif
52 
53 /********************************************************************
54  * Include target OS specific configuration.
55  */
56 #if defined(PJ_AUTOCONF)
57  /*
58  * Autoconf
59  */
60 # include <pj/compat/os_auto.h>
61 
62 #elif defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
63  /*
64  * SymbianOS
65  */
66 # include <pj/compat/os_symbian.h>
67 
68 #elif defined(PJ_WIN32_WINCE) || defined(_WIN32_WCE) || defined(UNDER_CE)
69  /*
70  * Windows CE
71  */
72 # undef PJ_WIN32_WINCE
73 # define PJ_WIN32_WINCE 1
74 # include <pj/compat/os_win32_wince.h>
75 
76  /* Also define Win32 */
77 # define PJ_WIN32 1
78 
79 #elif defined(PJ_WIN32) || defined(_WIN32) || defined(__WIN32__) || \
80  defined(WIN32) || defined(PJ_WIN64) || defined(_WIN64) || \
81  defined(WIN64) || defined(__TOS_WIN__)
82 # if defined(PJ_WIN64) || defined(_WIN64) || defined(WIN64)
83  /*
84  * Win64
85  */
86 # undef PJ_WIN64
87 # define PJ_WIN64 1
88 # endif
89 # undef PJ_WIN32
90 # define PJ_WIN32 1
91 # include <pj/compat/os_win32.h>
92 
93 #elif defined(PJ_LINUX_KERNEL) && PJ_LINUX_KERNEL!=0
94  /*
95  * Linux kernel
96  */
97 # include <pj/compat/os_linux_kernel.h>
98 
99 #elif defined(PJ_LINUX) || defined(linux) || defined(__linux)
100  /*
101  * Linux
102  */
103 # undef PJ_LINUX
104 # define PJ_LINUX 1
105 # include <pj/compat/os_linux.h>
106 
107 #elif defined(PJ_PALMOS) && PJ_PALMOS!=0
108  /*
109  * Palm
110  */
111 # include <pj/compat/os_palmos.h>
112 
113 #elif defined(PJ_SUNOS) || defined(sun) || defined(__sun)
114  /*
115  * SunOS
116  */
117 # undef PJ_SUNOS
118 # define PJ_SUNOS 1
119 # include <pj/compat/os_sunos.h>
120 
121 #elif defined(PJ_DARWINOS) || defined(__MACOSX__) || \
122  defined (__APPLE__) || defined (__MACH__)
123  /*
124  * MacOS X
125  */
126 # undef PJ_DARWINOS
127 # define PJ_DARWINOS 1
128 # include <pj/compat/os_darwinos.h>
129 
130 #elif defined(PJ_RTEMS) && PJ_RTEMS!=0
131  /*
132  * RTEMS
133  */
134 # include <pj/compat/os_rtems.h>
135 #else
136 # error "Please specify target os."
137 #endif
138 
139 
140 /********************************************************************
141  * Target machine specific configuration.
142  */
143 #if defined(PJ_AUTOCONF)
144  /*
145  * Autoconf configured
146  */
147 #include <pj/compat/m_auto.h>
148 
149 #elif defined (PJ_M_I386) || defined(_i386_) || defined(i_386_) || \
150  defined(_X86_) || defined(x86) || defined(__i386__) || \
151  defined(__i386) || defined(_M_IX86) || defined(__I86__)
152  /*
153  * Generic i386 processor family, little-endian
154  */
155 # undef PJ_M_I386
156 # define PJ_M_I386 1
157 # define PJ_M_NAME "i386"
158 # define PJ_HAS_PENTIUM 1
159 # define PJ_IS_LITTLE_ENDIAN 1
160 # define PJ_IS_BIG_ENDIAN 0
161 
162 
163 #elif defined (PJ_M_X86_64) || defined(__amd64__) || defined(__amd64) || \
164  defined(__x86_64__) || defined(__x86_64)
165  /*
166  * AMD 64bit processor, little endian
167  */
168 # undef PJ_M_X86_64
169 # define PJ_M_X86_64 1
170 # define PJ_M_NAME "x86_64"
171 # define PJ_HAS_PENTIUM 1
172 # define PJ_IS_LITTLE_ENDIAN 1
173 # define PJ_IS_BIG_ENDIAN 0
174 
175 #elif defined(PJ_M_IA64) || defined(__ia64__) || defined(_IA64) || \
176  defined(__IA64__) || defined( _M_IA64)
177  /*
178  * Intel IA64 processor, default to little endian
179  */
180 # undef PJ_M_IA64
181 # define PJ_M_IA64 1
182 # define PJ_M_NAME "ia64"
183 # define PJ_HAS_PENTIUM 1
184 # define PJ_IS_LITTLE_ENDIAN 1
185 # define PJ_IS_BIG_ENDIAN 0
186 
187 #elif defined (PJ_M_M68K) && PJ_M_M68K != 0
188 
189  /*
190  * Motorola m68k processor, big endian
191  */
192 # undef PJ_M_M68K
193 # define PJ_M_M68K 1
194 # define PJ_M_NAME "m68k"
195 # define PJ_HAS_PENTIUM 0
196 # define PJ_IS_LITTLE_ENDIAN 0
197 # define PJ_IS_BIG_ENDIAN 1
198 
199 
200 #elif defined (PJ_M_ALPHA) || defined (__alpha__) || defined (__alpha) || \
201  defined (_M_ALPHA)
202  /*
203  * DEC Alpha processor, little endian
204  */
205 # undef PJ_M_ALPHA
206 # define PJ_M_ALPHA 1
207 # define PJ_M_NAME "alpha"
208 # define PJ_HAS_PENTIUM 0
209 # define PJ_IS_LITTLE_ENDIAN 1
210 # define PJ_IS_BIG_ENDIAN 0
211 
212 
213 #elif defined(PJ_M_MIPS) || defined(__mips__) || defined(__mips) || \
214  defined(__MIPS__) || defined(MIPS) || defined(_MIPS_)
215  /*
216  * MIPS, bi-endian, so raise error if endianness is not configured
217  */
218 # undef PJ_M_MIPS
219 # define PJ_M_MIPS 1
220 # define PJ_M_NAME "mips"
221 # define PJ_HAS_PENTIUM 0
222 # if !PJ_IS_LITTLE_ENDIAN && !PJ_IS_BIG_ENDIAN
223 # error Endianness must be declared for this processor
224 # endif
225 
226 
227 #elif defined (PJ_M_SPARC) || defined( __sparc__) || defined(__sparc)
228  /*
229  * Sun Sparc, big endian
230  */
231 # undef PJ_M_SPARC
232 # define PJ_M_SPARC 1
233 # define PJ_M_NAME "sparc"
234 # define PJ_HAS_PENTIUM 0
235 # define PJ_IS_LITTLE_ENDIAN 0
236 # define PJ_IS_BIG_ENDIAN 1
237 
238 #elif defined (PJ_M_ARMV4) || defined(ARM) || defined(_ARM_) || \
239  defined(ARMV4) || defined(__arm__)
240  /*
241  * ARM, bi-endian, so raise error if endianness is not configured
242  */
243 # undef PJ_M_ARMV4
244 # define PJ_M_ARMV4 1
245 # define PJ_M_NAME "armv4"
246 # define PJ_HAS_PENTIUM 0
247 # if !PJ_IS_LITTLE_ENDIAN && !PJ_IS_BIG_ENDIAN
248 # error Endianness must be declared for this processor
249 # endif
250 
251 #elif defined (PJ_M_POWERPC) || defined(__powerpc) || defined(__powerpc__) || \
252  defined(__POWERPC__) || defined(__ppc__) || defined(_M_PPC) || \
253  defined(_ARCH_PPC)
254  /*
255  * PowerPC, bi-endian, so raise error if endianness is not configured
256  */
257 # undef PJ_M_POWERPC
258 # define PJ_M_POWERPC 1
259 # define PJ_M_NAME "powerpc"
260 # define PJ_HAS_PENTIUM 0
261 # if !PJ_IS_LITTLE_ENDIAN && !PJ_IS_BIG_ENDIAN
262 # error Endianness must be declared for this processor
263 # endif
264 
265 #elif defined (PJ_M_NIOS2) || defined(__nios2) || defined(__nios2__) || \
266  defined(__NIOS2__) || defined(__M_NIOS2) || defined(_ARCH_NIOS2)
267  /*
268  * Nios2, little endian
269  */
270 # undef PJ_M_NIOS2
271 # define PJ_M_NIOS2 1
272 # define PJ_M_NAME "nios2"
273 # define PJ_HAS_PENTIUM 0
274 # define PJ_IS_LITTLE_ENDIAN 1
275 # define PJ_IS_BIG_ENDIAN 0
276 
277 #else
278 # error "Please specify target machine."
279 #endif
280 
281 /* Include size_t definition. */
282 #include <pj/compat/size_t.h>
283 
284 /* Include site/user specific configuration to control PJLIB features.
285  * YOU MUST CREATE THIS FILE YOURSELF!!
286  */
287 #include <pj/config_site.h>
288 
289 /********************************************************************
290  * PJLIB Features.
291  */
292 
293 /* Overrides for DOXYGEN */
294 #ifdef DOXYGEN
295 # undef PJ_FUNCTIONS_ARE_INLINED
296 # undef PJ_HAS_FLOATING_POINT
297 # undef PJ_LOG_MAX_LEVEL
298 # undef PJ_LOG_MAX_SIZE
299 # undef PJ_LOG_USE_STACK_BUFFER
300 # undef PJ_TERM_HAS_COLOR
301 # undef PJ_POOL_DEBUG
302 # undef PJ_HAS_TCP
303 # undef PJ_MAX_HOSTNAME
304 # undef PJ_IOQUEUE_MAX_HANDLES
305 # undef FD_SETSIZE
306 # undef PJ_HAS_SEMAPHORE
307 # undef PJ_HAS_EVENT_OBJ
308 # undef PJ_ENABLE_EXTRA_CHECK
309 # undef PJ_EXCEPTION_USE_WIN32_SEH
310 # undef PJ_HAS_ERROR_STRING
311 
312 # define PJ_HAS_IPV6 1
313 #endif
314 
332 #ifndef PJ_DEBUG
333 # ifndef NDEBUG
334 # define PJ_DEBUG 1
335 # else
336 # define PJ_DEBUG 0
337 # endif
338 #endif
339 
348 #ifndef PJ_DEBUG_MUTEX
349 # define PJ_DEBUG_MUTEX 0
350 #endif
351 
357 #ifndef PJ_FUNCTIONS_ARE_INLINED
358 # define PJ_FUNCTIONS_ARE_INLINED 0
359 #endif
360 
366 #ifndef PJ_HAS_FLOATING_POINT
367 # define PJ_HAS_FLOATING_POINT 1
368 #endif
369 
387 #ifndef PJ_LOG_MAX_LEVEL
388 # define PJ_LOG_MAX_LEVEL 5
389 #endif
390 
399 #ifndef PJ_LOG_MAX_SIZE
400 # define PJ_LOG_MAX_SIZE 4000
401 #endif
402 
411 #ifndef PJ_LOG_USE_STACK_BUFFER
412 # define PJ_LOG_USE_STACK_BUFFER 1
413 #endif
414 
420 #ifndef PJ_LOG_ENABLE_INDENT
421 # define PJ_LOG_ENABLE_INDENT 1
422 #endif
423 
430 #ifndef PJ_LOG_INDENT_SIZE
431 # define PJ_LOG_INDENT_SIZE 1
432 #endif
433 
439 #ifndef PJ_LOG_INDENT_CHAR
440 # define PJ_LOG_INDENT_CHAR '.'
441 #endif
442 
448 #ifndef PJ_TERM_HAS_COLOR
449 # define PJ_TERM_HAS_COLOR 1
450 #endif
451 
452 
464 #ifndef PJ_SAFE_POOL
465 # define PJ_SAFE_POOL 0
466 #endif
467 
468 
477 #ifndef PJ_POOL_DEBUG
478 # define PJ_POOL_DEBUG 0
479 #endif
480 
481 
490 #ifndef PJ_TIMER_DEBUG
491 # define PJ_TIMER_DEBUG 0
492 #endif
493 
494 
498 #ifndef PJ_GRP_LOCK_DEBUG
499 # define PJ_GRP_LOCK_DEBUG 0
500 #endif
501 
502 
509 #ifndef PJ_THREAD_DEFAULT_STACK_SIZE
510 # define PJ_THREAD_DEFAULT_STACK_SIZE 8192
511 #endif
512 
513 
521 #ifndef PJ_OS_HAS_CHECK_STACK
522 # define PJ_OS_HAS_CHECK_STACK 0
523 #endif
524 
530 #ifndef PJ_HAS_POOL_ALT_API
531 # define PJ_HAS_POOL_ALT_API PJ_POOL_DEBUG
532 #endif
533 
534 
541 #ifndef PJ_HAS_TCP
542 # define PJ_HAS_TCP 1
543 #endif
544 
551 #ifndef PJ_HAS_IPV6
552 # define PJ_HAS_IPV6 0
553 #endif
554 
562 #ifndef PJ_MAX_HOSTNAME
563 # define PJ_MAX_HOSTNAME (128)
564 #endif
565 
572 #ifndef PJ_ACTIVESOCK_MAX_CONSECUTIVE_ACCEPT_ERROR
573 # define PJ_ACTIVESOCK_MAX_CONSECUTIVE_ACCEPT_ERROR 50
574 #endif
575 
583 #ifndef PJ_IOQUEUE_MAX_HANDLES
584 # define PJ_IOQUEUE_MAX_HANDLES (64)
585 #endif
586 
587 
604 #ifndef PJ_IOQUEUE_HAS_SAFE_UNREG
605 # define PJ_IOQUEUE_HAS_SAFE_UNREG 1
606 #endif
607 
608 
620 #ifndef PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY
621 # define PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY 1
622 #endif
623 
624 
625 /* Sanity check:
626  * if ioqueue concurrency is disallowed, PJ_IOQUEUE_HAS_SAFE_UNREG
627  * must be enabled.
628  */
629 #if (PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY==0) && (PJ_IOQUEUE_HAS_SAFE_UNREG==0)
630 # error PJ_IOQUEUE_HAS_SAFE_UNREG must be enabled if ioqueue concurrency \
631  is disabled
632 #endif
633 
634 
644 #ifndef PJ_IOQUEUE_KEY_FREE_DELAY
645 # define PJ_IOQUEUE_KEY_FREE_DELAY 500
646 #endif
647 
648 
654 #ifndef PJ_FD_SETSIZE_SETABLE
655 # if (defined(PJ_HAS_WINSOCK_H) && PJ_HAS_WINSOCK_H!=0) || \
656  (defined(PJ_HAS_WINSOCK2_H) && PJ_HAS_WINSOCK2_H!=0)
657 # define PJ_FD_SETSIZE_SETABLE 1
658 # else
659 # define PJ_FD_SETSIZE_SETABLE 0
660 # endif
661 #endif
662 
669 #if PJ_FD_SETSIZE_SETABLE
670  /* Only override FD_SETSIZE if the value has not been set */
671 # ifndef FD_SETSIZE
672 # define FD_SETSIZE PJ_IOQUEUE_MAX_HANDLES
673 # endif
674 #else
675  /* When FD_SETSIZE is not changeable, check if PJ_IOQUEUE_MAX_HANDLES
676  * is lower than FD_SETSIZE value.
677  */
678 # ifdef FD_SETSIZE
679 # if PJ_IOQUEUE_MAX_HANDLES > FD_SETSIZE
680 # error "PJ_IOQUEUE_MAX_HANDLES is greater than FD_SETSIZE"
681 # endif
682 # endif
683 #endif
684 
685 
692 #ifndef PJ_IP_HELPER_IGNORE_LOOPBACK_IF
693 # define PJ_IP_HELPER_IGNORE_LOOPBACK_IF 1
694 #endif
695 
696 
702 #ifndef PJ_HAS_SEMAPHORE
703 # define PJ_HAS_SEMAPHORE 1
704 #endif
705 
706 
712 #ifndef PJ_HAS_EVENT_OBJ
713 # define PJ_HAS_EVENT_OBJ 1
714 #endif
715 
716 
720 #ifndef PJ_MAXPATH
721 # define PJ_MAXPATH 260
722 #endif
723 
724 
736 #ifndef PJ_ENABLE_EXTRA_CHECK
737 # define PJ_ENABLE_EXTRA_CHECK 1
738 #endif
739 
740 
752 #ifndef PJ_HAS_EXCEPTION_NAMES
753 # define PJ_HAS_EXCEPTION_NAMES 1
754 #endif
755 
763 #ifndef PJ_MAX_EXCEPTION_ID
764 # define PJ_MAX_EXCEPTION_ID 16
765 #endif
766 
773 #ifndef PJ_EXCEPTION_USE_WIN32_SEH
774 # define PJ_EXCEPTION_USE_WIN32_SEH 0
775 #endif
776 
783 #ifndef PJ_TIMESTAMP_USE_RDTSC
784 # define PJ_TIMESTAMP_USE_RDTSC 0
785 #endif
786 
791 #ifndef PJ_NATIVE_ERR_POSITIVE
792 # define PJ_NATIVE_ERR_POSITIVE 1
793 #endif
794 
801 #ifndef PJ_HAS_ERROR_STRING
802 # define PJ_HAS_ERROR_STRING 1
803 #endif
804 
805 
814 #ifndef PJ_HAS_STRICMP_ALNUM
815 # define PJ_HAS_STRICMP_ALNUM 0
816 #endif
817 
818 
819 /*
820  * Types of QoS backend implementation.
821  */
822 
827 #define PJ_QOS_DUMMY 1
828 
830 #define PJ_QOS_BSD 2
831 
833 #define PJ_QOS_WM 3
834 
836 #define PJ_QOS_SYMBIAN 4
837 
841 #ifndef PJ_QOS_IMPLEMENTATION
842 # if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE && _WIN32_WCE >= 0x502
843  /* Windows Mobile 6 or later */
844 # define PJ_QOS_IMPLEMENTATION PJ_QOS_WM
845 # endif
846 #endif
847 
848 
856 #ifndef PJ_HAS_SSL_SOCK
857 # define PJ_HAS_SSL_SOCK 0
858 #endif
859 
860 
867 #ifndef PJ_SOCK_DISABLE_WSAECONNRESET
868 # define PJ_SOCK_DISABLE_WSAECONNRESET 1
869 #endif
870 
871 
874 /********************************************************************
875  * General macros.
876  */
877 
960 #define PJ_INLINE(type) PJ_INLINE_SPECIFIER type
961 
970 #ifndef PJ_EXPORT_DECL_SPECIFIER
971 # define PJ_EXPORT_DECL_SPECIFIER
972 #endif
973 
974 
983 #ifndef PJ_EXPORT_DEF_SPECIFIER
984 # define PJ_EXPORT_DEF_SPECIFIER
985 #endif
986 
987 
995 #ifndef PJ_IMPORT_DECL_SPECIFIER
996 # define PJ_IMPORT_DECL_SPECIFIER
997 #endif
998 
999 
1003 #ifndef PJ_EXPORT_SYMBOL
1004 # define PJ_EXPORT_SYMBOL(x)
1005 #endif
1006 
1007 
1013 #if defined(PJ_DLL)
1014 # if defined(PJ_EXPORTING)
1015 # define PJ_DECL(type) PJ_EXPORT_DECL_SPECIFIER type
1016 # else
1017 # define PJ_DECL(type) PJ_IMPORT_DECL_SPECIFIER type
1018 # endif
1019 #elif !defined(PJ_DECL)
1020 # if defined(__cplusplus)
1021 # define PJ_DECL(type) type
1022 # else
1023 # define PJ_DECL(type) extern type
1024 # endif
1025 #endif
1026 
1027 
1033 #if defined(PJ_DLL) && defined(PJ_EXPORTING)
1034 # define PJ_DEF(type) PJ_EXPORT_DEF_SPECIFIER type
1035 #elif !defined(PJ_DEF)
1036 # define PJ_DEF(type) type
1037 #endif
1038 
1039 
1058 #ifdef __cplusplus
1059 # define PJ_DECL_NO_RETURN(type) PJ_DECL(type) PJ_NORETURN
1060 # define PJ_IDECL_NO_RETURN(type) PJ_INLINE(type) PJ_NORETURN
1061 # define PJ_BEGIN_DECL extern "C" {
1062 # define PJ_END_DECL }
1063 #else
1064 # define PJ_DECL_NO_RETURN(type) PJ_NORETURN PJ_DECL(type)
1065 # define PJ_IDECL_NO_RETURN(type) PJ_NORETURN PJ_INLINE(type)
1066 # define PJ_BEGIN_DECL
1067 # define PJ_END_DECL
1068 #endif
1069 
1070 
1071 
1077 #if defined(PJ_DLL)
1078 # if defined(PJ_EXPORTING)
1079 # define PJ_DECL_DATA(type) PJ_EXPORT_DECL_SPECIFIER extern type
1080 # else
1081 # define PJ_DECL_DATA(type) PJ_IMPORT_DECL_SPECIFIER extern type
1082 # endif
1083 #elif !defined(PJ_DECL_DATA)
1084 # define PJ_DECL_DATA(type) extern type
1085 #endif
1086 
1087 
1093 #if defined(PJ_DLL) && defined(PJ_EXPORTING)
1094 # define PJ_DEF_DATA(type) PJ_EXPORT_DEF_SPECIFIER type
1095 #elif !defined(PJ_DEF_DATA)
1096 # define PJ_DEF_DATA(type) type
1097 #endif
1098 
1099 
1111 #if PJ_FUNCTIONS_ARE_INLINED
1112 # define PJ_IDECL(type) PJ_INLINE(type)
1113 # define PJ_IDEF(type) PJ_INLINE(type)
1114 #else
1115 # define PJ_IDECL(type) PJ_DECL(type)
1116 # define PJ_IDEF(type) PJ_DEF(type)
1117 #endif
1118 
1119 
1125 #define PJ_UNUSED_ARG(arg) (void)arg
1126 
1133 #ifndef PJ_TODO
1134 # define PJ_TODO(id) TODO___##id:
1135 #endif
1136 
1141 #ifndef PJ_RACE_ME
1142 # define PJ_RACE_ME(x)
1143 #endif
1144 
1150 #define __pj_throw__(x)
1151 
1154 /********************************************************************
1155  * Sanity Checks
1156  */
1157 #ifndef PJ_HAS_HIGH_RES_TIMER
1158 # error "PJ_HAS_HIGH_RES_TIMER is not defined!"
1159 #endif
1160 
1161 #if !defined(PJ_HAS_PENTIUM)
1162 # error "PJ_HAS_PENTIUM is not defined!"
1163 #endif
1164 
1165 #if !defined(PJ_IS_LITTLE_ENDIAN)
1166 # error "PJ_IS_LITTLE_ENDIAN is not defined!"
1167 #endif
1168 
1169 #if !defined(PJ_IS_BIG_ENDIAN)
1170 # error "PJ_IS_BIG_ENDIAN is not defined!"
1171 #endif
1172 
1173 #if !defined(PJ_EMULATE_RWMUTEX)
1174 # error "PJ_EMULATE_RWMUTEX should be defined in compat/os_xx.h"
1175 #endif
1176 
1177 #if !defined(PJ_THREAD_SET_STACK_SIZE)
1178 # error "PJ_THREAD_SET_STACK_SIZE should be defined in compat/os_xx.h"
1179 #endif
1180 
1181 #if !defined(PJ_THREAD_ALLOCATE_STACK)
1182 # error "PJ_THREAD_ALLOCATE_STACK should be defined in compat/os_xx.h"
1183 #endif
1184 
1186 
1188 #define PJ_VERSION_NUM_MAJOR 2
1189 
1191 #define PJ_VERSION_NUM_MINOR 2
1192 
1194 #define PJ_VERSION_NUM_REV 1
1195 
1200 #define PJ_VERSION_NUM_EXTRA ""
1201 
1207 #define PJ_VERSION_NUM ((PJ_VERSION_NUM_MAJOR << 24) | \
1208  (PJ_VERSION_NUM_MINOR << 16) | \
1209  (PJ_VERSION_NUM_REV << 8))
1210 
1214 PJ_DECL_DATA(const char*) PJ_VERSION;
1215 
1221 PJ_DECL(const char*) pj_get_version(void);
1222 
1226 PJ_DECL(void) pj_dump_config(void);
1227 
1229 
1230 
1231 #endif /* __PJ_CONFIG_H__ */
1232 
void pj_dump_config(void)
const char * pj_get_version(void)
#define PJ_END_DECL
Definition: config.h:1067
#define PJ_BEGIN_DECL
Definition: config.h:1066
const char * PJ_VERSION
Definition: config.h:1214

 


PJLIB Open Source, high performance, small footprint, and very very portable framework
Copyright (C) 2006-2009 Teluu Inc.