summaryrefslogtreecommitdiffstats
path: root/src/pmdk/src/libpmem/libpmem_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdk/src/libpmem/libpmem_main.c')
-rw-r--r--src/pmdk/src/libpmem/libpmem_main.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/pmdk/src/libpmem/libpmem_main.c b/src/pmdk/src/libpmem/libpmem_main.c
new file mode 100644
index 000000000..8978229c9
--- /dev/null
+++ b/src/pmdk/src/libpmem/libpmem_main.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/* Copyright 2015-2018, Intel Corporation */
+
+/*
+ * libpmem_main.c -- entry point for libpmem.dll
+ *
+ * XXX - This is a placeholder. All the library initialization/cleanup
+ * that is done in library ctors/dtors, as well as TLS initialization
+ * should be moved here.
+ */
+
+#include "win_mmap.h"
+
+void libpmem_init(void);
+void libpmem_fini(void);
+
+int APIENTRY
+DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
+{
+ switch (dwReason) {
+ case DLL_PROCESS_ATTACH:
+ libpmem_init();
+ win_mmap_init();
+ break;
+
+ case DLL_THREAD_ATTACH:
+ case DLL_THREAD_DETACH:
+ break;
+
+ case DLL_PROCESS_DETACH:
+ win_mmap_fini();
+ libpmem_fini();
+ break;
+ }
+ return TRUE;
+}