aboutsummaryrefslogtreecommitdiff
path: root/src/platform/windows/win_impl.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-07-10 13:06:47 -0700
committerGarrett D'Amore <garrett@damore.org>2017-07-10 13:06:47 -0700
commitde90f97167d2df6739db47b2c6aad85f06250270 (patch)
tree96c34759e56c8ab75013120e99d08cb2996d0dc9 /src/platform/windows/win_impl.h
parent2f9332a75cf5441daa61957a7281ed5cfcf76902 (diff)
downloadnng-de90f97167d2df6739db47b2c6aad85f06250270.tar.gz
nng-de90f97167d2df6739db47b2c6aad85f06250270.tar.bz2
nng-de90f97167d2df6739db47b2c6aad85f06250270.zip
Windows IPC progress. Not working yet, but should be close.
Diffstat (limited to 'src/platform/windows/win_impl.h')
-rw-r--r--src/platform/windows/win_impl.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/platform/windows/win_impl.h b/src/platform/windows/win_impl.h
index fd8f3f79..6ce38250 100644
--- a/src/platform/windows/win_impl.h
+++ b/src/platform/windows/win_impl.h
@@ -22,6 +22,7 @@
#include <process.h>
#include <ws2tcpip.h>
+#include "core/list.h"
// These types are provided for here, to permit them to be directly inlined
// elsewhere.
@@ -35,22 +36,10 @@ typedef struct nni_win_event nni_win_event;
// conveyed in the OVERLAPPED directly.
struct nni_win_event {
OVERLAPPED olpd;
+ HANDLE h;
void * ptr;
nni_cb cb;
- int status;
- int nbytes;
-};
-
-struct nni_plat_ipcsock {
- HANDLE p;
-
- char path[256];
- WSAOVERLAPPED recv_olpd;
- WSAOVERLAPPED send_olpd;
- WSAOVERLAPPED conn_olpd; // Use for both connect and accept
- CRITICAL_SECTION cs;
-
- int server;
+ nni_list aios;
};
struct nni_plat_thr {
@@ -73,9 +62,20 @@ struct nni_plat_cv {
extern int nni_win_error(int);
extern int nni_winsock_error(int);
+extern int nni_win_event_init(nni_win_event *, nni_cb, void *, HANDLE);
+extern void nni_win_event_fini(nni_win_event *);
+extern int nni_win_event_reset(nni_win_event *);
+extern OVERLAPPED *nni_win_event_overlapped(nni_win_event *);
+extern void nni_win_event_cancel(nni_win_event *);
+
+extern int nni_win_iocp_register(HANDLE);
+
extern int nni_win_iocp_sysinit(void);
extern void nni_win_iocp_sysfini(void);
+extern int nni_win_ipc_sysinit(void);
+extern void nni_win_ipc_sysfini(void);
+
extern int nni_win_resolv_sysinit(void);
extern void nni_win_resolv_sysfini(void);