25 #if !defined(WIN32) && !defined(_WIN32_WCE)
31 #include <sys/types.h>
45 #include <sys/types.h>
46 #include <sys/socket.h>
47 #include <netinet/in.h>
48 #if defined(_XOPEN_SOURCE_EXTENDED) || !defined(__hpux)
49 #include <arpa/inet.h>
60 typedef int ortp_socket_t;
61 typedef pthread_t ortp_thread_t;
62 typedef pthread_mutex_t ortp_mutex_t;
63 typedef pthread_cond_t ortp_cond_t;
65 #ifdef __INTEL_COMPILER
66 #pragma warning(disable : 111) // statement is unreachable
67 #pragma warning(disable : 181) // argument is incompatible with corresponding format string conversion
68 #pragma warning(disable : 188) // enumerated type mixed with another type
69 #pragma warning(disable : 593) // variable "xxx" was set but never used
70 #pragma warning(disable : 810) // conversion from "int" to "unsigned short" may lose significant bits
71 #pragma warning(disable : 869) // parameter "xxx" was never referenced
72 #pragma warning(disable : 981) // operands are evaluated in unspecified order
73 #pragma warning(disable : 1418) // external function definition with no prior declaration
74 #pragma warning(disable : 1419) // external declaration in primary source file
75 #pragma warning(disable : 1469) // "cc" clobber ignored
79 #define ORTP_INLINE inline
86 int __ortp_thread_join(ortp_thread_t thread,
void **ptr);
87 int __ortp_thread_create(pthread_t *thread, pthread_attr_t *attr,
void * (*routine)(
void*),
void *arg);
93 #define ortp_thread_create __ortp_thread_create
94 #define ortp_thread_join __ortp_thread_join
95 #define ortp_thread_exit pthread_exit
96 #define ortp_mutex_init pthread_mutex_init
97 #define ortp_mutex_lock pthread_mutex_lock
98 #define ortp_mutex_unlock pthread_mutex_unlock
99 #define ortp_mutex_destroy pthread_mutex_destroy
100 #define ortp_cond_init pthread_cond_init
101 #define ortp_cond_signal pthread_cond_signal
102 #define ortp_cond_broadcast pthread_cond_broadcast
103 #define ortp_cond_wait pthread_cond_wait
104 #define ortp_cond_destroy pthread_cond_destroy
106 #define SOCKET_OPTION_VALUE void *
107 #define SOCKET_BUFFER void *
109 #define getSocketError() strerror(errno)
110 #define getSocketErrorCode() (errno)
112 #define ortp_log10f(x) log10f(x)
123 #include <winsock2.h>
124 #include <ws2tcpip.h>
128 #define ORTP_PUBLIC __declspec(dllexport)
130 #define ORTP_PUBLIC __declspec(dllimport)
132 #pragma push_macro("_WINSOCKAPI_")
137 #define strtok_r strtok_s
139 typedef unsigned __int64 uint64_t;
140 typedef __int64 int64_t;
141 typedef unsigned short uint16_t;
142 typedef unsigned int uint32_t;
144 typedef unsigned char uint8_t;
145 typedef __int16 int16_t;
150 ORTP_PUBLIC
char* strtok_r(
char *str,
const char *delim,
char **nextp);
153 #define vsnprintf _vsnprintf
154 #define srandom srand
157 typedef SOCKET ortp_socket_t;
158 #ifdef WINAPI_FAMILY_PHONE_APP
159 typedef CONDITION_VARIABLE ortp_cond_t;
160 typedef SRWLOCK ortp_mutex_t;
162 typedef HANDLE ortp_cond_t;
163 typedef HANDLE ortp_mutex_t;
165 typedef HANDLE ortp_thread_t;
167 #define ortp_thread_create WIN_thread_create
168 #define ortp_thread_join WIN_thread_join
169 #define ortp_thread_exit(arg)
170 #define ortp_mutex_init WIN_mutex_init
171 #define ortp_mutex_lock WIN_mutex_lock
172 #define ortp_mutex_unlock WIN_mutex_unlock
173 #define ortp_mutex_destroy WIN_mutex_destroy
174 #define ortp_cond_init WIN_cond_init
175 #define ortp_cond_signal WIN_cond_signal
176 #define ortp_cond_broadcast WIN_cond_broadcast
177 #define ortp_cond_wait WIN_cond_wait
178 #define ortp_cond_destroy WIN_cond_destroy
186 ORTP_PUBLIC
int WIN_mutex_init(ortp_mutex_t *m,
void *attr_unused);
187 ORTP_PUBLIC
int WIN_mutex_lock(ortp_mutex_t *mutex);
188 ORTP_PUBLIC
int WIN_mutex_unlock(ortp_mutex_t *mutex);
189 ORTP_PUBLIC
int WIN_mutex_destroy(ortp_mutex_t *mutex);
190 ORTP_PUBLIC
int WIN_thread_create(ortp_thread_t *t,
void *attr_unused,
void *(*func)(
void*),
void *arg);
191 ORTP_PUBLIC
int WIN_thread_join(ortp_thread_t thread,
void **unused);
192 ORTP_PUBLIC
int WIN_cond_init(ortp_cond_t *cond,
void *attr_unused);
193 ORTP_PUBLIC
int WIN_cond_wait(ortp_cond_t * cond, ortp_mutex_t * mutex);
194 ORTP_PUBLIC
int WIN_cond_signal(ortp_cond_t * cond);
195 ORTP_PUBLIC
int WIN_cond_broadcast(ortp_cond_t * cond);
196 ORTP_PUBLIC
int WIN_cond_destroy(ortp_cond_t * cond);
202 #define SOCKET_OPTION_VALUE char *
203 #define ORTP_INLINE __inline
205 #if defined(_WIN32_WCE)
207 #define ortp_log10f(x) (float)log10 ((double)x)
212 #define assert(exp) ((void)0)
217 #define errno GetLastError()
221 const char * ortp_strerror(DWORD value);
222 #define strerror ortp_strerror
227 #define ortp_log10f(x) log10f(x)
231 ORTP_PUBLIC
const char *getWinSocketError(
int error);
232 #define getSocketErrorCode() WSAGetLastError()
233 #define getSocketError() getWinSocketError(WSAGetLastError())
235 #define snprintf _snprintf
236 #define strcasecmp _stricmp
237 #define strncasecmp _strnicmp
243 ORTP_PUBLIC
int gettimeofday (
struct timeval *tv,
void* tz);
244 #ifdef _WORKAROUND_MINGW32_BUGS
245 char * WSAAPI gai_strerror(
int errnum);
253 typedef unsigned char bool_t;
268 ORTP_PUBLIC
void* ortp_malloc(
size_t sz);
269 ORTP_PUBLIC
void ortp_free(
void *ptr);
270 ORTP_PUBLIC
void* ortp_realloc(
void *ptr,
size_t sz);
271 ORTP_PUBLIC
void* ortp_malloc0(
size_t sz);
272 ORTP_PUBLIC
char * ortp_strdup(
const char *tmp);
276 void *(*malloc_fun)(
size_t sz);
277 void *(*realloc_fun)(
void *ptr,
size_t sz);
278 void (*free_fun)(
void *ptr);
283 #define ortp_new(type,count) (type*)ortp_malloc(sizeof(type)*(count))
284 #define ortp_new0(type,count) (type*)ortp_malloc0(sizeof(type)*(count))
286 ORTP_PUBLIC
int close_socket(ortp_socket_t sock);
287 ORTP_PUBLIC
int set_non_blocking_socket(ortp_socket_t sock);
289 ORTP_PUBLIC
char *ortp_strndup(
const char *str,
int n);
290 ORTP_PUBLIC
char *ortp_strdup_printf(
const char *fmt,...);
291 ORTP_PUBLIC
char *ortp_strdup_vprintf(
const char *fmt, va_list ap);
293 ORTP_PUBLIC
int ortp_file_exist(
const char *pathname);
298 #if !defined(_WIN32_WCE)
300 typedef HANDLE ortp_pipe_t;
301 #define ORTP_PIPE_INVALID INVALID_HANDLE_VALUE
303 typedef int ortp_pipe_t;
304 #define ORTP_PIPE_INVALID (-1)
307 ORTP_PUBLIC ortp_pipe_t ortp_server_pipe_create(
const char *name);
313 ORTP_PUBLIC ortp_pipe_t ortp_server_pipe_accept_client(ortp_pipe_t server);
314 ORTP_PUBLIC
int ortp_server_pipe_close(ortp_pipe_t spipe);
315 ORTP_PUBLIC
int ortp_server_pipe_close_client(ortp_pipe_t client);
317 ORTP_PUBLIC ortp_pipe_t ortp_client_pipe_connect(
const char *name);
318 ORTP_PUBLIC
int ortp_client_pipe_close(ortp_pipe_t sock);
320 ORTP_PUBLIC
int ortp_pipe_read(ortp_pipe_t p, uint8_t *buf,
int len);
321 ORTP_PUBLIC
int ortp_pipe_write(ortp_pipe_t p,
const uint8_t *buf,
int len);
323 ORTP_PUBLIC
void *ortp_shm_open(
unsigned int keyid,
int size,
int create);
324 ORTP_PUBLIC
void ortp_shm_close(
void *memory);
334 #if (defined(WIN32) || defined(_WIN32_WCE)) && !defined(ORTP_STATIC)
336 #define ORTP_VAR_PUBLIC extern __declspec(dllexport)
338 #define ORTP_VAR_PUBLIC __declspec(dllimport)
341 #define ORTP_VAR_PUBLIC extern
348 #if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE==1