~ubuntu-branches/ubuntu/maverick/dbus/maverick-security

« back to all changes in this revision

Viewing changes to dbus/dbus-sysdeps-wince-glue.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2010-09-27 13:06:32 UTC
  • mfrom: (1.1.23 upstream)
  • Revision ID: james.westby@ubuntu.com-20100927130632-bqs145trvchd2lmf
Tags: 1.4.0-0ubuntu1
* New upstream release
 - Fixes https://bugs.freedesktop.org/show_bug.cgi?id=17754 Race condition in protected_change_timeout
 - Requested by various upstream KDE developers http://lists.kde.org/?t=128514970000004&r=1&w=2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 
2
/* dbus-sysdeps-wince-glue.h Emulation of system/libc features for Windows CE (internal to D-Bus implementation)
 
3
 * 
 
4
 * Copyright (C) 2002, 2003  Red Hat, Inc.
 
5
 * Copyright (C) 2003 CodeFactory AB
 
6
 *
 
7
 * Licensed under the Academic Free License version 2.1
 
8
 * 
 
9
 * This program is free software; you can redistribute it and/or modify
 
10
 * it under the terms of the GNU General Public License as published by
 
11
 * the Free Software Foundation; either version 2 of the License, or
 
12
 * (at your option) any later version.
 
13
 *
 
14
 * This program is distributed in the hope that it will be useful,
 
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
17
 * GNU General Public License for more details.
 
18
 * 
 
19
 * You should have received a copy of the GNU General Public License
 
20
 * along with this program; if not, write to the Free Software
 
21
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
22
 *
 
23
 */
 
24
 
 
25
#ifndef DBUS_SYSDEPS_WINCE_GLUE_H
 
26
#define DBUS_SYSDEPS_WINCE_GLUE_H
 
27
 
 
28
#include <time.h>
 
29
#include <stdarg.h>
 
30
 
 
31
/* For getaddrinfo, configure/cmake defined _WIN32_WCE to something >= 0x0401.  */
 
32
#include <windows.h>
 
33
#undef interface
 
34
 
 
35
DBUS_BEGIN_DECLS
 
36
 
 
37
/* shlobj.h declares these only for _WIN32_IE that we don't want to define.
 
38
   In any case, with mingw32ce we only get a SHGetSpecialFolderPath.  */
 
39
#define SHGetSpecialFolderPathW SHGetSpecialFolderPath
 
40
BOOL WINAPI SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL);
 
41
BOOL WINAPI SHGetSpecialFolderPathW(HWND,LPWSTR,int,BOOL);
 
42
 
 
43
#ifndef TLS_OUT_OF_INDEXES
 
44
#define TLS_OUT_OF_INDEXES 0xffffffff
 
45
#endif
 
46
 
 
47
 
 
48
/* Seriously.  Windows CE does not have errno.  Don't you hate it when
 
49
   that happens?  */
 
50
#define errno ((int)GetLastError ())
 
51
 
 
52
#define ENOENT          ERROR_FILE_NOT_FOUND
 
53
#define EMFILE          ERROR_TOO_MANY_OPEN_FILES
 
54
#define EACCES          ERROR_ACCESS_DENIED
 
55
#define EBADF           ERROR_INVALID_HANDLE
 
56
#define ENOMEM          ERROR_NOT_ENOUGH_MEMORY
 
57
#define EXDEV           ERROR_NOT_SAME_DEVICE
 
58
#define ENFILE          ERROR_NO_MORE_FILES
 
59
#define EROFS           ERROR_WRITE_PROTECT
 
60
#define ENOLCK          ERROR_SHARING_BUFFER_EXCEEDED
 
61
#define ENOSYS          ERROR_NOT_SUPPORTED
 
62
#define EEXIST          ERROR_FILE_EXISTS
 
63
#define EPERM           ERROR_CANNOT_MAKE
 
64
#define EINVAL          ERROR_INVALID_PARAMETER
 
65
#define EINTR           ERROR_INVALID_AT_INTERRUPT_TIME
 
66
#define EPIPE           ERROR_BROKEN_PIPE
 
67
#define ENOSPC          ERROR_DISK_FULL
 
