[WSD] Add perfmon counter object implementation. WSD installation now
[mirror/winof/.git] / ulp / wsd / user / ibspdll.c
index 177b735..08bf8a1 100644 (file)
  *\r
  * $Id$\r
  */\r
-\r
 #include <tchar.h>\r
 #include <stdlib.h>\r
 #include "ibspdll.h"\r
 \r
+#ifdef PERFMON_ENABLED\r
+#include "ibsp_perfmon.h"\r
+#endif /* PERFMON_ENABLED */\r
+\r
 /* Globals */\r
 struct ibspdll_globals g_ibsp;\r
 \r
@@ -50,6 +53,7 @@ static DWORD  no_read = 0;
 uint32_t               g_max_inline = 0xFFFFFFFF;\r
 uint32_t               g_max_poll = 0;\r
 \r
+\r
 /*\r
  * Function: DllMain\r
  * \r
@@ -118,6 +122,10 @@ _DllMain(
 \r
                if( init_globals() )\r
                        return FALSE;\r
+\r
+#ifdef PERFMON_ENABLED\r
+               IBSPPmInit();\r
+#endif\r
                break;\r
 \r
        case DLL_THREAD_ATTACH:\r
@@ -187,6 +195,9 @@ _DllMain(
                }\r
 #endif\r
                release_globals();\r
+#ifdef PERFMON_ENABLED\r
+               IBSPPmClose();\r
+#endif\r
                break;\r
        }\r
 \r
@@ -2107,6 +2118,10 @@ IBSPCleanup(
        {\r
                IBSP_TRACE( IBSP_DBG_INIT, ("entry_count is 0 => cleaning up\n") );\r
                ib_release();\r
+\r
+#ifdef PERFMON_ENABLED\r
+               IBSPPmReleaseSlot();\r
+#endif\r
        }\r
 \r
        cl_spinlock_release( &g_ibsp.mutex );\r
@@ -2215,5 +2230,12 @@ WSPStartupEx(
 \r
        IBSP_EXIT( IBSP_DBG_INIT );\r
 \r
+#ifdef PERFMON_ENABLED\r
+       /* Socket application register with perfmon */\r
+       IBSPPmGetSlot();\r
+#endif /* PERFMON_ENABLED */\r
+\r
        return 0;\r
 }\r
+\r
+\r