[DAPL2] DAPL Counters & 2.0.3 extensions to support counter retrieval.
[mirror/winof/.git] / ulp / dapl2 / dapl / common / dapl_ia_util.c
index debf1a2..12ae8cf 100644 (file)
@@ -78,6 +78,16 @@ dapl_ia_alloc ( DAT_PROVIDER * provider, DAPL_HCA * hca_ptr )
     /* zero the structure */\r
     dapl_os_memzero (ia_ptr, sizeof (DAPL_IA));\r
 \r
+#ifdef DAPL_COUNTERS\r
+    /* Allocate counters */\r
+    ia_ptr->cntrs = dapl_os_alloc(sizeof(DAT_UINT64) * DCNT_IA_ALL_COUNTERS);\r
+    if (ia_ptr->cntrs == NULL) {\r
+       dapl_os_free (ia_ptr, sizeof(DAPL_IA));\r
+       return (NULL);\r
+    }\r
+    dapl_os_memzero(ia_ptr->cntrs, sizeof(DAT_UINT64) * DCNT_IA_ALL_COUNTERS);\r
+#endif /* DAPL_COUNTERS */\r
+\r
     /*\r
      * initialize the header\r
      */\r
@@ -596,6 +606,10 @@ dapls_ia_free ( DAPL_IA *ia_ptr )
     ia_ptr->header.magic = DAPL_MAGIC_INVALID; /* reset magic to prevent reuse */\r
     dapl_os_lock_destroy (&ia_ptr->header.lock);\r
 \r
+#ifdef DAPL_COUNTERS\r
+    dapl_os_free(ia_ptr->cntrs, sizeof(DAT_UINT64) * DCNT_IA_ALL_COUNTERS);\r
+#endif /* DAPL_COUNTERS */\r
+\r
     dapl_os_free (ia_ptr, sizeof (DAPL_IA));\r
 }\r
 \r