summaryrefslogtreecommitdiff
path: root/pr/include/md/_os2.h
diff options
context:
space:
mode:
Diffstat (limited to 'pr/include/md/_os2.h')
-rw-r--r--pr/include/md/_os2.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/pr/include/md/_os2.h b/pr/include/md/_os2.h
index 70e8d112..0ecad55f 100644
--- a/pr/include/md/_os2.h
+++ b/pr/include/md/_os2.h
@@ -55,7 +55,7 @@
#define HAVE_DLL
#undef HAVE_THREAD_AFFINITY
-#undef _PR_HAVE_ATOMIC_OPS
+#define _PR_HAVE_ATOMIC_OPS
#define HANDLE unsigned long
#define HINSTANCE HMODULE
@@ -251,15 +251,22 @@ extern PRInt32 _MD_CloseSocket(PRInt32 osfd);
#define _MD_GETPEERNAME (_PR_MD_GETPEERNAME)
#define _MD_GETSOCKOPT (_PR_MD_GETSOCKOPT)
#define _MD_SETSOCKOPT (_PR_MD_SETSOCKOPT)
+
+#ifdef XP_OS2_EMX
+extern PRInt32 _MD_SELECT(int nfds, fd_set *readfds, fd_set *writefds,
+ fd_set *exceptfds, struct timeval *timeout);
+#else
#define _MD_SELECT select
+#endif
+
#define _MD_FSYNC _PR_MD_FSYNC
#define _MD_SET_FD_INHERITABLE (_PR_MD_SET_FD_INHERITABLE)
-#define _MD_INIT_ATOMIC _PR_MD_INIT_ATOMIC
-#define _MD_ATOMIC_INCREMENT(x) _PR_MD_ATOMIC_INCREMENT(x)
-#define _MD_ATOMIC_ADD(x,y) _PR_MD_ATOMIC_ADD(x,y)
-#define _MD_ATOMIC_DECREMENT(x) _PR_MD_ATOMIC_DECREMENT(x)
-#define _MD_ATOMIC_SET(x,y) _PR_MD_ATOMIC_SET(x, y)
+#define _MD_INIT_ATOMIC()
+#define _MD_ATOMIC_INCREMENT _PR_MD_ATOMIC_INCREMENT
+#define _MD_ATOMIC_ADD _PR_MD_ATOMIC_ADD
+#define _MD_ATOMIC_DECREMENT _PR_MD_ATOMIC_DECREMENT
+#define _MD_ATOMIC_SET _PR_MD_ATOMIC_SET
#define _MD_INIT_IO (_PR_MD_INIT_IO)
#define _MD_PR_POLL (_PR_MD_PR_POLL)
@@ -325,10 +332,10 @@ extern PRInt32 _MD_Accept(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen,
#define _PR_LOCK _MD_LOCK
#define _PR_UNLOCK _MD_UNLOCK
-#define _MD_NEW_LOCK(lock) (DosCreateMutexSem(0, &((lock)->mutex), 0, 0),(lock)->notified.length=0,(lock)->notified.link=NULL,PR_SUCCESS)
-#define _MD_FREE_LOCK(lock) DosCloseMutexSem(((lock)->mutex))
-#define _MD_LOCK(lock) DosRequestMutexSem(((lock)->mutex), SEM_INDEFINITE_WAIT)
-#define _MD_TEST_AND_LOCK(lock) (DosRequestMutexSem(((lock)->mutex), SEM_INDEFINITE_WAIT),PR_SUCCESS)
+#define _MD_NEW_LOCK (_PR_MD_NEW_LOCK)
+#define _MD_FREE_LOCK (_PR_MD_FREE_LOCK)
+#define _MD_LOCK (_PR_MD_LOCK)
+#define _MD_TEST_AND_LOCK (_PR_MD_TEST_AND_LOCK)
#define _MD_UNLOCK (_PR_MD_UNLOCK)
/* --- lock and cv waiting --- */