summaryrefslogtreecommitdiff
path: root/ACE/ace/config-WinCE.h
blob: 584dc2f762bfed4eb50cd09d35bef64804f08a98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
// Note: For WinCE build, simply use: #include "ace/config-win32.h"
//       It is same as config.h for Windows NT/2k so that you can
//       share same files and directories for both WinCE and NT/2k
//       builds, unless you add additional definition(s) for each
//       specific build or change the output directory.

#ifndef ACE_CONFIG_WINCE_H
#define ACE_CONFIG_WINCE_H

#include /**/ "ace/pre.h"

#ifndef ACE_CONFIG_WIN32_H
# error Use config-win32.h in config.h instead of this header
#endif  // ACE_CONFIG_WIN32_H

#if !defined (_WIN32_WCE)
# error Define _WIN32_WCE to version (i.e. 500 = 5.0)
#endif  // _WIN32_WCE

#if (_WIN32_WCE < 500)
# error ACE requires Windows CE 5.0 and later.
#endif  // _WIN32_WCE

#if !defined (ACE_HAS_WINCE)
# define ACE_HAS_WINCE 1
#endif

// We need these libraries to build:
#if defined (_MSC_VER)
#  pragma comment(lib,"corelibc.lib")
#  pragma comment(linker, "/nodefaultlib:oldnames.lib")
#endif

// Only DLL version is supported on CE.
//#if defined (ACE_HAS_DLL)
//# undef ACE_HAS_DLL
//#endif  // ACE_HAS_DLL
//#define ACE_HAS_DLL 1

// Need to define LD search path explicitly on CE because
// CE doesn't have environment variables and we can't get
// the information using getenv.
#define ACE_DEFAULT_LD_SEARCH_PATH ACE_TEXT (".\\;\\windows")

#define ACE_LACKS_ABORT
#define ACE_LACKS_FCNTL_H
#define ACE_LACKS_SYS_TYPES_H
#define ACE_LACKS_GETCWD
#define ACE_LACKS_ASCTIME
#define ACE_LACKS_ASCTIME_R
#define ACE_LACKS_GMTIME
#define ACE_LACKS_GMTIME_R
#define ACE_LACKS_LOCALTIME
#define ACE_LACKS_STRTOK_R
#define ACE_LACKS_PERROR
#define ACE_LACKS_STRFTIME
#define ACE_LACKS_WIN32_SETFILEPOINTEREX
#define ACE_LACKS_WIN32_SERVICES
#define ACE_LACKS_WIN32_SECURITY_DESCRIPTORS
#define ACE_LACKS_GETPROCESSTIMES
#define ACE_LACKS_PDH_H
#define ACE_LACKS_PDHMSG_H
#define ACE_LACKS_TIME
#define ACE_LACKS_TZSET
#define ACE_LACKS_RAISE
#define ACE_LACKS_BSEARCH

#define ACE_LACKS_MSG_WFMO
#define ACE_LACKS_UMASK
#define ACE_HAS_TYPES_H
#define ACE_LACKS_DEV_T

#define ACE_ISCTYPE_EQUIVALENT ::_isctype

// WinCE only supports the UNICODE API
#if !defined (ACE_USES_WCHAR)
# define ACE_USES_WCHAR
#endif /* ACE_USES_WCHAR */

#if (_WIN32_WCE < 0x600)
# define ACE_USES_WINCE_SEMA_SIMULATION
# define ACE_LACKS_ERRNO_H
# define ACE_LACKS_DUP
# define ACE_LACKS_GETSYSTEMTIMEASFILETIME
#endif /*  (_WIN32_WCE < 0x600) */

#define ACE_LACKS_REGNOTIFYCHANGEKEYVALUE

#define ACE_HAS_NONSTATIC_OBJECT_MANAGER 1

#if ! defined(ACE_DEFAULT_THREAD_KEYS)
# define ACE_DEFAULT_THREAD_KEYS TLS_MINIMUM_AVAILABLE
#endif // ! defined(ACE_DEFAULT_THREAD_KEYS)

// FILE stuff isn't always defined in CE
#if !defined (_FILE_DEFINED)
  typedef void FILE;
# define _FILE_DEFINED
#endif  /* !_FILE_DEFINED */

// This was defined in previous versions of CE, but not 2.11
#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION

#define ACE_MAIN WINAPI WinMain

