~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to .pc/02_target_s390.patch/daemon/libs/pjproject/pjlib/include/pj/config.h

  • Committer: Package Import Robot
  • Author(s): Whoopie
  • Date: 2012-03-22 10:29:10 UTC
  • mfrom: (4.1.12 sid)
  • Revision ID: package-import@ubuntu.com-20120322102910-tb8hugi2su1tguwh
Tags: 1.0.2-1ubuntu1
* Apply some upstream patches to fix FTBFS (LP: #913018):
  - debian/patches/05_glib_includes.patch: fix glib includes.
  - debian/patches/06_use_XkbKeycodeToKeysym.patch: use 
    XkbKeycodeToKeysym instead of (deprecated) XKeycodeToKeysym.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* $Id: config.h 3554 2011-05-05 09:10:15Z nanang $ */
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
 
/**
24
 
 * @file config.h
25
 
 * @brief PJLIB Main configuration settings.
26
 
 */
27
 
 
28
 
/********************************************************************
29
 
 * Include compiler specific configuration.
30
 
 */
31
 
#if defined(_MSC_VER)
32
 
#  include <pj/compat/cc_msvc.h>
33
 
#elif defined(__GNUC__)
34
 
#  include <pj/compat/cc_gcc.h>
35
 
#elif defined(__CW32__)
36
 
#  include <pj/compat/cc_mwcc.h>
37
 
#elif defined(__MWERKS__)
38
 
#  include <pj/compat/cc_codew.h>
39
 
#elif defined(__GCCE__)
40
 
#  include <pj/compat/cc_gcce.h>
41
 
#elif defined(__ARMCC__)
42
 
#  include <pj/compat/cc_armcc.h>
43
 
#else
44
 
#  error "Unknown compiler."
45
 
#endif
46
 
 
47
 
 
48
 
/********************************************************************
49
 
 * Include target OS specific configuration.
50
 
 */
51
 
#if defined(PJ_AUTOCONF)
52
 
    /*
53
 
     * Autoconf
54
 
     */
55
 
#   include <pj/compat/os_auto.h>
56
 
 
57
 
#elif defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
58
 
    /*
59
 
     * SymbianOS
60
 
     */
61
 
#  include <pj/compat/os_symbian.h>
62
 
 
63
 
#elif defined(PJ_WIN32_WINCE) || defined(_WIN32_WCE) || defined(UNDER_CE)
64
 
    /*
65
 
     * Windows CE
66
 
     */
67
 
#   undef PJ_WIN32_WINCE
68
 
#   define PJ_WIN32_WINCE   1
69
 
#   include <pj/compat/os_win32_wince.h>
70
 
 
71
 
    /* Also define Win32 */
72
 
#   define PJ_WIN32 1
73
 
 
74
 
#elif defined(PJ_WIN32) || defined(_WIN32) || defined(__WIN32__) || \
75
 
        defined(_WIN64) || defined(WIN32) || defined(__TOS_WIN__)
76
 
    /*
77
 
     * Win32
78
 
     */
79
 
#   undef PJ_WIN32
80
 
#   define PJ_WIN32 1
81
 
#   include <pj/compat/os_win32.h>
82
 
 
83
 
#elif defined(PJ_LINUX_KERNEL) && PJ_LINUX_KERNEL!=0
84
 
    /*
85
 
     * Linux kernel
86
 
     */
87
 
#  include <pj/compat/os_linux_kernel.h>
88
 
 
89
 
#elif defined(PJ_LINUX) || defined(linux) || defined(__linux)
90
 
    /*
91
 
     * Linux
92
 
     */
93
 
#   undef PJ_LINUX
94
 
#   define PJ_LINUX         1
95
 
#   include <pj/compat/os_linux.h>
96
 
 
97
 
#elif defined(PJ_PALMOS) && PJ_PALMOS!=0
98
 
    /*
99
 
     * Palm
100
 
     */
101
 
#  include <pj/compat/os_palmos.h>
102
 
 
103
 
#elif defined(PJ_SUNOS) || defined(sun) || defined(__sun)
104
 
    /*
105
 
     * SunOS
106
 
     */
107
 
#   undef PJ_SUNOS
108
 
#   define PJ_SUNOS         1
109
 
#   include <pj/compat/os_sunos.h>
110
 
 
111
 
#elif defined(PJ_DARWINOS) || defined(__MACOSX__) || \
112
 
      defined (__APPLE__) || defined (__MACH__)
113
 
    /*
114
 
     * MacOS X
115
 
     */
116
 
#   undef PJ_DARWINOS
117
 
#   define PJ_DARWINOS      1
118
 
#   include <pj/compat/os_darwinos.h>
119
 
 
120
 
#elif defined(PJ_RTEMS) && PJ_RTEMS!=0
121
 
    /*
122
 
     * RTEMS
123
 
     */
124
 
#  include <pj/compat/os_rtems.h>
125
 
#else
126
 
#   error "Please specify target os."
127
 
#endif
128
 
 
129
 
 
130
 
/********************************************************************
131
 
 * Target machine specific configuration.
132
 
 */
133
 
#if defined(PJ_AUTOCONF)
134
 
    /*
135
 
     * Autoconf configured
136
 
     */
137
 
#include <pj/compat/m_auto.h>
138
 
 
139
 
#elif defined (PJ_M_I386) || defined(_i386_) || defined(i_386_) || \
140
 
        defined(_X86_) || defined(x86) || defined(__i386__) || \
141
 
        defined(__i386) || defined(_M_IX86) || defined(__I86__)
142
 
    /*
143
 
     * Generic i386 processor family, little-endian
144
 
     */
145
 
#   undef PJ_M_I386
146
 
#   define PJ_M_I386            1
147
 
#   define PJ_M_NAME            "i386"
148
 
#   define PJ_HAS_PENTIUM       1
149
 
#   define PJ_IS_LITTLE_ENDIAN  1
150
 
#   define PJ_IS_BIG_ENDIAN     0
151
 
 
152
 
 
153
 
#elif defined (PJ_M_X86_64) || defined(__amd64__) || defined(__amd64) || \
154
 
        defined(__x86_64__) || defined(__x86_64)
155
 
    /*
156
 
     * AMD 64bit processor, little endian
157
 
     */
158
 
#   undef PJ_M_X86_64
159
 
#   define PJ_M_X86_64          1
160
 
#   define PJ_M_NAME            "x86_64"
161
 
#   define PJ_HAS_PENTIUM       1
162
 
#   define PJ_IS_LITTLE_ENDIAN  1
163
 
#   define PJ_IS_BIG_ENDIAN     0
164
 
 
165
 
#elif defined(PJ_M_IA64) || defined(__ia64__) || defined(_IA64) || \
166
 
        defined(__IA64__) || defined(   _M_IA64)
167
 
    /*
168
 
     * Intel IA64 processor, little endian
169
 
     */
170
 
#   undef PJ_M_IA64
171
 
#   define PJ_M_IA64            1
172
 
#   define PJ_M_NAME            "ia64"
173
 
#   define PJ_HAS_PENTIUM       1
174
 
#   define PJ_IS_LITTLE_ENDIAN  1
175
 
#   define PJ_IS_BIG_ENDIAN     0
176
 
 
177
 
#elif defined (PJ_M_M68K) && PJ_M_M68K != 0
178
 
 
179
 
    /*
180
 
     * Motorola m68k processor, big endian
181
 
     */
182
 
#   undef PJ_M_M68K
183
 
#   define PJ_M_M68K            1
184
 
#   define PJ_M_NAME            "m68k"
185
 
#   define PJ_HAS_PENTIUM       0
186
 
#   define PJ_IS_LITTLE_ENDIAN  0
187
 
#   define PJ_IS_BIG_ENDIAN     1
188
 
 
189
 
 
190
 
#elif defined (PJ_M_ALPHA) || defined (__alpha__) || defined (__alpha) || \
191
 
        defined (_M_ALPHA)
192
 
    /*
193
 
     * DEC Alpha processor, little endian
194
 
     */
195
 
#   undef PJ_M_ALPHA
196
 
#   define PJ_M_ALPHA           1
197
 
#   define PJ_M_NAME            "alpha"
198
 
#   define PJ_HAS_PENTIUM       0
199
 
#   define PJ_IS_LITTLE_ENDIAN  1
200
 
#   define PJ_IS_BIG_ENDIAN     0
201
 
 
202
 
 
203
 
#elif defined(PJ_M_MIPS) || defined(__mips__) || defined(__mips) || \
204
 
        defined(__MIPS__) || defined(MIPS) || defined(_MIPS_)
205
 
    /*
206
 
     * MIPS, default to little endian
207
 
     */
208
 
#   undef PJ_M_MIPS
209
 
#   define PJ_M_MIPS            1
210
 
#   define PJ_M_NAME            "mips"
211
 
#   define PJ_HAS_PENTIUM       0
212
 
#   if !defined(PJ_IS_LITTLE_ENDIAN) && !defined(PJ_IS_BIG_ENDIAN)
213
 
#       define PJ_IS_LITTLE_ENDIAN      1
214
 
#       define PJ_IS_BIG_ENDIAN         0
215
 
#   endif
216
 
 
217
 
 
218
 
#elif defined (PJ_M_SPARC) || defined(  __sparc__) || defined(__sparc)
219
 
    /*
220
 
     * Sun Sparc, big endian
221
 
     */
222
 
#   undef PJ_M_SPARC
223
 
#   define PJ_M_SPARC           1
224
 
#   define PJ_M_NAME            "sparc"
225
 
#   define PJ_HAS_PENTIUM       0
226
 
#   define PJ_IS_LITTLE_ENDIAN  0
227
 
#   define PJ_IS_BIG_ENDIAN     1
228
 
 
229
 
#elif defined (PJ_M_ARMV4) || defined(ARM) || defined(_ARM_) ||  \
230
 
        defined(ARMV4) || defined(__arm__)
231
 
    /*
232
 
     * ARM, default to little endian
233
 
     */
234
 
#   undef PJ_M_ARMV4
235
 
#   define PJ_M_ARMV4           1
236
 
#   define PJ_M_NAME            "armv4"
237
 
#   define PJ_HAS_PENTIUM       0
238
 
#   if !defined(PJ_IS_LITTLE_ENDIAN) && !defined(PJ_IS_BIG_ENDIAN)
239
 
#       define PJ_IS_LITTLE_ENDIAN      1
240
 
#       define PJ_IS_BIG_ENDIAN         0
241
 
#   endif
242
 
 
243
 
#elif defined (PJ_M_POWERPC) || defined(__powerpc) || defined(__powerpc__) || \
244
 
        defined(__POWERPC__) || defined(__ppc__) || defined(_M_PPC) || \
245
 
        defined(_ARCH_PPC)
246
 
    /*
247
 
     * PowerPC, big endian
248
 
     */
249
 
#   undef PJ_M_POWERPC
250
 
#   define PJ_M_POWERPC         1
251
 
#   define PJ_M_NAME            "powerpc"
252
 
#   define PJ_HAS_PENTIUM       0
253
 
#   define PJ_IS_LITTLE_ENDIAN  0
254
 
#   define PJ_IS_BIG_ENDIAN     1
255
 
 
256
 
#elif defined (PJ_M_NIOS2) || defined(__nios2) || defined(__nios2__) || \
257
 
      defined(__NIOS2__) || defined(__M_NIOS2) || defined(_ARCH_NIOS2)
258
 
    /*
259
 
     * Nios2, little endian
260
 
     */
261
 
#   undef PJ_M_NIOS2
262
 
#   define PJ_M_NIOS2           1
263
 
#   define PJ_M_NAME            "nios2"
264
 
#   define PJ_HAS_PENTIUM       0
265
 
#   define PJ_IS_LITTLE_ENDIAN  1
266
 
#   define PJ_IS_BIG_ENDIAN     0
267
 
                
268
 
#else
269
 
#   error "Please specify target machine."
270
 
#endif
271
 
 
272
 
/* Include size_t definition. */
273
 
#include <pj/compat/size_t.h>
274
 
 
275
 
/* Include site/user specific configuration to control PJLIB features.
276
 
 * YOU MUST CREATE THIS FILE YOURSELF!!
277
 
 */
278
 
#include <pj/config_site.h>
279
 
 
280
 
/********************************************************************
281
 
 * PJLIB Features.
282
 
 */
283
 
 
284
 
/* Overrides for DOXYGEN */
285
 
#ifdef DOXYGEN
286
 
#   undef PJ_FUNCTIONS_ARE_INLINED
287
 
#   undef PJ_HAS_FLOATING_POINT
288
 
#   undef PJ_LOG_MAX_LEVEL
289
 
#   undef PJ_LOG_MAX_SIZE
290
 
#   undef PJ_LOG_USE_STACK_BUFFER
291
 
#   undef PJ_TERM_HAS_COLOR
292
 
#   undef PJ_POOL_DEBUG
293
 
#   undef PJ_HAS_TCP
294
 
#   undef PJ_MAX_HOSTNAME
295
 
#   undef PJ_IOQUEUE_MAX_HANDLES
296
 
#   undef FD_SETSIZE
297
 
#   undef PJ_HAS_SEMAPHORE
298
 
#   undef PJ_HAS_EVENT_OBJ
299
 
#   undef PJ_ENABLE_EXTRA_CHECK
300
 
#   undef PJ_EXCEPTION_USE_WIN32_SEH
301
 
#   undef PJ_HAS_ERROR_STRING
302
 
 
303
 
#   define PJ_HAS_IPV6  1
304
 
#endif
305
 
 
306
 
/**
307
 
 * @defgroup pj_config Build Configuration
308
 
 * @{
309
 
 *
310
 
 * This section contains macros that can set during PJLIB build process
311
 
 * to controll various aspects of the library.
312
 
 *
313
 
 * <b>Note</b>: the values in this page does NOT necessarily reflect to the
314
 
 * macro values during the build process.
315
 
 */
316
 
 
317
 
/**
318
 
 * If this macro is set to 1, it will enable some debugging checking
319
 
 * in the library.
320
 
 *
321
 
 * Default: equal to (NOT NDEBUG).
322
 
 */
323
 
#ifndef PJ_DEBUG
324
 
#  ifndef NDEBUG
325
 
#    define PJ_DEBUG                1
326
 
#  else
327
 
#    define PJ_DEBUG                0
328
 
#  endif
329
 
#endif
330
 
 
331
 
/**
332
 
 * Enable this macro to activate logging to mutex/semaphore related events.
333
 
 * This is useful to troubleshoot concurrency problems such as deadlocks.
334
 
 * In addition, you should also add PJ_LOG_HAS_THREAD_ID flag to the
335
 
 * log decoration to assist the troubleshooting.
336
 
 *
337
 
 * Default: 0
338
 
 */
339
 
#ifndef PJ_DEBUG_MUTEX
340
 
#   define PJ_DEBUG_MUTEX           0
341
 
#endif
342
 
 
343
 
/**
344
 
 * Expand functions in *_i.h header files as inline.
345
 
 *
346
 
 * Default: 0.
347
 
 */
348
 
#ifndef PJ_FUNCTIONS_ARE_INLINED
349
 
#  define PJ_FUNCTIONS_ARE_INLINED  0
350
 
#endif
351
 
 
352
 
/**
353
 
 * Use floating point computations in the library.
354
 
 *
355
 
 * Default: 1.
356
 
 */
357
 
#ifndef PJ_HAS_FLOATING_POINT
358
 
#  define PJ_HAS_FLOATING_POINT     1
359
 
#endif
360
 
 
361
 
/**
362
 
 * Declare maximum logging level/verbosity. Lower number indicates higher
363
 
 * importance, with the highest importance has level zero. The least
364
 
 * important level is five in this implementation, but this can be extended
365
 
 * by supplying the appropriate implementation.
366
 
 *
367
 
 * The level conventions:
368
 
 *  - 0: fatal error
369
 
 *  - 1: error
370
 
 *  - 2: warning
371
 
 *  - 3: info
372
 
 *  - 4: debug
373
 
 *  - 5: trace
374
 
 *  - 6: more detailed trace
375
 
 *
376
 
 * Default: 4
377
 
 */
378
 
#ifndef PJ_LOG_MAX_LEVEL
379
 
#  define PJ_LOG_MAX_LEVEL   5
380
 
#endif
381
 
 
382
 
/**
383
 
 * Maximum message size that can be sent to output device for each call
384
 
 * to PJ_LOG(). If the message size is longer than this value, it will be cut.
385
 
 * This may affect the stack usage, depending whether PJ_LOG_USE_STACK_BUFFER
386
 
 * flag is set.
387
 
 *
388
 
 * Default: 4000
389
 
 */
390
 
#ifndef PJ_LOG_MAX_SIZE
391
 
#  define PJ_LOG_MAX_SIZE           4000
392
 
#endif
393
 
 
394
 
/**
395
 
 * Log buffer.
396
 
 * Does the log get the buffer from the stack? (default is yes).
397
 
 * If the value is set to NO, then the buffer will be taken from static
398
 
 * buffer, which in this case will make the log function non-reentrant.
399
 
 *
400
 
 * Default: 1
401
 
 */
402
 
#ifndef PJ_LOG_USE_STACK_BUFFER
403
 
#  define PJ_LOG_USE_STACK_BUFFER   1
404
 
#endif
405
 
 
406
 
 
407
 
/**
408
 
 * Colorfull terminal (for logging etc).
409
 
 *
410
 
 * Default: 1
411
 
 */
412
 
#ifndef PJ_TERM_HAS_COLOR
413
 
#  define PJ_TERM_HAS_COLOR         1
414
 
#endif
415
 
 
416
 
 
417
 
/**
418
 
 * Set this flag to non-zero to enable various checking for pool
419
 
 * operations. When this flag is set, assertion must be enabled
420
 
 * in the application.
421
 
 *
422
 
 * This will slow down pool creation and destruction and will add
423
 
 * few bytes of overhead, so application would normally want to 
424
 
 * disable this feature on release build.
425
 
 *
426
 
 * Default: 0
427
 
 */
428
 
#ifndef PJ_SAFE_POOL
429
 
#   define PJ_SAFE_POOL             0
430
 
#endif
431
 
 
432
 
 
433
 
/**
434
 
 * If pool debugging is used, then each memory allocation from the pool
435
 
 * will call malloc(), and pool will release all memory chunks when it
436
 
 * is destroyed. This works better when memory verification programs
437
 
 * such as Rational Purify is used.
438
 
 *
439
 
 * Default: 0
440
 
 */
441
 
#ifndef PJ_POOL_DEBUG
442
 
#  define PJ_POOL_DEBUG             0
443
 
#endif
444
 
 
445
 
 
446
 
/**
447
 
 * Specify this as \a stack_size argument in #pj_thread_create() to specify
448
 
 * that thread should use default stack size for the current platform.
449
 
 *
450
 
 * Default: 8192
451
 
 */
452
 
#ifndef PJ_THREAD_DEFAULT_STACK_SIZE 
453
 
#  define PJ_THREAD_DEFAULT_STACK_SIZE    8192
454
 
#endif
455
 
 
456
 
 
457
 
/**
458
 
 * Specify if PJ_CHECK_STACK() macro is enabled to check the sanity of 
459
 
 * the stack. The OS implementation may check that no stack overflow 
460
 
 * occurs, and it also may collect statistic about stack usage. Note
461
 
 * that this will increase the footprint of the libraries since it
462
 
 * tracks the filename and line number of each functions.
463
 
 */
464
 
#ifndef PJ_OS_HAS_CHECK_STACK
465
 
#       define PJ_OS_HAS_CHECK_STACK            0
466
 
#endif
467
 
 
468
 
/**
469
 
 * Do we have alternate pool implementation?
470
 
 *
471
 
 * Default: 0
472
 
 */
473
 
#ifndef PJ_HAS_POOL_ALT_API
474
 
#   define PJ_HAS_POOL_ALT_API      PJ_POOL_DEBUG
475
 
#endif
476
 
 
477
 
 
478
 
/**
479
 
 * Support TCP in the library.
480
 
 * Disabling TCP will reduce the footprint slightly (about 6KB).
481
 
 *
482
 
 * Default: 1
483
 
 */
484
 
#ifndef PJ_HAS_TCP
485
 
#  define PJ_HAS_TCP                1
486
 
#endif
487
 
 
488
 
/**
489
 
 * Support IPv6 in the library. If this support is disabled, some IPv6 
490
 
 * related functions will return PJ_EIPV6NOTSUP.
491
 
 *
492
 
 * Default: 0 (disabled, for now)
493
 
 */
494
 
#ifndef PJ_HAS_IPV6
495
 
#  define PJ_HAS_IPV6               0
496
 
#endif
497
 
 
498
 
 /**
499
 
 * Maximum hostname length.
500
 
 * Libraries sometimes needs to make copy of an address to stack buffer;
501
 
 * the value here affects the stack usage.
502
 
 *
503
 
 * Default: 128
504
 
 */
505
 
#ifndef PJ_MAX_HOSTNAME
506
 
#  define PJ_MAX_HOSTNAME           (128)
507
 
#endif
508
 
 
509
 
/**
510
 
 * Maximum consecutive identical error for accept() operation before
511
 
 * activesock stops calling the next ioqueue accept.
512
 
 *
513
 
 * Default: 50
514
 
 */
515
 
#ifndef PJ_ACTIVESOCK_MAX_CONSECUTIVE_ACCEPT_ERROR
516
 
#   define PJ_ACTIVESOCK_MAX_CONSECUTIVE_ACCEPT_ERROR 50
517
 
#endif
518
 
 
519
 
/**
520
 
 * Constants for declaring the maximum handles that can be supported by
521
 
 * a single IOQ framework. This constant might not be relevant to the 
522
 
 * underlying I/O queue impelementation, but still, developers should be 
523
 
 * aware of this constant, to make sure that the program will not break when
524
 
 * the underlying implementation changes.
525
 
 */
526
 
#ifndef PJ_IOQUEUE_MAX_HANDLES
527
 
#   define PJ_IOQUEUE_MAX_HANDLES       (64)
528
 
#endif
529
 
 
530
 
 
531
 
/**
532
 
 * If PJ_IOQUEUE_HAS_SAFE_UNREG macro is defined, then ioqueue will do more
533
 
 * things to ensure thread safety of handle unregistration operation by
534
 
 * employing reference counter to each handle.
535
 
 *
536
 
 * In addition, the ioqueue will preallocate memory for the handles, 
537
 
 * according to the maximum number of handles that is specified during 
538
 
 * ioqueue creation.
539
 
 *
540
 
 * All applications would normally want this enabled, but you may disable
541
 
 * this if:
542
 
 *  - there is no dynamic unregistration to all ioqueues.
543
 
 *  - there is no threading, or there is no preemptive multitasking.
544
 
 *
545
 
 * Default: 1
546
 
 */
547
 
#ifndef PJ_IOQUEUE_HAS_SAFE_UNREG
548
 
#   define PJ_IOQUEUE_HAS_SAFE_UNREG    1
549
 
#endif
550
 
 
551
 
 
552
 
/**
553
 
 * Default concurrency setting for sockets/handles registered to ioqueue.
554
 
 * This controls whether the ioqueue is allowed to call the key's callback
555
 
 * concurrently/in parallel. The default is yes, which means that if there
556
 
 * are more than one pending operations complete simultaneously, more
557
 
 * than one threads may call the key's callback at the same time. This
558
 
 * generally would promote good scalability for application, at the 
559
 
 * expense of more complexity to manage the concurrent accesses.
560
 
 *
561
 
 * Please see the ioqueue documentation for more info.
562
 
 */
563
 
#ifndef PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY
564
 
#   define PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY   1
565
 
#endif
566
 
 
567
 
 
568
 
/* Sanity check:
569
 
 *  if ioqueue concurrency is disallowed, PJ_IOQUEUE_HAS_SAFE_UNREG
570
 
 *  must be enabled.
571
 
 */
572
 
#if (PJ_IOQUEUE_DEFAULT_ALLOW_CONCURRENCY==0) && (PJ_IOQUEUE_HAS_SAFE_UNREG==0)
573
 
#   error PJ_IOQUEUE_HAS_SAFE_UNREG must be enabled if ioqueue concurrency \
574
 
          is disabled
575
 
#endif
576
 
 
577
 
 
578
 
/**
579
 
 * When safe unregistration (PJ_IOQUEUE_HAS_SAFE_UNREG) is configured in
580
 
 * ioqueue, the PJ_IOQUEUE_KEY_FREE_DELAY macro specifies how long the
581
 
 * ioqueue key is kept in closing state before it can be reused.
582
 
 *
583
 
 * The value is in miliseconds.
584
 
 *
585
 
 * Default: 500 msec.
586
 
 */
587
 
#ifndef PJ_IOQUEUE_KEY_FREE_DELAY
588
 
#   define PJ_IOQUEUE_KEY_FREE_DELAY    500
589
 
#endif
590
 
 
591
 
 
592
 
/**
593
 
 * Determine if FD_SETSIZE is changeable/set-able. If so, then we will
594
 
 * set it to PJ_IOQUEUE_MAX_HANDLES. Currently we detect this by checking
595
 
 * for Winsock.
596
 
 */
597
 
#ifndef PJ_FD_SETSIZE_SETABLE
598
 
#   if (defined(PJ_HAS_WINSOCK_H) && PJ_HAS_WINSOCK_H!=0) || \
599
 
       (defined(PJ_HAS_WINSOCK2_H) && PJ_HAS_WINSOCK2_H!=0)
600
 
#       define PJ_FD_SETSIZE_SETABLE    1
601
 
#   else
602
 
#       define PJ_FD_SETSIZE_SETABLE    0
603
 
#   endif
604
 
#endif
605
 
 
606
 
/**
607
 
 * Overrides FD_SETSIZE so it is consistent throughout the library.
608
 
 * We only do this if we detected that FD_SETSIZE is changeable. If
609
 
 * FD_SETSIZE is not set-able, then PJ_IOQUEUE_MAX_HANDLES must be
610
 
 * set to value lower than FD_SETSIZE.
611
 
 */
612
 
#if PJ_FD_SETSIZE_SETABLE
613
 
    /* Only override FD_SETSIZE if the value has not been set */
614
 
#   ifndef FD_SETSIZE
615
 
#       define FD_SETSIZE               PJ_IOQUEUE_MAX_HANDLES
616
 
#   endif
617
 
#else
618
 
    /* When FD_SETSIZE is not changeable, check if PJ_IOQUEUE_MAX_HANDLES
619
 
     * is lower than FD_SETSIZE value.
620
 
     */
621
 
#   ifdef FD_SETSIZE
622
 
#       if PJ_IOQUEUE_MAX_HANDLES > FD_SETSIZE
623
 
#           error "PJ_IOQUEUE_MAX_HANDLES is greater than FD_SETSIZE"
624
 
#       endif
625
 
#   endif
626
 
#endif
627
 
 
628
 
 
629
 
/**
630
 
 * Specify whether #pj_enum_ip_interface() function should exclude
631
 
 * loopback interfaces.
632
 
 *
633
 
 * Default: 1
634
 
 */
635
 
#ifndef PJ_IP_HELPER_IGNORE_LOOPBACK_IF
636
 
#   define PJ_IP_HELPER_IGNORE_LOOPBACK_IF      1
637
 
#endif
638
 
 
639
 
 
640
 
/**
641
 
 * Has semaphore functionality?
642
 
 *
643
 
 * Default: 1
644
 
 */
645
 
#ifndef PJ_HAS_SEMAPHORE
646
 
#  define PJ_HAS_SEMAPHORE          1
647
 
#endif
648
 
 
649
 
 
650
 
/**
651
 
 * Event object (for synchronization, e.g. in Win32)
652
 
 *
653
 
 * Default: 1
654
 
 */
655
 
#ifndef PJ_HAS_EVENT_OBJ
656
 
#  define PJ_HAS_EVENT_OBJ          1
657
 
#endif
658
 
 
659
 
 
660
 
/**
661
 
 * Maximum file name length.
662
 
 */
663
 
#ifndef PJ_MAXPATH
664
 
#   define PJ_MAXPATH               260
665
 
#endif
666
 
 
667
 
 
668
 
/**
669
 
 * Enable library's extra check.
670
 
 * If this macro is enabled, #PJ_ASSERT_RETURN macro will expand to
671
 
 * run-time checking. If this macro is disabled, #PJ_ASSERT_RETURN
672
 
 * will simply evaluate to #pj_assert().
673
 
 *
674
 
 * You can disable this macro to reduce size, at the risk of crashes
675
 
 * if invalid value (e.g. NULL) is passed to the library.
676
 
 *
677
 
 * Default: 1
678
 
 */
679
 
#ifndef PJ_ENABLE_EXTRA_CHECK
680
 
#   define PJ_ENABLE_EXTRA_CHECK    1
681
 
#endif
682
 
 
683
 
 
684
 
/**
685
 
 * Enable name registration for exceptions with #pj_exception_id_alloc().
686
 
 * If this feature is enabled, then the library will keep track of
687
 
 * names associated with each exception ID requested by application via
688
 
 * #pj_exception_id_alloc().
689
 
 *
690
 
 * Disabling this macro will reduce the code and .bss size by a tad bit.
691
 
 * See also #PJ_MAX_EXCEPTION_ID.
692
 
 *
693
 
 * Default: 1
694
 
 */
695
 
#ifndef PJ_HAS_EXCEPTION_NAMES
696
 
#   define PJ_HAS_EXCEPTION_NAMES   1
697
 
#endif
698
 
 
699
 
/**
700
 
 * Maximum number of unique exception IDs that can be requested
701
 
 * with #pj_exception_id_alloc(). For each entry, a small record will
702
 
 * be allocated in the .bss segment.
703
 
 *
704
 
 * Default: 16
705
 
 */
706
 
#ifndef PJ_MAX_EXCEPTION_ID
707
 
#   define PJ_MAX_EXCEPTION_ID      16
708
 
#endif
709
 
 
710
 
/**
711
 
 * Should we use Windows Structured Exception Handling (SEH) for the
712
 
 * PJLIB exceptions.
713
 
 *
714
 
 * Default: 0
715
 
 */
716
 
#ifndef PJ_EXCEPTION_USE_WIN32_SEH
717
 
#  define PJ_EXCEPTION_USE_WIN32_SEH 0
718
 
#endif
719
 
 
720
 
/**
721
 
 * Should we attempt to use Pentium's rdtsc for high resolution
722
 
 * timestamp.
723
 
 *
724
 
 * Default: 0
725
 
 */
726
 
#ifndef PJ_TIMESTAMP_USE_RDTSC
727
 
#   define PJ_TIMESTAMP_USE_RDTSC   0
728
 
#endif
729
 
 
730
 
/**
731
 
 * Is native platform error positive number?
732
 
 * Default: 1 (yes)
733
 
 */
734
 
#ifndef PJ_NATIVE_ERR_POSITIVE
735
 
#   define PJ_NATIVE_ERR_POSITIVE   1
736
 
#endif
737
 
 
738
 
/**
739
 
 * Include error message string in the library (pj_strerror()).
740
 
 * This is very much desirable!
741
 
 *
742
 
 * Default: 1
743
 
 */
744
 
#ifndef PJ_HAS_ERROR_STRING
745
 
#   define PJ_HAS_ERROR_STRING      1
746
 
#endif
747
 
 
748
 
 
749
 
/**
750
 
 * Include pj_stricmp_alnum() and pj_strnicmp_alnum(), i.e. custom
751
 
 * functions to compare alnum strings. On some systems, they're faster
752
 
 * then stricmp/strcasecmp, but they can be slower on other systems.
753
 
 * When disabled, pjlib will fallback to stricmp/strnicmp.
754
 
 * 
755
 
 * Default: 0
756
 
 */
757
 
#ifndef PJ_HAS_STRICMP_ALNUM
758
 
#   define PJ_HAS_STRICMP_ALNUM     0
759
 
#endif
760
 
 
761
 
 
762
 
/*
763
 
 * Types of QoS backend implementation.
764
 
 */
765
 
 
766
 
/** 
767
 
 * Dummy QoS backend implementation, will always return error on all
768
 
 * the APIs.
769
 
 */
770
 
#define PJ_QOS_DUMMY        1
771
 
 
772
 
/** QoS backend based on setsockopt(IP_TOS) */
773
 
#define PJ_QOS_BSD          2
774
 
 
775
 
/** QoS backend for Windows Mobile 6 */
776
 
#define PJ_QOS_WM           3
777
 
 
778
 
/** QoS backend for Symbian */
779
 
#define PJ_QOS_SYMBIAN      4
780
 
 
781
 
/**
782
 
 * Force the use of some QoS backend API for some platforms.
783
 
 */
784
 
#ifndef PJ_QOS_IMPLEMENTATION
785
 
#   if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE && _WIN32_WCE >= 0x502
786
 
        /* Windows Mobile 6 or later */
787
 
#       define PJ_QOS_IMPLEMENTATION    PJ_QOS_WM
788
 
#   endif
789
 
#endif
790
 
 
791
 
 
792
 
/**
793
 
 * Enable secure socket. For most platforms, this is implemented using
794
 
 * OpenSSL, so this will require OpenSSL to be installed. For Symbian
795
 
 * platform, this is implemented natively using CSecureSocket.
796
 
 *
797
 
 * Default: 0 (for now)
798
 
 */
799
 
#ifndef PJ_HAS_SSL_SOCK
800
 
#  define PJ_HAS_SSL_SOCK           0
801
 
#endif
802
 
 
803
 
 
804
 
/**
805
 
 * Disable WSAECONNRESET error for UDP sockets on Win32 platforms. See
806
 
 * https://trac.pjsip.org/repos/ticket/1197.
807
 
 *
808
 
 * Default: 1
809
 
 */
810
 
#ifndef PJ_SOCK_DISABLE_WSAECONNRESET
811
 
#   define PJ_SOCK_DISABLE_WSAECONNRESET    1
812
 
#endif
813
 
 
814
 
 
815
 
/** @} */
816
 
 
817
 
/********************************************************************
818
 
 * General macros.
819
 
 */
820
 
 
821
 
/**
822
 
 * @defgroup pj_dll_target Building Dynamic Link Libraries (DLL/DSO)
823
 
 * @ingroup pj_config
824
 
 * @{
825
 
 *
826
 
 * The libraries support generation of dynamic link libraries for
827
 
 * Symbian ABIv2 target (.dso/Dynamic Shared Object files, in Symbian
828
 
 * terms). Similar procedures may be applied for Win32 DLL with some 
829
 
 * modification.
830
 
 *
831
 
 * Depending on the platforms, these steps may be necessary in order to
832
 
 * produce the dynamic libraries:
833
 
 *  - Create the (Visual Studio) projects to produce DLL output. PJLIB
834
 
 *    does not provide ready to use project files to produce DLL, so
835
 
 *    you need to create these projects yourself. For Symbian, the MMP
836
 
 *    files have been setup to produce DSO files for targets that 
837
 
 *    require them.
838
 
 *  - In the (Visual Studio) projects, some macros need to be declared
839
 
 *    so that appropriate modifiers are added to symbol declarations
840
 
 *    and definitions. Please see the macro section below for information
841
 
 *    regarding these macros. For Symbian, these have been taken care by the
842
 
 *    MMP files.
843
 
 *  - Some build systems require .DEF file to be specified when creating
844
 
 *    the DLL. For Symbian, .DEF files are included in pjlib distribution,
845
 
 *    in <tt>pjlib/build.symbian</tt> directory. These DEF files are 
846
 
 *    created by running <tt>./makedef.sh all</tt> from this directory,
847
 
 *    inside Mingw.
848
 
 *
849
 
 * Macros related for building DLL/DSO files:
850
 
 *  - For platforms that supports dynamic link libraries generation,
851
 
 *    it must declare <tt>PJ_EXPORT_SPECIFIER</tt> macro which value contains
852
 
 *    the prefix to be added to symbol definition, to export this 
853
 
 *    symbol in the DLL/DSO. For example, on Win32/Visual Studio, the
854
 
 *    value of this macro is \a __declspec(dllexport), and for ARM 
855
 
 *    ABIv2/Symbian, the value is \a EXPORT_C. 
856
 
 *  - For platforms that supports linking with dynamic link libraries,
857
 
 *    it must declare <tt>PJ_IMPORT_SPECIFIER</tt> macro which value contains
858
 
 *    the prefix to be added to symbol declaration, to import this 
859
 
 *    symbol from a DLL/DSO. For example, on Win32/Visual Studio, the
860
 
 *    value of this macro is \a __declspec(dllimport), and for ARM 
861
 
 *    ABIv2/Symbian, the value is \a IMPORT_C. 
862
 
 *  - Both <tt>PJ_EXPORT_SPECIFIER</tt> and <tt>PJ_IMPORT_SPECIFIER</tt> 
863
 
 *    macros above can be declared in your \a config_site.h if they are not
864
 
 *    declared by pjlib.
865
 
 *  - When PJLIB is built as DLL/DSO, both <tt>PJ_DLL</tt> and 
866
 
 *    <tt>PJ_EXPORTING</tt> macros must be declared, so that 
867
 
 *     <tt>PJ_EXPORT_SPECIFIER</tt> modifier will be added into function
868
 
 *    definition.
869
 
 *  - When application wants to link dynamically with PJLIB, then it
870
 
 *    must declare <tt>PJ_DLL</tt> macro when using/including PJLIB header,
871
 
 *    so that <tt>PJ_IMPORT_SPECIFIER</tt> modifier is properly added into 
872
 
 *    symbol declarations.
873
 
 *
874
 
 * When <b>PJ_DLL</b> macro is not declared, static linking is assumed.
875
 
 *
876
 
 * For example, here are some settings to produce DLLs with Visual Studio
877
 
 * on Windows/Win32:
878
 
 *  - Create Visual Studio projects to produce DLL. Add the appropriate 
879
 
 *    project dependencies to avoid link errors.
880
 
 *  - In the projects, declare <tt>PJ_DLL</tt> and <tt>PJ_EXPORTING</tt> 
881
 
 *    macros.
882
 
 *  - Declare these macros in your <tt>config_site.h</tt>:
883
 
 \verbatim
884
 
        #define PJ_EXPORT_SPECIFIER  __declspec(dllexport)
885
 
        #define PJ_IMPORT_SPECIFIER  __declspec(dllimport)
886
 
 \endverbatim
887
 
 *  - And in the application (that links with the DLL) project, add 
888
 
 *    <tt>PJ_DLL</tt> in the macro declarations.
889
 
 */
890
 
 
891
 
/** @} */
892
 
 
893
 
/**
894
 
 * @defgroup pj_config Build Configuration
895
 
 * @{
896
 
 */
897
 
 
898
 
/**
899
 
 * @def PJ_INLINE(type)
900
 
 * @param type The return type of the function.
901
 
 * Expand the function as inline.
902
 
 */
903
 
#define PJ_INLINE(type)   PJ_INLINE_SPECIFIER type
904
 
 
905
 
/**
906
 
 * This macro declares platform/compiler specific specifier prefix
907
 
 * to be added to symbol declaration to export the symbol when PJLIB
908
 
 * is built as dynamic library.
909
 
 *
910
 
 * This macro should have been added by platform specific headers,
911
 
 * if the platform supports building dynamic library target. 
912
 
 */
913
 
#ifndef PJ_EXPORT_DECL_SPECIFIER
914
 
#   define PJ_EXPORT_DECL_SPECIFIER
915
 
#endif
916
 
 
917
 
 
918
 
/**
919
 
 * This macro declares platform/compiler specific specifier prefix
920
 
 * to be added to symbol definition to export the symbol when PJLIB
921
 
 * is built as dynamic library.
922
 
 *
923
 
 * This macro should have been added by platform specific headers,
924
 
 * if the platform supports building dynamic library target. 
925
 
 */
926
 
#ifndef PJ_EXPORT_DEF_SPECIFIER
927
 
#   define PJ_EXPORT_DEF_SPECIFIER
928
 
#endif
929
 
 
930
 
 
931
 
/**
932
 
 * This macro declares platform/compiler specific specifier prefix
933
 
 * to be added to symbol declaration to import the symbol.
934
 
 *
935
 
 * This macro should have been added by platform specific headers,
936
 
 * if the platform supports building dynamic library target.
937
 
 */
938
 
#ifndef PJ_IMPORT_DECL_SPECIFIER
939
 
#   define PJ_IMPORT_DECL_SPECIFIER
940
 
#endif
941
 
 
942
 
 
943
 
/**
944
 
 * This macro has been deprecated. It will evaluate to nothing.
945
 
 */
946
 
#ifndef PJ_EXPORT_SYMBOL
947
 
#   define PJ_EXPORT_SYMBOL(x)
948
 
#endif
949
 
 
950
 
 
951
 
/**
952
 
 * @def PJ_DECL(type)
953
 
 * @param type The return type of the function.
954
 
 * Declare a function.
955
 
 */
956
 
#if defined(PJ_DLL)
957
 
#   if defined(PJ_EXPORTING)
958
 
#       define PJ_DECL(type)        PJ_EXPORT_DECL_SPECIFIER type
959
 
#   else
960
 
#       define PJ_DECL(type)        PJ_IMPORT_DECL_SPECIFIER type
961
 
#   endif
962
 
#elif !defined(PJ_DECL)
963
 
#   if defined(__cplusplus)
964
 
#       define PJ_DECL(type)        type
965
 
#   else
966
 
#       define PJ_DECL(type)        extern type
967
 
#   endif
968
 
#endif
969
 
 
970
 
 
971
 
/**
972
 
 * @def PJ_DEF(type)
973
 
 * @param type The return type of the function.
974
 
 * Define a function.
975
 
 */
976
 
#if defined(PJ_DLL) && defined(PJ_EXPORTING)
977
 
#   define PJ_DEF(type)             PJ_EXPORT_DEF_SPECIFIER type
978
 
#elif !defined(PJ_DEF)
979
 
#   define PJ_DEF(type)             type
980
 
#endif
981
 
 
982
 
 
983
 
/**
984
 
 * @def PJ_DECL_NO_RETURN(type)
985
 
 * @param type The return type of the function.
986
 
 * Declare a function that will not return.
987
 
 */
988
 
/**
989
 
 * @def PJ_IDECL_NO_RETURN(type)
990
 
 * @param type The return type of the function.
991
 
 * Declare an inline function that will not return.
992
 
 */
993
 
/**
994
 
 * @def PJ_BEGIN_DECL
995
 
 * Mark beginning of declaration section in a header file.
996
 
 */
997
 
/**
998
 
 * @def PJ_END_DECL
999
 
 * Mark end of declaration section in a header file.
1000
 
 */
1001
 
#ifdef __cplusplus
1002
 
#  define PJ_DECL_NO_RETURN(type)   PJ_DECL(type) PJ_NORETURN
1003
 
#  define PJ_IDECL_NO_RETURN(type)  PJ_INLINE(type) PJ_NORETURN
1004
 
#  define PJ_BEGIN_DECL             extern "C" {
1005
 
#  define PJ_END_DECL               }
1006
 
#else
1007
 
#  define PJ_DECL_NO_RETURN(type)   PJ_NORETURN PJ_DECL(type)
1008
 
#  define PJ_IDECL_NO_RETURN(type)  PJ_NORETURN PJ_INLINE(type)
1009
 
#  define PJ_BEGIN_DECL
1010
 
#  define PJ_END_DECL
1011
 
#endif
1012
 
 
1013
 
 
1014
 
 
1015
 
/**
1016
 
 * @def PJ_DECL_DATA(type)
1017
 
 * @param type The data type.
1018
 
 * Declare a global data.
1019
 
 */ 
1020
 
#if defined(PJ_DLL)
1021
 
#   if defined(PJ_EXPORTING)
1022
 
#       define PJ_DECL_DATA(type)   PJ_EXPORT_DECL_SPECIFIER extern type
1023
 
#   else
1024
 
#       define PJ_DECL_DATA(type)   PJ_IMPORT_DECL_SPECIFIER extern type
1025
 
#   endif
1026
 
#elif !defined(PJ_DECL_DATA)
1027
 
#   define PJ_DECL_DATA(type)       extern type
1028
 
#endif
1029
 
 
1030
 
 
1031
 
/**
1032
 
 * @def PJ_DEF_DATA(type)
1033
 
 * @param type The data type.
1034
 
 * Define a global data.
1035
 
 */ 
1036
 
#if defined(PJ_DLL) && defined(PJ_EXPORTING)
1037
 
#   define PJ_DEF_DATA(type)        PJ_EXPORT_DEF_SPECIFIER type
1038
 
#elif !defined(PJ_DEF_DATA)
1039
 
#   define PJ_DEF_DATA(type)        type
1040
 
#endif
1041
 
 
1042
 
 
1043
 
/**
1044
 
 * @def PJ_IDECL(type)
1045
 
 * @param type  The function's return type.
1046
 
 * Declare a function that may be expanded as inline.
1047
 
 */
1048
 
/**
1049
 
 * @def PJ_IDEF(type)
1050
 
 * @param type  The function's return type.
1051
 
 * Define a function that may be expanded as inline.
1052
 
 */
1053
 
 
1054
 
#if PJ_FUNCTIONS_ARE_INLINED
1055
 
#  define PJ_IDECL(type)  PJ_INLINE(type)
1056
 
#  define PJ_IDEF(type)   PJ_INLINE(type)
1057
 
#else
1058
 
#  define PJ_IDECL(type)  PJ_DECL(type)
1059
 
#  define PJ_IDEF(type)   PJ_DEF(type)
1060
 
#endif
1061
 
 
1062
 
 
1063
 
/**
1064
 
 * @def PJ_UNUSED_ARG(arg)
1065
 
 * @param arg   The argument name.
1066
 
 * PJ_UNUSED_ARG prevents warning about unused argument in a function.
1067
 
 */
1068
 
#define PJ_UNUSED_ARG(arg)  (void)arg
1069
 
 
1070
 
/**
1071
 
 * @def PJ_TODO(id)
1072
 
 * @param id    Any identifier that will be printed as TODO message.
1073
 
 * PJ_TODO macro will display TODO message as warning during compilation.
1074
 
 * Example: PJ_TODO(CLEAN_UP_ERROR);
1075
 
 */
1076
 
#ifndef PJ_TODO
1077
 
#  define PJ_TODO(id)       TODO___##id:
1078
 
#endif
1079
 
 
1080
 
/**
1081
 
 * Function attributes to inform that the function may throw exception.
1082
 
 *
1083
 
 * @param x     The exception list, enclosed in parenthesis.
1084
 
 */
1085
 
#define __pj_throw__(x)
1086
 
 
1087
 
/** @} */
1088
 
 
1089
 
/********************************************************************
1090
 
 * Sanity Checks
1091
 
 */
1092
 
#ifndef PJ_HAS_HIGH_RES_TIMER
1093
 
#  error "PJ_HAS_HIGH_RES_TIMER is not defined!"
1094
 
#endif
1095
 
 
1096
 
#if !defined(PJ_HAS_PENTIUM)
1097
 
#  error "PJ_HAS_PENTIUM is not defined!"
1098
 
#endif
1099
 
 
1100
 
#if !defined(PJ_IS_LITTLE_ENDIAN)
1101
 
#  error "PJ_IS_LITTLE_ENDIAN is not defined!"
1102
 
#endif
1103
 
 
1104
 
#if !defined(PJ_IS_BIG_ENDIAN)
1105
 
#  error "PJ_IS_BIG_ENDIAN is not defined!"
1106
 
#endif
1107
 
 
1108
 
#if !defined(PJ_EMULATE_RWMUTEX)
1109
 
#  error "PJ_EMULATE_RWMUTEX should be defined in compat/os_xx.h"
1110
 
#endif
1111
 
 
1112
 
#if !defined(PJ_THREAD_SET_STACK_SIZE)
1113
 
#  error "PJ_THREAD_SET_STACK_SIZE should be defined in compat/os_xx.h"
1114
 
#endif
1115
 
 
1116
 
#if !defined(PJ_THREAD_ALLOCATE_STACK)
1117
 
#  error "PJ_THREAD_ALLOCATE_STACK should be defined in compat/os_xx.h"
1118
 
#endif
1119
 
 
1120
 
PJ_BEGIN_DECL
1121
 
 
1122
 
/** PJLIB version major number. */
1123
 
#define PJ_VERSION_NUM_MAJOR    1
1124
 
 
1125
 
/** PJLIB version minor number. */
1126
 
#define PJ_VERSION_NUM_MINOR    10
1127
 
 
1128
 
/** PJLIB version revision number. */
1129
 
#define PJ_VERSION_NUM_REV      0
1130
 
 
1131
 
/**
1132
 
 * Extra suffix for the version (e.g. "-trunk"), or empty for
1133
 
 * web release version.
1134
 
 */
1135
 
#define PJ_VERSION_NUM_EXTRA    ""
1136
 
 
1137
 
/**
1138
 
 * PJLIB version number consists of three bytes with the following format:
1139
 
 * 0xMMIIRR00, where MM: major number, II: minor number, RR: revision
1140
 
 * number, 00: always zero for now.
1141
 
 */
1142
 
#define PJ_VERSION_NUM  ((PJ_VERSION_NUM_MAJOR << 24) | \
1143
 
                         (PJ_VERSION_NUM_MINOR << 16) | \
1144
 
                         (PJ_VERSION_NUM_REV << 8))
1145
 
 
1146
 
/**
1147
 
 * PJLIB version string constant. @see pj_get_version()
1148
 
 */
1149
 
PJ_DECL_DATA(const char*) PJ_VERSION;
1150
 
 
1151
 
/**
1152
 
 * Get PJLIB version string.
1153
 
 *
1154
 
 * @return #PJ_VERSION constant.
1155
 
 */
1156
 
PJ_DECL(const char*) pj_get_version(void);
1157
 
 
1158
 
/**
1159
 
 * Dump configuration to log with verbosity equal to info(3).
1160
 
 */
1161
 
PJ_DECL(void) pj_dump_config(void);
1162
 
 
1163
 
PJ_END_DECL
1164
 
 
1165
 
 
1166
 
#endif  /* __PJ_CONFIG_H__ */
1167