68
#define ENOTEMPTY       ERROR_DIR_NOT_EMPTY
 
69
#define EBUSY           ERROR_BUSY
 
70
#define ENAMETOOLONG    ERROR_FILENAME_EXCED_RANGE
 
71
#define EAGAIN          ERROR_MORE_DATA
 
72
#define ENOTDIR         ERROR_DIRECTORY
 
73
#define ERANGE          ERROR_ARITHMETIC_OVERFLOW
 
74
#define ENXIO           ERROR_FILE_INVALID
 
75
#define EFAULT          ERROR_PROCESS_ABORTED
 
76
#define EIO             ERROR_IO_DEVICE
 
77
#define EDEADLOCK       ERROR_POSSIBLE_DEADLOCK
 
78
#define ENODEV          ERROR_BAD_DEVICE
 
79
 
 
80
/* Windows CE is missing more stuff that is pretty standard.  */
 
81
 
 
82
#define strdup _strdup
 
83
#define stricmp _stricmp
 
84
#define strnicmp _strnicmp
 
85
 
 
86
#define environ _dbus_wince_environ
 
87
extern char *environ[];
 
88
 
 
89
#define getenv _dbus_wince_getenv
 
90
char *getenv (const char *name);
 
91
 
 
92
#define putenv _dbus_wince_putenv
 
93
int putenv (char *str);
 
94
 
 
95
#define clock _dbus_wince_clock
 
96
clock_t clock (void);
 
97
 
 
98
#define abort _dbus_wince_abort
 
99
void abort (void);
 
100
 
 
101
#define _S_IFMT         0170000         /* file type mask */
 
102
#define _S_IFDIR        0040000         /* directory */
 
103
#define _S_IFCHR        0020000         /* character special */
 
104
#define _S_IFIFO        0010000         /* pipe */
 
105
#define _S_IFREG        0100000         /* regular */
 
106
#define _S_IREAD        0000400         /* read permission, owner */
 
107
#define _S_IWRITE       0000200         /* write permission, owner */
 
108
#define _S_IEXEC        0000100         /* execute/search permission, owner */
 
109
 
 
110
#ifndef __OFF_T_DEFINED
 
111
typedef long off_t;
 
112
#define __OFF_T_DEFINED
 
113
#endif
 
114
#ifndef _INTPTR_T_DEFINED
 
115
typedef int intptr_t;
 
116
#define _INTPTR_T_DEFINED
 
117
#endif
 
118
#ifndef _UINTPTR_T_DEFINED
 
119
typedef unsigned int uintptr_t;
 
120
#define _UINTPTR_T_DEFINED
 
121
#endif
 
122
 
 
123
#ifndef _MAX_FNAME
 
124
#define _MAX_FNAME 256
 
125
#endif
 
126
 
 
127
#ifndef _IOFBF
 
128
#define _IOFBF  0
 
129
#endif
 
130
#ifndef _IOLBF
 
131
#define _IOLBF  1
 
132
#endif
 
133
#ifndef _IONBF
 
134
#define _IONBF  2
 
135
#endif
 
136
 
 
137
 
 
138
/* Windows CE is missing some Windows functions that we want.  */
 
139
 
 
140
#define GetSystemTimeAsFileTime _dbus_wince_GetSystemTimeAsFileTime
 
141
void GetSystemTimeAsFileTime (LPFILETIME ftp);
 
142
 
 
143
#define _mbsrchr _dbus_wince_mbsrchr
 
144
unsigned char* _mbsrchr (const unsigned char*, unsigned int);
 
145
 
 
146
#define OpenFileMappingA _dbus_wince_OpenFileMappingA
 
147
HANDLE OpenFileMappingA(DWORD,BOOL,LPCSTR);
 
148
 
 
149
#define MoveFileExA _dbus_wince_MoveFileExA
 
150
BOOL MoveFileExA(LPCSTR,LPCSTR,DWORD);
 
151
#ifndef MOVEFILE_REPLACE_EXISTING
 
152
#define MOVEFILE_REPLACE_EXISTING 0x00000001
 
153
#endif
 
