BLOG | DOCUMENTATION | TRAC

Home --> Documentations --> PJLIB Reference

config.h
Go to the documentation of this file.
1 /* $Id: config.h 5062 2015-04-13 02:45:03Z ming $ */
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  * Update: Not all ioqueue backends require this (such as epoll), so
679  * this check will be done on the ioqueue implementation itself, such as
680  * ioqueue select.
681  */
682 /*
683 # ifdef FD_SETSIZE
684 # if PJ_IOQUEUE_MAX_HANDLES > FD_SETSIZE
685 # error "PJ_IOQUEUE_MAX_HANDLES is greater than FD_SETSIZE"
686 # endif
687 # endif
688 */
689 #endif
690 
691 
698 #ifndef PJ_IP_HELPER_IGNORE_LOOPBACK_IF
699 # define PJ_IP_HELPER_IGNORE_LOOPBACK_IF 1
700 #endif
701 
702 
708 #ifndef PJ_HAS_SEMAPHORE
709 # define PJ_HAS_SEMAPHORE 1
710 #endif
711 
712 
718 #ifndef PJ_HAS_EVENT_OBJ
719 # define PJ_HAS_EVENT_OBJ 1
720 #endif
721 
722 
726 #ifndef PJ_MAXPATH
727 # define PJ_MAXPATH 260
728 #endif
729 
730 
742 #ifndef PJ_ENABLE_EXTRA_CHECK
743 # define PJ_ENABLE_EXTRA_CHECK 1
744 #endif
745 
746 
758 #ifndef PJ_HAS_EXCEPTION_NAMES
759 # define PJ_HAS_EXCEPTION_NAMES 1
760 #endif
761 
769 #ifndef PJ_MAX_EXCEPTION_ID
770 # define PJ_MAX_EXCEPTION_ID 16
771 #endif
772 
779 #ifndef PJ_EXCEPTION_USE_WIN32_SEH
780 # define PJ_EXCEPTION_USE_WIN32_SEH 0
781 #endif
782 
789 #ifndef PJ_TIMESTAMP_USE_RDTSC
790 # define PJ_TIMESTAMP_USE_RDTSC 0
791 #endif
792 
797 #ifndef PJ_NATIVE_ERR_POSITIVE
798 # define PJ_NATIVE_ERR_POSITIVE 1
799 #endif
800 
807 #ifndef PJ_HAS_ERROR_STRING
808 # define PJ_HAS_ERROR_STRING 1
809 #endif
810 
811 
820 #ifndef PJ_HAS_STRICMP_ALNUM
821 # define PJ_HAS_STRICMP_ALNUM 0
822 #endif
823 
824 
825 /*
826  * Types of QoS backend implementation.
827  */
828 
833 #define PJ_QOS_DUMMY 1
834 
836 #define PJ_QOS_BSD 2
837 
839 #define PJ_QOS_WM 3
840 
842 #define PJ_QOS_SYMBIAN 4
843 
847 #ifndef PJ_QOS_IMPLEMENTATION
848 # if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE && _WIN32_WCE >= 0x502
849  /* Windows Mobile 6 or later */
850 # define PJ_QOS_IMPLEMENTATION PJ_QOS_WM
851 # endif
852 #endif
853 
854 
862 #ifndef PJ_HAS_SSL_SOCK
863 # define PJ_HAS_SSL_SOCK 0
864 #endif
865 
866 
873 #ifndef PJ_SOCK_DISABLE_WSAECONNRESET
874 # define PJ_SOCK_DISABLE_WSAECONNRESET 1
875 #endif
876 
877 
880 /********************************************************************
881  * General macros.
882  */
883 
966 #define PJ_INLINE(type) PJ_INLINE_SPECIFIER type
967 
976 #ifndef PJ_EXPORT_DECL_SPECIFIER
977 # define PJ_EXPORT_DECL_SPECIFIER
978 #endif
979 
980 
989 #ifndef PJ_EXPORT_DEF_SPECIFIER
990 # define PJ_EXPORT_DEF_SPECIFIER
991 #endif
992 
993 
1001 #ifndef PJ_IMPORT_DECL_SPECIFIER
1002 # define PJ_IMPORT_DECL_SPECIFIER
1003 #endif
1004 
1005 
1009 #ifndef PJ_EXPORT_SYMBOL
1010 # define PJ_EXPORT_SYMBOL(x)
1011 #endif
1012 
1013 
1019 #if defined(PJ_DLL)
1020 # if defined(PJ_EXPORTING)
1021 # define PJ_DECL(type) PJ_EXPORT_DECL_SPECIFIER type
1022 # else
1023 # define PJ_DECL(type) PJ_IMPORT_DECL_SPECIFIER type
1024 # endif
1025 #elif !defined(PJ_DECL)
1026 # if defined(__cplusplus)
1027 # define PJ_DECL(type) type
1028 # else
1029 # define PJ_DECL(type) extern type
1030 # endif
1031 #endif
1032 
1033 
1039 #if defined(PJ_DLL) && defined(PJ_EXPORTING)
1040 # define PJ_DEF(type) PJ_EXPORT_DEF_SPECIFIER type
1041 #elif !defined(PJ_DEF)
1042 # define PJ_DEF(type) type
1043 #endif
1044 
1045 
1064 #ifdef __cplusplus
1065 # define PJ_DECL_NO_RETURN(type) PJ_DECL(type) PJ_NORETURN
1066 # define PJ_IDECL_NO_RETURN(type) PJ_INLINE(type) PJ_NORETURN
1067 # define PJ_BEGIN_DECL extern "C" {
1068 # define PJ_END_DECL }
1069 #else
1070 # define PJ_DECL_NO_RETURN(type) PJ_NORETURN PJ_DECL(type)
1071 # define PJ_IDECL_NO_RETURN(type) PJ_NORETURN PJ_INLINE(type)
1072 # define PJ_BEGIN_DECL
1073 # define PJ_END_DECL
1074 #endif
1075 
1076 
1077 
1083 #if defined(PJ_DLL)
1084 # if defined(PJ_EXPORTING)
1085 # define PJ_DECL_DATA(type) PJ_EXPORT_DECL_SPECIFIER extern type
1086 # else
1087 # define PJ_DECL_DATA(type) PJ_IMPORT_DECL_SPECIFIER extern type
1088 # endif
1089 #elif !defined(PJ_DECL_DATA)
1090 # define PJ_DECL_DATA(type) extern type
1091 #endif
1092 
1093 
1099 #if defined(PJ_DLL) && defined(PJ_EXPORTING)
1100 # define PJ_DEF_DATA(type) PJ_EXPORT_DEF_SPECIFIER type
1101 #elif !defined(PJ_DEF_DATA)
1102 # define PJ_DEF_DATA(type) type
1103 #endif
1104 
1105 
1117 #if PJ_FUNCTIONS_ARE_INLINED
1118 # define PJ_IDECL(type) PJ_INLINE(type)
1119 # define PJ_IDEF(type) PJ_INLINE(type)
1120 #else
1121 # define PJ_IDECL(type) PJ_DECL(type)
1122 # define PJ_IDEF(type) PJ_DEF(type)
1123 #endif
1124 
1125 
1131 #define PJ_UNUSED_ARG(arg) (void)arg
1132 
1139 #ifndef PJ_TODO
1140 # define PJ_TODO(id) TODO___##id:
1141 #endif
1142 
1147 #ifndef PJ_RACE_ME
1148 # define PJ_RACE_ME(x)
1149 #endif
1150 
1156 #define __pj_throw__(x)
1157 
1160 /********************************************************************
1161  * Sanity Checks
1162  */
1163 #ifndef PJ_HAS_HIGH_RES_TIMER
1164 # error "PJ_HAS_HIGH_RES_TIMER is not defined!"
1165 #endif
1166 
1167 #if !defined(PJ_HAS_PENTIUM)
1168 # error "PJ_HAS_PENTIUM is not defined!"
1169 #endif
1170 
1171 #if !defined(PJ_IS_LITTLE_ENDIAN)
1172 # error "PJ_IS_LITTLE_ENDIAN is not defined!"
1173 #endif
1174 
1175 #if !defined(PJ_IS_BIG_ENDIAN)
1176 # error "PJ_IS_BIG_ENDIAN is not defined!"
1177 #endif
1178 
1179 #if !defined(PJ_EMULATE_RWMUTEX)
1180 # error "PJ_EMULATE_RWMUTEX should be defined in compat/os_xx.h"
1181 #endif
1182 
1183 #if !defined(PJ_THREAD_SET_STACK_SIZE)
1184 # error "PJ_THREAD_SET_STACK_SIZE should be defined in compat/os_xx.h"
1185 #endif
1186 
1187 #if !defined(PJ_THREAD_ALLOCATE_STACK)
1188 # error "PJ_THREAD_ALLOCATE_STACK should be defined in compat/os_xx.h"
1189 #endif
1190 
1192 
1194 #define PJ_VERSION_NUM_MAJOR 2
1195 
1197 #define PJ_VERSION_NUM_MINOR 4
1198 
1200 #define PJ_VERSION_NUM_REV 0
1201 
1206 #define PJ_VERSION_NUM_EXTRA ""
1207 
1213 #define PJ_VERSION_NUM ((PJ_VERSION_NUM_MAJOR << 24) | \
1214  (PJ_VERSION_NUM_MINOR << 16) | \
1215  (PJ_VERSION_NUM_REV << 8))
1216 
1220 PJ_DECL_DATA(const char*) PJ_VERSION;
1221 
1227 PJ_DECL(const char*) pj_get_version(void);
1228 
1232 PJ_DECL(void) pj_dump_config(void);
1233 
1235 
1236 
1237 #endif /* __PJ_CONFIG_H__ */
1238 

 


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