1 /* $Id$ */
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_COMPAT_OS_WIN32_WINCE_H__
21 #define __PJ_COMPAT_OS_WIN32_WINCE_H__
22 
23 /**
24  * @file os_win32.h
25  * @brief Describes Win32 operating system family specifics.
26  */
27 
28 #define PJ_OS_NAME		    "win32-wince"
29 
30 #define WIN32_LEAN_AND_MEAN
31 #define RPC_NO_WINDOWS_H
32 //#define PJ_WIN32_WINNT		    0x0400
33 //#define _WIN32_WINNT		    PJ_WIN32_WINNT
34 
35 #define PJ_HAS_ARPA_INET_H	    0
36 #define PJ_HAS_ASSERT_H		    1
37 #define PJ_HAS_CTYPE_H		    1
38 #define PJ_HAS_ERRNO_H		    0   /* Must be zero, otherwise errno_test() fails. */
39 #define PJ_HAS_LINUX_SOCKET_H	    0
40 #define PJ_HAS_MALLOC_H		    1
41 #define PJ_HAS_NETDB_H		    0
42 #define PJ_HAS_NETINET_IN_H	    0
43 #define PJ_HAS_NETINET_TCP_H	    0
44 #define PJ_HAS_SETJMP_H		    1
45 #define PJ_HAS_STDARG_H		    1
46 #define PJ_HAS_STDDEF_H		    1
47 #define PJ_HAS_STDIO_H		    1
48 #define PJ_HAS_STDLIB_H		    1
49 #define PJ_HAS_STRING_H		    1
50 #define PJ_HAS_SYS_IOCTL_H	    0
51 #define PJ_HAS_SYS_SELECT_H	    0
52 #define PJ_HAS_SYS_SOCKET_H	    0
53 #define PJ_HAS_SYS_TIME_H	    0
54 #define PJ_HAS_SYS_TIMEB_H	    0	/* Doesn't have sys/timeb.h */
55 #define PJ_HAS_SYS_TYPES_H	    0	/* Doesn't have sys/types.h */
56 #define PJ_HAS_TIME_H		    1
57 #define PJ_HAS_UNISTD_H		    0
58 
59 #define PJ_HAS_MSWSOCK_H	    1
60 #define PJ_HAS_WINSOCK_H	    0
61 #define PJ_HAS_WINSOCK2_H	    1
62 
63 #define PJ_SOCK_HAS_INET_ATON	    0
64 
65 /* Set 1 if native sockaddr_in has sin_len member.
66  * Default: 0
67  */
68 #define PJ_SOCKADDR_HAS_LEN	    0
69 
70 /* Is errno a good way to retrieve OS errors? (no)
71  */
72 #define PJ_HAS_ERRNO_VAR	    0
73 
74 /* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
75  * the status of non-blocking connect() operation.
76  */
77 #define PJ_HAS_SO_ERROR             0
78 
79 /* This value specifies the value set in errno by the OS when a non-blocking
80  * socket recv() or send() can not return immediately.
81  */
82 #define PJ_BLOCKING_ERROR_VAL       WSAEWOULDBLOCK
83 
84 /* This value specifies the value set in errno by the OS when a non-blocking
85  * socket connect() can not get connected immediately.
86  */
87 #define PJ_BLOCKING_CONNECT_ERROR_VAL   WSAEWOULDBLOCK
88 
89 /**
90  * If this macro is set, it tells select I/O Queue that select() needs to
91  * be given correct value of nfds (i.e. largest fd + 1). This requires
92  * select ioqueue to re-scan the descriptors on each registration and
93  * unregistration.
94  * If this macro is not set, then ioqueue will always give FD_SETSIZE for
95  * nfds argument when calling select().
96  *
97  * Default: 0
98  */
99 #define PJ_SELECT_NEEDS_NFDS	    0
100 
101 /* Endianness */
102 #ifndef PJ_IS_LITTLE_ENDIAN
103 #   define PJ_IS_LITTLE_ENDIAN	1
104 #   define PJ_IS_BIG_ENDIAN	0
105 #endif
106 
107 /* Default threading is enabled, unless it's overridden. */
108 #ifndef PJ_HAS_THREADS
109 #  define PJ_HAS_THREADS	    (1)
110 #endif
111 
112 #define PJ_HAS_HIGH_RES_TIMER	    1
113 #define PJ_HAS_MALLOC               1
114 #define PJ_OS_HAS_CHECK_STACK	    1
115 
116 #define PJ_ATOMIC_VALUE_TYPE	    long
117 
118 /* TlsAlloc() error value. */
119 #define TLS_OUT_OF_INDEXES	    0xFFFFFFFF
120 
121 /* No console. */
122 #define PJ_TERM_HAS_COLOR	    0
123 
124 /* No rdtsc */
125 #define PJ_TIMESTAMP_USE_RDTSC	    0
126 
127 /* Native string is Unicode. */
128 #define PJ_NATIVE_STRING_IS_UNICODE 1
129 
130 /* If 1, use Read/Write mutex emulation for platforms that don't support it */
131 #define PJ_EMULATE_RWMUTEX	    1
132 
133 /* If 1, pj_thread_create() should enforce the stack size when creating
134  * threads.
135  * Default: 0 (let OS decide the thread's stack size).
136  */
137 #define PJ_THREAD_SET_STACK_SIZE    	0
138 
139 /* If 1, pj_thread_create() should allocate stack from the pool supplied.
140  * Default: 0 (let OS allocate memory for thread's stack).
141  */
142 #define PJ_THREAD_ALLOCATE_STACK    	0
143 
144 
145 #endif	/* __PJ_COMPAT_OS_WIN32_WINCE_H__ */
146 
147