154
 
 
155
#define SetHandleInformation _dbus_wince_SetHandleInformation
 
156
BOOL SetHandleInformation(HANDLE,DWORD,DWORD);
 
157
#ifndef HANDLE_FLAG_INHERIT
 
158
#define HANDLE_FLAG_INHERIT 0x01
 
159
#endif
 
160
#ifndef HANDLE_FLAG_PROTECT
 
161
#define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x02
 
162
#endif
 
163
 
 
164
#define SearchPathA _dbus_wince_SearchPathA
 
165
DWORD SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
 
166
 
 
167
/* Instead of emulating all functions needed for this, we replace the
 
168
   whole thing.  */
 
169
dbus_bool_t _dbus_getsid(char **sid);
 
170
 
 
171
 
 
172
#define LookupAccountNameW _dbus_wince_LookupAccountNameW
 
173
BOOL LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE);
 
174
 
 
175
#define IsValidSid _dbus_wince_IsValidSid
 
176
BOOL IsValidSid(PSID);
 
177
 
 
178
 
 
179
/* Windows CE does only have the UNICODE interfaces (FooW), but we
 
180
   want to use the ASCII interfaces (FooA).  We implement them
 
181
   here.  */
 
182
 
 
183
#define CreateFileA _dbus_wince_CreateFileA
 
184
HANDLE CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE);
 
185
 
 
186
#define DeleteFileA _dbus_wince_DeleteFileA
 
187
BOOL DeleteFileA(LPCSTR);
 
188
 
 
189
#define GetFileAttributesA _dbus_wince_GetFileAttributesA
 
190
DWORD GetFileAttributesA(LPCSTR);
 
191
 
 
192
#define GetFileAttributesExA _dbus_wince_GetFileAttributesExA
 
193
BOOL GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,PVOID);
 
194
 
 
195
#define CreateFileMappingA _dbus_wince_CreateFileMappingA
 
196
HANDLE CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR);
 
197
 
 
198
#define CreateDirectoryA _dbus_wince_CreateDirectoryA
 
199
BOOL CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
 
200
 
 
201
#define RemoveDirectoryA _dbus_wince_RemoveDirectoryA
 
202
BOOL RemoveDirectoryA(LPCSTR);
 
203
 
 
204
#define FindFirstFileA _dbus_wince_FindFirstFileA
 
205
HANDLE FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
 
206
 
 
207
#define FindNextFileA _dbus_wince_FindNextFileA
 
208
BOOL FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
 
209
 
 
210
#define CreateMutexA _dbus_wince_CreateMutexA
 
211
HANDLE CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
 
212
 
 
213
#define CreateProcessA _dbus_wince_CreateProcessA
 
214
BOOL CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
 
215
#ifndef CREATE_NO_WINDOW
 
216
#define CREATE_NO_WINDOW 0x08000000
 
217
#endif
 
218
 
 
219
 
 
220
#define RegOpenKeyExA _dbus_wince_RegOpenKeyExA
 
221
LONG RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY);
 
222
 
 
223
#define RegQueryValueExA _dbus_wince_RegQueryValueExA
 
224
LONG WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
 
225
 
 
226
 
 
227
#define FormatMessageA _dbus_wince_FormatMessageA
 
228
DWORD FormatMessageA(DWORD,PCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
 
229
 
 
230
#define GetModuleFileNameA _dbus_wince_GetModuleFileNameA
 
231
DWORD GetModuleFileNameA(HINSTANCE,LPSTR,DWORD);
 
232
 
 
233
#define GetTempPathA _dbus_wince_GetTempPathA
 
234
DWORD GetTempPathA(DWORD,LPSTR);
 
235
 
 
236
#define SHGetSpecialFolderPathA _dbus_wince_SHGetSpecialFolderPathA
 
237
BOOL SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL);
 
238
 
 
239
 
 
240
#define OutputDebugStringA _dbus_wince_OutputDebugStringA
 
241
void OutputDebugStringA(LPCSTR);
 
242
 
 
243
 
 
244
DBUS_END_DECLS
 
245
 
 
246
#endif /* DBUS_SYSDEPS_WINCE_GLUE_H */