aboutsummaryrefslogtreecommitdiff
path: root/src/platform/windows/win_impl.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-12 20:46:20 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-12 21:44:44 -0800
commit2bb6a23037656474a90d869c5147b32bae1a2e40 (patch)
tree90697aa3fba3186296a18decb32691a1a143b50a /src/platform/windows/win_impl.h
parent70348e2d4725c9ec43f51811d290c22c782058ac (diff)
downloadnng-2bb6a23037656474a90d869c5147b32bae1a2e40.tar.gz
nng-2bb6a23037656474a90d869c5147b32bae1a2e40.tar.bz2
nng-2bb6a23037656474a90d869c5147b32bae1a2e40.zip
Initial swag at Win32. Much to do still.
Diffstat (limited to 'src/platform/windows/win_impl.h')
-rw-r--r--src/platform/windows/win_impl.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/platform/windows/win_impl.h b/src/platform/windows/win_impl.h
new file mode 100644
index 00000000..1b306f8f
--- /dev/null
+++ b/src/platform/windows/win_impl.h
@@ -0,0 +1,58 @@
+//
+// Copyright 2017 Garrett D'Amore <garrett@damore.org>
+//
+// This software is supplied under the terms of the MIT License, a
+// copy of which should be located in the distribution where this
+// file was obtained (LICENSE.txt). A copy of the license may also be
+// found online at https://opensource.org/licenses/MIT.
+//
+
+#ifndef PLATFORM_WIN_IMPL_H
+#define PLATFORM_WIN_IMPL_H
+
+#ifdef PLATFORM_WINDOWS
+
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+
+#include <windows.h>
+#include <winsock2.h>
+#include <mswsock.h>
+#include <process.h>
+#include <ws2tcpip.h>
+
+
+// These types are provided for here, to permit them to be directly inlined
+// elsewhere.
+
+struct nni_plat_tcpsock {
+ SOCKET s;
+};
+
+struct nni_plat_ipcsock {
+ HANDLE p;
+}
+
+struct nni_plat_thr {
+ void (__stdcall *func)(void *);
+ void * arg;
+ HANDLE handle;
+};
+
+struct nni_plat_mtx {
+ CRITICAL_SECTION cs;
+ DWORD owner;
+};
+
+struct nni_plat_cv {
+ CONDITION_VARIABLE cv;
+ CRITICAL_SECTION cs;
+};
+
+#define nni_alloc(s) calloc(1, (s))
+#define nni_free(s, z) free(s)
+
+#endif // PLATFORM_WINDOWS
+
+#endif // PLATFORM_WIN_IMPL_H