BLOG | DOCUMENTATION | TRAC

Home --> Documentations --> PJLIB Reference

config.h
Go to the documentation of this file.
1 /* $Id: config.h 4415 2013-03-05 08:34:45Z 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(_WIN64) || defined(WIN32) || defined(__TOS_WIN__)
81  /*
82  * Win32
83  */
84 # undef PJ_WIN32
85 # define PJ_WIN32 1
86 # include <pj/compat/os_win32.h>
87 
88 #elif defined(PJ_LINUX_KERNEL) && PJ_LINUX_KERNEL!=0
89  /*
90  * Linux kernel
91  */
92 # include <pj/compat/os_linux_kernel.h>
93 
94 #elif defined(PJ_LINUX) || defined(linux) || defined(__linux)
95  /*
96  * Linux
97  */
98 # undef PJ_LINUX
99 # define PJ_LINUX 1
100 # include <pj/compat/os_linux.h>
101 
102 #elif defined(PJ_PALMOS) && PJ_PALMOS!=0
103  /*
104  * Palm
105  */
106 # include <pj/compat/os_palmos.h>
107 
108 #elif defined(PJ_SUNOS) || defined(sun) || defined(__sun)
109  /*
110  * SunOS
111  */
112 # undef PJ_SUNOS
113 # define PJ_SUNOS 1
114 # include <pj/compat/os_sunos.h>
115 
116 #elif defined(PJ_DARWINOS) || defined(__MACOSX__) || \
117  defined (__APPLE__) || defined (__MACH__)
118  /*
119  * MacOS X
120  */
121 # undef PJ_DARWINOS
122 # define PJ_DARWINOS 1
123 # include <pj/compat/os_darwinos.h>
124 
125 #elif defined(PJ_RTEMS) && PJ_RTEMS!=0
126  /*
127  * RTEMS
128  */
129 # include <pj/compat/os_rtems.h>
130 #else
131 # error "Please specify target os."
132 #endif
133 
134 
135 /********************************************************************
136  * Target machine specific configuration.
137  */
138 #if defined(PJ_AUTOCONF)
139  /*
140  * Autoconf configured
141  */
142 #include <pj/compat/m_auto.h>
143 
144 #elif defined (PJ_M_I386) || defined(_i386_) || defined(i_386_) || \
145  defined(_X86_) || defined(x86) || defined(__i386__) || \
146  defined(__i386) || defined(_M_IX86) || defined(__I86__)
147  /*
148  * Generic i386 processor family, little-endian
149  */
150 # undef PJ_M_I386
151 # define PJ_M_I386 1
152 # define PJ_M_NAME "i386"
153 # define PJ_HAS_PENTIUM 1
154 # define PJ_IS_LITTLE_ENDIAN 1
155 # define PJ_IS_BIG_ENDIAN 0
156 
157 
158 #elif defined (PJ_M_X86_64) || defined(__amd64__) || defined(__amd64) || \
159  defined(__x86_64__) || defined(__x86_64)
160  /*
161  * AMD 64bit processor, little endian
162  */
163 # undef PJ_M_X86_64
164 # define PJ_M_X86_64 1
165 # define PJ_M_NAME "x86_64"
166 # define PJ_HAS_PENTIUM 1
167 # define PJ_IS_LITTLE_ENDIAN 1
168 # define PJ_IS_BIG_ENDIAN 0
169 
170 #elif defined(PJ_M_IA64) || defined(__ia64__) || defined(_IA64) || \
171  defined(__IA64__) || defined( _M_IA64)
172  /*
173  * Intel IA64 processor, default to little endian
174  */
175 # undef PJ_M_IA64
176 # define PJ_M_IA64 1
177 # define PJ_M_NAME "ia64"
178 # define PJ_HAS_PENTIUM 1
179 # define PJ_IS_LITTLE_ENDIAN 1
180 # define PJ_IS_BIG_ENDIAN 0
181 
182 #elif defined (PJ_M_M68K) && PJ_M_M68K != 0
183 
184  /*
185  * Motorola m68k processor, big endian
186  */
187 # undef PJ_M_M68K
188 # define PJ_M_M68K 1
189 # define PJ_M_NAME "m68k"
190 # define PJ_HAS_PENTIUM 0
191 # define PJ_IS_LITTLE_ENDIAN 0
192 # define PJ_IS_BIG_ENDIAN 1
193 
194 
195 #elif defined (PJ_M_ALPHA) || defined (__alpha__) || defined (__alpha) || \
196  defined (_M_ALPHA)
197  /*
198  * DEC Alpha processor, little endian
199  */
200 # undef PJ_M_ALPHA
201 # define PJ_M_ALPHA 1
202 # define PJ_M_NAME "alpha"
203 # define PJ_HAS_PENTIUM 0
204 # define PJ_IS_LITTLE_ENDIAN 1
205 # define PJ_IS_BIG_ENDIAN 0
206 
207 
208 #elif defined(PJ_M_MIPS) || defined(__mips__) || defined(__mips) || \
209  defined(__MIPS__) || defined(MIPS) || defined(_MIPS_)
210  /*
211  * MIPS, bi-endian, so raise error if endianness is not configured
212  */
213 # undef PJ_M_MIPS
214 # define PJ_M_MIPS 1
215 # define PJ_M_NAME "mips"
216 # define PJ_HAS_PENTIUM 0
217 # if !PJ_IS_LITTLE_ENDIAN && !PJ_IS_BIG_ENDIAN
218 # error Endianness must be declared for this processor
219 # endif
220 
221 
222 #elif defined (PJ_M_SPARC) || defined( __sparc__) || defined(__sparc)
223  /*
224  * Sun Sparc, big endian
225  */
226 # undef PJ_M_SPARC
227 # define PJ_M_SPARC 1
228 # define PJ_M_NAME "sparc"
229 # define PJ_HAS_PENTIUM 0
230 # define PJ_IS_LITTLE_ENDIAN 0
231 # define PJ_IS_BIG_ENDIAN 1
232 
233 #elif defined (PJ_M_ARMV4) || defined(ARM) || defined(_ARM_) || \
234  defined(ARMV4) || defined(__arm__)
235  /*
236  * ARM, bi-endian, so raise error if endianness is not configured
237  */
238 # undef PJ_M_ARMV4
239 # define PJ_M_ARMV4 1
240 # define PJ_M_NAME "armv4"
241 # define PJ_HAS_PENTIUM 0
242 # if !PJ_IS_LITTLE_ENDIAN && !PJ_IS_BIG_ENDIAN
243 # error Endianness must be declared for this processor
244 # endif
245 
246 #elif defined (PJ_M_POWERPC) || defined(__powerpc) || defined(__powerpc__) || \
247  defined(__POWERPC__) || defined(__ppc__) || defined(_M_PPC) || \
248  defined(_ARCH_PPC)
249  /*
250  * PowerPC, bi-endian, so raise error if endianness is not configured
251  */
252 # undef PJ_M_POWERPC
253 # define PJ_M_POWERPC 1
254 # define PJ_M_NAME "powerpc"
255 # define PJ_HAS_PENTIUM 0
256 # if !PJ_IS_LITTLE_ENDIAN && !PJ_IS_BIG_ENDIAN
257 # error Endianness must be declared for this processor
258 # endif
259 
260 #elif defined (PJ_M_NIOS2) || defined(__nios2) || defined(__nios2__) || \
261  defined(__NIOS2__) || defined(__M_NIOS2) || defined(_ARCH_NIOS2)
262  /*
263  * Nios2, little endian
264  */
265 # undef PJ_M_NIOS2
266 # define PJ_M_NIOS2 1
267 # define PJ_M_NAME "nios2"
268 # define PJ_HAS_PENTIUM 0
269 # define PJ_IS_LITTLE_ENDIAN 1
270 # define PJ_IS_BIG_ENDIAN 0
271 
272 #else
273 # error "Please specify target machine."
274 #endif
275 
276 /* Include size_t definition. */
277 #include <pj/compat/size_t.h>
278 
279 /* Include site/user specific configuration to control PJLIB features.
280  * YOU MUST CREATE THIS FILE YOURSELF!!
281  */
282 #include <pj/config_site.h>
283 
284 /********************************************************************
285  * PJLIB Features.
286  */
287 
288 /* Overrides for DOXYGEN */
289 #ifdef DOXYGEN
290 # undef PJ_FUNCTIONS_ARE_INLINED
291 # undef PJ_HAS_FLOATING_POINT
292 # undef PJ_LOG_MAX_LEVEL
293 # undef PJ_LOG_MAX_SIZE
294 # undef PJ_LOG_USE_STACK_BUFFER
295 # undef PJ_TERM_HAS_COLOR
296 # undef PJ_POOL_DEBUG
297 # undef PJ_HAS_TCP
298 # undef PJ_MAX_HOSTNAME
299 # undef PJ_IOQUEUE_MAX_HANDLES
300 # undef FD_SETSIZE
301 # undef PJ_HAS_SEMAPHORE
302 # undef PJ_HAS_EVENT_OBJ
303 # undef PJ_ENABLE_EXTRA_CHECK
304 # undef PJ_EXCEPTION_USE_WIN32_SEH
305 # undef PJ_HAS_ERROR_STRING
306 
307 # define PJ_HAS_IPV6 1
308 #endif
309 
327 #ifndef PJ_DEBUG
328 # ifndef NDEBUG
329 # define PJ_DEBUG 1
330 # else
331 # define PJ_DEBUG 0
332 # endif
333 #endif
334 
343 #ifndef PJ_DEBUG_MUTEX
344 # define PJ_DEBUG_MUTEX 0
345 #endif
346 
352 #ifndef PJ_FUNCTIONS_ARE_INLINED
353 # define PJ_FUNCTIONS_ARE_INLINED 0
354 #endif
355 
361 #ifndef PJ_HAS_FLOATING_POINT
362 # define PJ_HAS_FLOATING_POINT 1
363 #endif
364 
382 #ifndef PJ_LOG_MAX_LEVEL
383 # define PJ_LOG_MAX_LEVEL 5
384 #endif
385 
394 #ifndef PJ_LOG_MAX_SIZE
395 # define PJ_LOG_MAX_SIZE 4000
396 #endif
397 
406 #ifndef PJ_LOG_USE_STACK_BUFFER
407 # define PJ_LOG_USE_STACK_BUFFER 1
408 #endif
409 
415 #ifndef PJ_LOG_ENABLE_INDENT
416 # define PJ_LOG_ENABLE_INDENT 1
417 #endif
418 
425 #ifndef PJ_LOG_INDENT_SIZE
426 # define PJ_LOG_INDENT_SIZE 1
427 #endif
428 
434 #ifndef PJ_LOG_INDENT_CHAR
435 # define PJ_LOG_INDENT_CHAR '.'
436 #endif
437 
443 #ifndef PJ_TERM_HAS_COLOR
444 # define PJ_TERM_HAS_COLOR 1
445 #endif
446 
447 
459 #ifndef PJ_SAFE_POOL
460 # define PJ_SAFE_POOL 0
461 #endif
462 
463 
472 #ifndef PJ_POOL_DEBUG
473 # define PJ_POOL_DEBUG 0
474 #endif
475 
476 
485 #ifndef PJ_TIMER_DEBUG
486 # define PJ_TIMER_DEBUG 0
487 #endif
488 
489 
493 #ifndef PJ_GRP_LOCK_DEBUG
494 # define PJ_GRP_LOCK_DEBUG 0
495 #endif
496 
497 
504 #ifndef PJ_THREAD_DEFAULT_STACK_SIZE
505 # define PJ_THREAD_DEFAULT_STACK_SIZE 8192
506 #endif
507 
508 
516 #ifndef PJ_OS_HAS_CHECK_STACK
517 # define PJ_OS_HAS_CHECK_STACK 0
518 #endif
519 
525 #ifndef PJ_HAS_POOL_ALT_API
526 # define PJ_HAS_POOL_ALT_API PJ_POOL_DEBUG
527 #endif
528 
529 
536 #ifndef PJ_HAS_TCP
537 # define PJ_HAS_TCP 1
538 #endif
539 
546 #ifndef PJ_HAS_IPV6
547 # define PJ_HAS_IPV6 0
548 #endif
549 
557 #ifndef PJ_MAX_HOSTNAME
558 # define PJ_MAX_HOSTNAME (128)
559 #endif
560 
567 #ifndef PJ_ACTIVESOCK_MAX_CONSECUTIVE_ACCEPT_ERROR
568 # define PJ_ACTIVESOCK_MAX_CONSECUTIVE_ACCEPT_ERROR 50
569 #endif
570 
578 #ifndef PJ_IOQUEUE_MAX_HANDLES
579 # define PJ_IOQUEUE_MAX_HANDLES (64)
580 #endif
581 
582 
599 #ifndef PJ_IOQUEUE_HAS_SAFE_UNREG
600 # define PJ_IOQUEUE_HAS_SAFE_UNREG 1
601 #endif
602 
603 
615 #ifndef PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY
616 # define PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY 1
617 #endif
618 
619 
620 /* Sanity check:
621  * if ioqueue concurrency is disallowed, PJ_IOQUEUE_HAS_SAFE_UNREG
622  * must be enabled.
623  */
624 #if (PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY==0) && (PJ_IOQUEUE_HAS_SAFE_UNREG==0)
625 # error PJ_IOQUEUE_HAS_SAFE_UNREG must be enabled if ioqueue concurrency \
626  is disabled
627 #endif
628 
629 
639 #ifndef PJ_IOQUEUE_KEY_FREE_DELAY
640 # define PJ_IOQUEUE_KEY_FREE_DELAY 500
641 #endif
642 
643 
649 #ifndef PJ_FD_SETSIZE_SETABLE
650 # if (defined(PJ_HAS_WINSOCK_H) && PJ_HAS_WINSOCK_H!=0) || \
651  (defined(PJ_HAS_WINSOCK2_H) && PJ_HAS_WINSOCK2_H!=0)
652 # define PJ_FD_SETSIZE_SETABLE 1
653 # else
654 # define PJ_FD_SETSIZE_SETABLE 0
655 # endif
656 #endif
657 
664 #if PJ_FD_SETSIZE_SETABLE
665  /* Only override FD_SETSIZE if the value has not been set */
666 # ifndef FD_SETSIZE
667 # define FD_SETSIZE PJ_IOQUEUE_MAX_HANDLES
668 # endif
669 #else
670  /* When FD_SETSIZE is not changeable, check if PJ_IOQUEUE_MAX_HANDLES
671  * is lower than FD_SETSIZE value.
672  */
673 # ifdef FD_SETSIZE
674 # if PJ_IOQUEUE_MAX_HANDLES > FD_SETSIZE
675 # error "PJ_IOQUEUE_MAX_HANDLES is greater than FD_SETSIZE"
676 # endif
677 # endif
678 #endif
679 
680 
687 #ifndef PJ_IP_HELPER_IGNORE_LOOPBACK_IF
688 # define PJ_IP_HELPER_IGNORE_LOOPBACK_IF 1
689 #endif
690 
691 
697 #ifndef PJ_HAS_SEMAPHORE
698 # define PJ_HAS_SEMAPHORE 1
699 #endif
700 
701 
707 #ifndef PJ_HAS_EVENT_OBJ
708 # define PJ_HAS_EVENT_OBJ 1
709 #endif
710 
711 
715 #ifndef PJ_MAXPATH
716 # define PJ_MAXPATH 260
717 #endif
718 
719 
731 #ifndef PJ_ENABLE_EXTRA_CHECK
732 # define PJ_ENABLE_EXTRA_CHECK 1
733 #endif
734 
735 
747 #ifndef PJ_HAS_EXCEPTION_NAMES
748 # define PJ_HAS_EXCEPTION_NAMES 1
749 #endif
750 
758 #ifndef PJ_MAX_EXCEPTION_ID
759 # define PJ_MAX_EXCEPTION_ID 16
760 #endif
761 
768 #ifndef PJ_EXCEPTION_USE_WIN32_SEH
769 # define PJ_EXCEPTION_USE_WIN32_SEH 0
770 #endif
771 
778 #ifndef PJ_TIMESTAMP_USE_RDTSC
779 # define PJ_TIMESTAMP_USE_RDTSC 0
780 #endif
781 
786 #ifndef PJ_NATIVE_ERR_POSITIVE
787 # define PJ_NATIVE_ERR_POSITIVE 1
788 #endif
789 
796 #ifndef PJ_HAS_ERROR_STRING
797 # define PJ_HAS_ERROR_STRING 1
798 #endif
799 
800 
809 #ifndef PJ_HAS_STRICMP_ALNUM
810 # define PJ_HAS_STRICMP_ALNUM 0
811 #endif
812 
813 
814 /*
815  * Types of QoS backend implementation.
816  */
817 
822 #define PJ_QOS_DUMMY 1
823 
825 #define PJ_QOS_BSD 2
826 
828 #define PJ_QOS_WM 3
829 
831 #define PJ_QOS_SYMBIAN 4
832 
836 #ifndef PJ_QOS_IMPLEMENTATION
837 # if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE && _WIN32_WCE >= 0x502
838  /* Windows Mobile 6 or later */
839 # define PJ_QOS_IMPLEMENTATION PJ_QOS_WM
840 # endif
841 #endif
842 
843 
851 #ifndef PJ_HAS_SSL_SOCK
852 # define PJ_HAS_SSL_SOCK 0
853 #endif
854 
855 
862 #ifndef PJ_SOCK_DISABLE_WSAECONNRESET
863 # define PJ_SOCK_DISABLE_WSAECONNRESET 1
864 #endif
865 
866 
869 /********************************************************************
870  * General macros.
871  */
872 
955 #define PJ_INLINE(type) PJ_INLINE_SPECIFIER type
956 
965 #ifndef PJ_EXPORT_DECL_SPECIFIER
966 # define PJ_EXPORT_DECL_SPECIFIER
967 #endif
968 
969 
978 #ifndef PJ_EXPORT_DEF_SPECIFIER
979 # define PJ_EXPORT_DEF_SPECIFIER
980 #endif
981 
982 
990 #ifndef PJ_IMPORT_DECL_SPECIFIER
991 # define PJ_IMPORT_DECL_SPECIFIER
992 #endif
993 
994 
998 #ifndef PJ_EXPORT_SYMBOL
999 # define PJ_EXPORT_SYMBOL(x)
1000 #endif
1001 
1002 
1008 #if defined(PJ_DLL)
1009 # if defined(PJ_EXPORTING)
1010 # define PJ_DECL(type) PJ_EXPORT_DECL_SPECIFIER type
1011 # else
1012 # define PJ_DECL(type) PJ_IMPORT_DECL_SPECIFIER type
1013 # endif
1014 #elif !defined(PJ_DECL)
1015 # if defined(__cplusplus)
1016 # define PJ_DECL(type) type
1017 # else
1018 # define PJ_DECL(type) extern type
1019 # endif
1020 #endif
1021 
1022 
1028 #if defined(PJ_DLL) && defined(PJ_EXPORTING)
1029 # define PJ_DEF(type) PJ_EXPORT_DEF_SPECIFIER type
1030 #elif !defined(PJ_DEF)
1031 # define PJ_DEF(type) type
1032 #endif
1033 
1034 
1053 #ifdef __cplusplus
1054 # define PJ_DECL_NO_RETURN(type) PJ_DECL(type) PJ_NORETURN
1055 # define PJ_IDECL_NO_RETURN(type) PJ_INLINE(type) PJ_NORETURN
1056 # define PJ_BEGIN_DECL extern "C" {
1057 # define PJ_END_DECL }
1058 #else
1059 # define PJ_DECL_NO_RETURN(type) PJ_NORETURN PJ_DECL(type)
1060 # define PJ_IDECL_NO_RETURN(type) PJ_NORETURN PJ_INLINE(type)
1061 # define PJ_BEGIN_DECL
1062 # define PJ_END_DECL
1063 #endif
1064 
1065 
1066 
1072 #if defined(PJ_DLL)
1073 # if defined(PJ_EXPORTING)
1074 # define PJ_DECL_DATA(type) PJ_EXPORT_DECL_SPECIFIER extern type
1075 # else
1076 # define PJ_DECL_DATA(type) PJ_IMPORT_DECL_SPECIFIER extern type
1077 # endif
1078 #elif !defined(PJ_DECL_DATA)
1079 # define PJ_DECL_DATA(type) extern type
1080 #endif
1081 
1082 
1088 #if defined(PJ_DLL) && defined(PJ_EXPORTING)
1089 # define PJ_DEF_DATA(type) PJ_EXPORT_DEF_SPECIFIER type
1090 #elif !defined(PJ_DEF_DATA)
1091 # define PJ_DEF_DATA(type) type
1092 #endif
1093 
1094 
1106 #if PJ_FUNCTIONS_ARE_INLINED
1107 # define PJ_IDECL(type) PJ_INLINE(type)
1108 # define PJ_IDEF(type) PJ_INLINE(type)
1109 #else
1110 # define PJ_IDECL(type) PJ_DECL(type)
1111 # define PJ_IDEF(type) PJ_DEF(type)
1112 #endif
1113 
1114 
1120 #define PJ_UNUSED_ARG(arg) (void)arg
1121 
1128 #ifndef PJ_TODO
1129 # define PJ_TODO(id) TODO___##id:
1130 #endif
1131 
1136 #ifndef PJ_RACE_ME
1137 # define PJ_RACE_ME(x)
1138 #endif
1139 
1145 #define __pj_throw__(x)
1146 
1149 /********************************************************************
1150  * Sanity Checks
1151  */
1152 #ifndef PJ_HAS_HIGH_RES_TIMER
1153 # error "PJ_HAS_HIGH_RES_TIMER is not defined!"
1154 #endif
1155 
1156 #if !defined(PJ_HAS_PENTIUM)
1157 # error "PJ_HAS_PENTIUM is not defined!"
1158 #endif
1159 
1160 #if !defined(PJ_IS_LITTLE_ENDIAN)
1161 # error "PJ_IS_LITTLE_ENDIAN is not defined!"
1162 #endif
1163 
1164 #if !defined(PJ_IS_BIG_ENDIAN)
1165 # error "PJ_IS_BIG_ENDIAN is not defined!"
1166 #endif
1167 
1168 #if !defined(PJ_EMULATE_RWMUTEX)
1169 # error "PJ_EMULATE_RWMUTEX should be defined in compat/os_xx.h"
1170 #endif
1171 
1172 #if !defined(PJ_THREAD_SET_STACK_SIZE)
1173 # error "PJ_THREAD_SET_STACK_SIZE should be defined in compat/os_xx.h"
1174 #endif
1175 
1176 #if !defined(PJ_THREAD_ALLOCATE_STACK)
1177 # error "PJ_THREAD_ALLOCATE_STACK should be defined in compat/os_xx.h"
1178 #endif
1179 
1181 
1183 #define PJ_VERSION_NUM_MAJOR 2
1184 
1186 #define PJ_VERSION_NUM_MINOR 1
1187 
1189 #define PJ_VERSION_NUM_REV 0
1190 
1195 #define PJ_VERSION_NUM_EXTRA ""
1196 
1202 #define PJ_VERSION_NUM ((PJ_VERSION_NUM_MAJOR << 24) | \
1203  (PJ_VERSION_NUM_MINOR << 16) | \
1204  (PJ_VERSION_NUM_REV << 8))
1205 
1209 PJ_DECL_DATA(const char*) PJ_VERSION;
1210 
1216 PJ_DECL(const char*) pj_get_version(void);
1217 
1221 PJ_DECL(void) pj_dump_config(void);
1222 
1224 
1225 
1226 #endif /* __PJ_CONFIG_H__ */
1227 

 


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