// SH3 cross-compiler can't handle inline functions correctly
// (along with other bugs.)
#if defined (SH3)
# define ACE_LACKS_INLINE_FUNCTIONS
#endif  // SH3 && _DEBUG

#ifndef ACE_DEFAULT_SERVER_HOST
# define ACE_DEFAULT_SERVER_HOST ACE_TEXT("localhost")
#endif  // ACE_DEFAULT_SERVER_HOST

// @@ Need to remap every function that uses any of these flags to
//    Win32 API.  These are for ANSI styled function and are not
//    available on WinCE.

#define _O_RDONLY       0x0000  // open for reading only
#define _O_WRONLY       0x0001  // open for writing only
#define _O_RDWR         0x0002  // open for reading and writing
#define _O_APPEND       0x0008  // writes done at eof

#define _O_CREAT        0x0100  // create and open file
#define _O_TRUNC        0x0200  // open and truncate
#define _O_EXCL         0x0400  // open only if file doesn't already exist

// O_TEXT files have <cr><lf> sequences translated to <lf> on read()'s,
// and <lf> sequences translated to <cr><lf> on write()'s
#define _O_TEXT         0x4000  // file mode is text (translated)
#define _O_BINARY       0x8000  // file mode is binary (untranslated)

// Temporary file bit - file is deleted when last handle is closed
#define _O_TEMPORARY    0x0040  // temporary file bit

// Non-ANSI names
#define O_RDONLY        _O_RDONLY
#define O_WRONLY        _O_WRONLY
#define O_RDWR          _O_RDWR
#define O_APPEND        _O_APPEND
#define O_CREAT         _O_CREAT
#define O_TRUNC         _O_TRUNC
#define O_EXCL          _O_EXCL
#define O_TEXT          _O_TEXT
#define O_BINARY        _O_BINARY
#define O_TEMPORARY     _O_TEMPORARY

// @@ NSIG value.  This is definitely not correct.
#define NSIG 23

#if !defined (FILE_MAP_COPY)
#define FILE_MAP_COPY 0
#endif

#define ACE_HAS_INTERLOCKED_EXCHANGEADD
#define ACE_LACKS_ACCESS
#define ACE_LACKS__WACCESS
#define ACE_HAS_ACCESS_EMULATION
#define ACE_LACKS_EXEC
#define ACE_LACKS_MKTEMP
#define ACE_LACKS_ISATTY
#define ACE_LACKS_STRERROR
#define ACE_LACKS_SYSTEM
#define ACE_LACKS_PIPE

#define ACE_LACKS_CHDIR
#define ACE_LACKS_GETENV
#define ACE_LACKS_SETENV
#define ACE_LACKS_UNSETENV
#define ACE_LACKS_PUTENV
#define ACE_LACKS_GETENVSTRINGS
#define ACE_LACKS_STRENVDUP
#define ACE_LACKS_REALPATH
#define ACE_LACKS_SWAB
#define ACE_LACKS_TEMPNAM

#if defined (_WIN32_WCE_EMULATION)
// @@ For some reason, qsort isn't defined correctly (_stdcall vs _cdecl)
// under emulation.  So for right now, exclude it.
# define ACE_LACKS_QSORT
#endif  // _WIN32_WCE_EMULATION

#if !defined (BUFSIZ)
# define BUFSIZ 1024
#endif

#define ACE_LACKS_MALLOC_H      // We do have malloc.h, but don't use it.

#define ACE_HAS_WINCE_BROKEN_ERRNO

#define ACE_HAS_STRDUP_EMULATION

#if !defined (MAXSYMLINKS)
# define MAXSYMLINKS 0
#endif

// WinCE can't do fixed addresses for memory-mapped files.
#if defined (ACE_DEFAULT_BASE_ADDR)
# undef ACE_DEFAULT_BASE_ADDR
#endif
#define ACE_DEFAULT_BASE_ADDR 0

#if (_WIN32_WCE < 0x600)
# define ACE_HAS_TSS_EMULATION
#endif  // WinCE version < 6.0

// CE doesn't support FILE_SHARE_DELETE like regular windows
#if !defined (ACE_DEFAULT_FILE_PERMS)
# define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE)
#endif

#define ACE_LACKS_SIGNAL_H
#define ACE_LACKS_SYS_STAT_H

#include /**/ "ace/post.h"

#endif  // ACE_CONFIG_WINCE_H