restructure PCP metrics (merge from 2.2 branch)
[sfrench/samba-autobuild/.git] / pcp / samba.c
index 98bd7a936ff9d887c53cfd6e01e050d5d7be976f..07a6ce2e169ed7a03a0f66405c27bca69993c037 100644 (file)
@@ -45,16 +45,23 @@ typedef int BOOL;
 #include <pcp/pmda.h>
 #include "domain.h"
 #include "profile.h"
+#include "metrics.h"
+
+static pmdaInstid *counttime = NULL;
+static pmdaInstid *bytes = NULL;
 
 /*
- * lifted definitions from the samba source
+ * List of instance domains
  */
 
-#define MAX_OPEN_FILES 10000   /* from local.h */
-
+static pmdaIndom indomtab[] = {
+       {COUNT_TIME_INDOM,0,NULL},
+       {BYTE_INDOM,0,NULL}
+};
 /*
  * all metrics supported in this PMDA - one table entry for each
  */
+
 static pmdaMetric metrictab[] = {
 /* smbd.smb_count */
     { NULL, { PMDA_PMID(0,0), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
@@ -62,798 +69,76 @@ static pmdaMetric metrictab[] = {
 /* smbd.uid_changes */
     { NULL, { PMDA_PMID(0,1), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.opendir */
-    { NULL, { PMDA_PMID(1,2), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.opendir_time */
-    { NULL, { PMDA_PMID(1,3), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.readdir */
-    { NULL, { PMDA_PMID(1,4), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.readdir_time */
-    { NULL, { PMDA_PMID(1,5), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.mkdir */
-    { NULL, { PMDA_PMID(1,6), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.mkdir_time */
-    { NULL, { PMDA_PMID(1,7), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.rmdir */
-    { NULL, { PMDA_PMID(1,8), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.rmdir_time */
-    { NULL, { PMDA_PMID(1,9), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.closedir */
-    { NULL, { PMDA_PMID(1,10), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.closedir_time */
-    { NULL, { PMDA_PMID(1,11), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.open */
-    { NULL, { PMDA_PMID(1,12), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.open_time */
-    { NULL, { PMDA_PMID(1,13), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.close */
-    { NULL, { PMDA_PMID(1,14), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.close_time */
-    { NULL, { PMDA_PMID(1,15), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.read_count */
-    { NULL, { PMDA_PMID(1,16), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.read_time */
-    { NULL, { PMDA_PMID(1,17), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.read_bytes */
-    { NULL, { PMDA_PMID(1,18), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 1,0,0,PM_SPACE_BYTE,0,0} }, },
-/* syscalls.write_count */
-    { NULL, { PMDA_PMID(1,19), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.write_time */
-    { NULL, { PMDA_PMID(1,20), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.write_bytes */
-    { NULL, { PMDA_PMID(1,21), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 1,0,0,PM_SPACE_BYTE,0,0} }, },
-/* syscalls.lseek */
-    { NULL, { PMDA_PMID(1,22), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.lseek_time */
-    { NULL, { PMDA_PMID(1,23), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.rename */
-    { NULL, { PMDA_PMID(1,24), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.rename_time */
-    { NULL, { PMDA_PMID(1,25), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.fsync */
-    { NULL, { PMDA_PMID(1,26), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.fsync_time */
-    { NULL, { PMDA_PMID(1,27), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.stat */
-    { NULL, { PMDA_PMID(1,28), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.stat_time */
-    { NULL, { PMDA_PMID(1,29), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.fstat */
-    { NULL, { PMDA_PMID(1,30), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.fstat_time */
-    { NULL, { PMDA_PMID(1,31), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.lstat */
-    { NULL, { PMDA_PMID(1,32), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.lstat_time */
-    { NULL, { PMDA_PMID(1,33), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.unlink */
-    { NULL, { PMDA_PMID(1,34), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.unlink_time */
-    { NULL, { PMDA_PMID(1,35), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.chmod */
-    { NULL, { PMDA_PMID(1,36), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.chmod_time */
-    { NULL, { PMDA_PMID(1,37), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.chown */
-    { NULL, { PMDA_PMID(1,38), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.chown_time */
-    { NULL, { PMDA_PMID(1,39), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.chdir */
-    { NULL, { PMDA_PMID(1,40), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.chdir_time */
-    { NULL, { PMDA_PMID(1,41), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.getwd */
-    { NULL, { PMDA_PMID(1,42), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.getwd_time */
-    { NULL, { PMDA_PMID(1,43), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.utime */
-    { NULL, { PMDA_PMID(1,44), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.utime_time */
-    { NULL, { PMDA_PMID(1,45), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.ftruncate */
-    { NULL, { PMDA_PMID(1,46), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.ftruncate_time */
-    { NULL, { PMDA_PMID(1,47), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* syscalls.fcntl_lock */
-    { NULL, { PMDA_PMID(1,48), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* syscalls.fcntl_time */
-    { NULL, { PMDA_PMID(1,49), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
 /* statcache.lookups */
-    { NULL, { PMDA_PMID(2,50), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(1,0), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* statcache.misses */
-    { NULL, { PMDA_PMID(2,51), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(1,1), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* statcache.hits */
-    { NULL, { PMDA_PMID(2,52), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(1,2), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.num_caches */
-    { NULL, { PMDA_PMID(3,53), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT, 
+    { NULL, { PMDA_PMID(2,0), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.allocated_caches */
-    { NULL, { PMDA_PMID(3,54), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT, 
+    { NULL, { PMDA_PMID(2,1), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.read_hits */
-    { NULL, { PMDA_PMID(3,55), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,2), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.total_writes */
-    { NULL, { PMDA_PMID(3,56), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,3), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.init_writes */
-    { NULL, { PMDA_PMID(3,57), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,4), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.abutted_writes */
-    { NULL, { PMDA_PMID(3,58), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,5), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.perfect_writes */
-    { NULL, { PMDA_PMID(3,59), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,6), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.direct_writes */
-    { NULL, { PMDA_PMID(3,60), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,7), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.non_oplock_writes */
-    { NULL, { PMDA_PMID(3,61), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,8), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.seek_flush */
-    { NULL, { PMDA_PMID(3,62), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,9), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.read_flush */
-    { NULL, { PMDA_PMID(3,63), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,10), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.write_flush */
-    { NULL, { PMDA_PMID(3,64), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,11), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.readraw_flush */
-    { NULL, { PMDA_PMID(3,65), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,12), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.oplock_rel_flush */
-    { NULL, { PMDA_PMID(3,66), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,13), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.close_flush */
-    { NULL, { PMDA_PMID(3,67), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,14), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.sync_flush */
-    { NULL, { PMDA_PMID(3,68), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,15), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
 /* writecache.size_change_flush */
-    { NULL, { PMDA_PMID(3,69), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_mkdir */
-    { NULL, { PMDA_PMID(4,70), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_mkdir_time */
-    { NULL, { PMDA_PMID(4,71), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_rmdir */
-    { NULL, { PMDA_PMID(4,72), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_rmdir_time */
-    { NULL, { PMDA_PMID(4,73), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_open */
-    { NULL, { PMDA_PMID(4,74), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_open_time */
-    { NULL, { PMDA_PMID(4,75), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_create */
-    { NULL, { PMDA_PMID(4,76), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_create_time */
-    { NULL, { PMDA_PMID(4,77), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_close */
-    { NULL, { PMDA_PMID(4,78), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_close_time */
-    { NULL, { PMDA_PMID(4,79), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_flush */
-    { NULL, { PMDA_PMID(4,80), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_flush_time */
-    { NULL, { PMDA_PMID(4,81), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_unlink */
-    { NULL, { PMDA_PMID(4,82), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_unlink_time */
-    { NULL, { PMDA_PMID(4,83), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_mv */
-    { NULL, { PMDA_PMID(4,84), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_mv_time */
-    { NULL, { PMDA_PMID(4,85), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_getattr */
-    { NULL, { PMDA_PMID(4,86), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_getattr_time */
-    { NULL, { PMDA_PMID(4,87), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_setattr */
-    { NULL, { PMDA_PMID(4,88), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_setattr_time */
-    { NULL, { PMDA_PMID(4,89), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_read */
-    { NULL, { PMDA_PMID(4,90), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_read_time */
-    { NULL, { PMDA_PMID(4,91), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_write */
-    { NULL, { PMDA_PMID(4,92), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_write_time */
-    { NULL, { PMDA_PMID(4,93), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_lock */
-    { NULL, { PMDA_PMID(4,94), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_lock_time */
-    { NULL, { PMDA_PMID(4,95), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_unlock */
-    { NULL, { PMDA_PMID(4,96), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_unlock_time */
-    { NULL, { PMDA_PMID(4,97), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_ctemp */
-    { NULL, { PMDA_PMID(4,98), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_ctemp_time */
-    { NULL, { PMDA_PMID(4,99), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_mknew */
-    { NULL, { PMDA_PMID(4,100), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_mknew_time */
-    { NULL, { PMDA_PMID(4,101), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_chkpth */
-    { NULL, { PMDA_PMID(4,102), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_chkpth_time */
-    { NULL, { PMDA_PMID(4,103), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_exit */
-    { NULL, { PMDA_PMID(4,104), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_exit_time */
-    { NULL, { PMDA_PMID(4,105), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_lseek */
-    { NULL, { PMDA_PMID(4,106), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_lseek_time */
-    { NULL, { PMDA_PMID(4,107), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_lockread */
-    { NULL, { PMDA_PMID(4,108), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_lockread_time */
-    { NULL, { PMDA_PMID(4,109), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_writeunlock */
-    { NULL, { PMDA_PMID(4,110), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_writeunlock_time */
-    { NULL, { PMDA_PMID(4,111), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_readBraw */
-    { NULL, { PMDA_PMID(4,112), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_readBraw_time */
-    { NULL, { PMDA_PMID(4,113), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_readBmpx */
-    { NULL, { PMDA_PMID(4,114), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_readBmpx_time */
-    { NULL, { PMDA_PMID(4,115), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_readBs */
-    { NULL, { PMDA_PMID(4,116), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_readBs_time */
-    { NULL, { PMDA_PMID(4,117), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_writeBraw */
-    { NULL, { PMDA_PMID(4,118), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_writeBraw_time */
-    { NULL, { PMDA_PMID(4,119), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_writeBmpx */
-    { NULL, { PMDA_PMID(4,120), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_writeBmpx_time */
-    { NULL, { PMDA_PMID(4,121), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_writeBs */
-    { NULL, { PMDA_PMID(4,122), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_writeBs_time */
-    { NULL, { PMDA_PMID(4,123), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_writec */
-    { NULL, { PMDA_PMID(4,124), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_writec_time */
-    { NULL, { PMDA_PMID(4,125), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_setattrE */
-    { NULL, { PMDA_PMID(4,126), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_setattrE_time */
-    { NULL, { PMDA_PMID(4,127), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_getattrE */
-    { NULL, { PMDA_PMID(4,128), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_getattrE_time */
-    { NULL, { PMDA_PMID(4,129), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_lockingX */
-    { NULL, { PMDA_PMID(4,130), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_lockingX_time */
-    { NULL, { PMDA_PMID(4,131), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_trans */
-    { NULL, { PMDA_PMID(4,132), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_trans_time */
-    { NULL, { PMDA_PMID(4,133), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_transs */
-    { NULL, { PMDA_PMID(4,134), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_transs_time */
-    { NULL, { PMDA_PMID(4,135), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_ioctl */
-    { NULL, { PMDA_PMID(4,136), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_ioctl_time */
-    { NULL, { PMDA_PMID(4,137), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_ioctls */
-    { NULL, { PMDA_PMID(4,138), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_ioctls_time */
-    { NULL, { PMDA_PMID(4,139), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_copy */
-    { NULL, { PMDA_PMID(4,140), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_copy_time */
-    { NULL, { PMDA_PMID(4,141), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_move */
-    { NULL, { PMDA_PMID(4,142), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_move_time */
-    { NULL, { PMDA_PMID(4,143), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_echo */
-    { NULL, { PMDA_PMID(4,144), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_echo_time */
-    { NULL, { PMDA_PMID(4,145), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_writeclose */
-    { NULL, { PMDA_PMID(4,146), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_writeclose_time */
-    { NULL, { PMDA_PMID(4,147), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_openX */
-    { NULL, { PMDA_PMID(4,148), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_openX_time */
-    { NULL, { PMDA_PMID(4,149), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_readX */
-    { NULL, { PMDA_PMID(4,150), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_readX_time */
-    { NULL, { PMDA_PMID(4,151), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_writeX */
-    { NULL, { PMDA_PMID(4,152), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_writeX_time */
-    { NULL, { PMDA_PMID(4,153), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_trans2 */
-    { NULL, { PMDA_PMID(4,154), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_trans2_time */
-    { NULL, { PMDA_PMID(4,155), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_transs2 */
-    { NULL, { PMDA_PMID(4,156), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_transs2_time */
-    { NULL, { PMDA_PMID(4,157), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_findclose */
-    { NULL, { PMDA_PMID(4,158), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_findclose_time */
-    { NULL, { PMDA_PMID(4,159), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_findNclose */
-    { NULL, { PMDA_PMID(4,160), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_findNclose_time */
-    { NULL, { PMDA_PMID(4,161), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_tcon */
-    { NULL, { PMDA_PMID(4,162), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_tcon_time */
-    { NULL, { PMDA_PMID(4,163), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_tdis */
-    { NULL, { PMDA_PMID(4,164), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_tdis_time */
-    { NULL, { PMDA_PMID(4,165), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_negprot */
-    { NULL, { PMDA_PMID(4,166), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_negprot_time */
-    { NULL, { PMDA_PMID(4,167), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_sessetupX */
-    { NULL, { PMDA_PMID(4,168), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_sessetupX_time */
-    { NULL, { PMDA_PMID(4,169), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_ulogoffX */
-    { NULL, { PMDA_PMID(4,170), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_ulogoffX_time */
-    { NULL, { PMDA_PMID(4,171), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_tconX */
-    { NULL, { PMDA_PMID(4,172), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_tconX_time */
-    { NULL, { PMDA_PMID(4,173), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_dskattr */
-    { NULL, { PMDA_PMID(4,174), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_dskattr_time */
-    { NULL, { PMDA_PMID(4,175), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_search */
-    { NULL, { PMDA_PMID(4,176), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_search_time */
-    { NULL, { PMDA_PMID(4,177), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_ffisrst */
-    { NULL, { PMDA_PMID(4,178), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_ffisrst_time */
-    { NULL, { PMDA_PMID(4,179), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_funique */
-    { NULL, { PMDA_PMID(4,180), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_funique_time */
-    { NULL, { PMDA_PMID(4,181), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_fclose */
-    { NULL, { PMDA_PMID(4,182), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_fclose_time */
-    { NULL, { PMDA_PMID(4,183), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_NTtrans */
-    { NULL, { PMDA_PMID(4,184), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_NTtrans_time */
-    { NULL, { PMDA_PMID(4,185), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_NTtranss */
-    { NULL, { PMDA_PMID(4,186), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_NTtranss_time */
-    { NULL, { PMDA_PMID(4,187), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_NTcreateX */
-    { NULL, { PMDA_PMID(4,188), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_NTcreateX_time */
-    { NULL, { PMDA_PMID(4,189), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_NTcancel */
-    { NULL, { PMDA_PMID(4,190), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_NTcancel_time */
-    { NULL, { PMDA_PMID(4,191), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_splopen */
-    { NULL, { PMDA_PMID(4,192), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_splopen_time */
-    { NULL, { PMDA_PMID(4,193), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_splwrite */
-    { NULL, { PMDA_PMID(4,194), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_splwrite_time */
-    { NULL, { PMDA_PMID(4,195), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_splclose */
-    { NULL, { PMDA_PMID(4,196), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_splclose_time */
-    { NULL, { PMDA_PMID(4,197), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_splretq */
-    { NULL, { PMDA_PMID(4,198), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_splretq_time */
-    { NULL, { PMDA_PMID(4,199), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_sends */
-    { NULL, { PMDA_PMID(4,200), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_sends_time */
-    { NULL, { PMDA_PMID(4,201), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_sendb */
-    { NULL, { PMDA_PMID(4,202), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_sendb_time */
-    { NULL, { PMDA_PMID(4,203), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_fwdname */
-    { NULL, { PMDA_PMID(4,204), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_fwdname_time */
-    { NULL, { PMDA_PMID(4,205), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_cancelf */
-    { NULL, { PMDA_PMID(4,206), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_cancelf_time */
-    { NULL, { PMDA_PMID(4,207), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_getmach */
-    { NULL, { PMDA_PMID(4,208), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_getmach_time */
-    { NULL, { PMDA_PMID(4,209), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_sendstrt */
-    { NULL, { PMDA_PMID(4,210), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_sendstrt_time */
-    { NULL, { PMDA_PMID(4,211), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_sendend */
-    { NULL, { PMDA_PMID(4,212), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_sendend_time */
-    { NULL, { PMDA_PMID(4,213), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_sendtxt */
-    { NULL, { PMDA_PMID(4,214), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_sendtxt_time */
-    { NULL, { PMDA_PMID(4,215), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.SMB_invalid */
-    { NULL, { PMDA_PMID(4,216), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.SMB_invalid_time */
-    { NULL, { PMDA_PMID(4,217), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.PATHWORK_setdir */
-    { NULL, { PMDA_PMID(4,218), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.PATHWORK_setdir_time */
-    { NULL, { PMDA_PMID(4,219), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_open */
-    { NULL, { PMDA_PMID(4,220), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_open_time */
-    { NULL, { PMDA_PMID(4,221), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_ffirst */
-    { NULL, { PMDA_PMID(4,222), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_ffirst_time */
-    { NULL, { PMDA_PMID(4,223), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_fnext */
-    { NULL, { PMDA_PMID(4,224), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_fnext_time */
-    { NULL, { PMDA_PMID(4,225), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_qfsinfo */
-    { NULL, { PMDA_PMID(4,226), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_qfsinfo_time */
-    { NULL, { PMDA_PMID(4,227), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_sfsinfo */
-    { NULL, { PMDA_PMID(4,228), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_sfsinfo_time */
-    { NULL, { PMDA_PMID(4,229), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_qpathinfo */
-    { NULL, { PMDA_PMID(4,230), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_qpathinfo_time */
-    { NULL, { PMDA_PMID(4,231), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_spathinfo */
-    { NULL, { PMDA_PMID(4,232), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_spathinfo_time */
-    { NULL, { PMDA_PMID(4,233), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_qfileinfo */
-    { NULL, { PMDA_PMID(4,234), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_qfileinfo_time */
-    { NULL, { PMDA_PMID(4,235), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_sfileinfo */
-    { NULL, { PMDA_PMID(4,236), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_sfileinfo_time */
-    { NULL, { PMDA_PMID(4,237), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_fsctl */
-    { NULL, { PMDA_PMID(4,238), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_fsctl_time */
-    { NULL, { PMDA_PMID(4,239), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_ioctl */
-    { NULL, { PMDA_PMID(4,240), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_ioctl_time */
-    { NULL, { PMDA_PMID(4,241), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_fnotifyfirst */
-    { NULL, { PMDA_PMID(4,242), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_fnotifyfirst_time */
-    { NULL, { PMDA_PMID(4,243), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_fnotifynext */
-    { NULL, { PMDA_PMID(4,244), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_fnotifynext_time */
-    { NULL, { PMDA_PMID(4,245), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_mkdir */
-    { NULL, { PMDA_PMID(4,246), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_mkdir_time */
-    { NULL, { PMDA_PMID(4,247), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_sessetup */
-    { NULL, { PMDA_PMID(4,248), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_sessetup_time */
-    { NULL, { PMDA_PMID(4,249), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_getDFSref */
-    { NULL, { PMDA_PMID(4,250), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_getDFSref_time */
-    { NULL, { PMDA_PMID(4,251), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.TRANS2_rptDFSinconsist */
-    { NULL, { PMDA_PMID(4,252), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.TRANS2_rptDFSinconsist_time */
-    { NULL, { PMDA_PMID(4,253), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.NTTRANS_create */
-    { NULL, { PMDA_PMID(4,254), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.NTTRANS_create_time */
-    { NULL, { PMDA_PMID(4,255), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.NTTRANS_ioctl */
-    { NULL, { PMDA_PMID(4,256), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.NTTRANS_ioctl_time */
-    { NULL, { PMDA_PMID(4,257), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.NTTRANS_setsecdesc */
-    { NULL, { PMDA_PMID(4,258), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.NTTRANS_setsecdesc_time */
-    { NULL, { PMDA_PMID(4,259), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.NTTRANS_notifychange */
-    { NULL, { PMDA_PMID(4,260), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+    { NULL, { PMDA_PMID(2,16), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.NTTRANS_notifychange_time */
-    { NULL, { PMDA_PMID(4,261), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.NTTRANS_rename */
-    { NULL, { PMDA_PMID(4,262), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+/* counts instance domain */
+    { NULL, { PMDA_PMID(3,0), PM_TYPE_U32, COUNT_TIME_INDOM, PM_SEM_COUNTER, 
                { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.NTTRANS_rename_time */
-    { NULL, { PMDA_PMID(4,263), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
+/* times instance domain */
+    { NULL, { PMDA_PMID(4,0), PM_TYPE_U32, COUNT_TIME_INDOM, PM_SEM_COUNTER, 
                { 0,1,0,0,PM_TIME_USEC,0} }, },
-/* SMB.NTTRANS_qsecdesc */
-    { NULL, { PMDA_PMID(4,264), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,0,1,0,0,PM_COUNT_ONE} }, },
-/* SMB.NTTRANS_qsecdesc_time */
-    { NULL, { PMDA_PMID(4,265), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER, 
-               { 0,1,0,0,PM_TIME_USEC,0} }, }
+/* bytes instance domain */
+    { NULL, { PMDA_PMID(5,0), PM_TYPE_U32, BYTE_INDOM, PM_SEM_COUNTER, 
+               { 1,0,0,PM_SPACE_BYTE,0,0} }, }
+
 };
 
 extern int     errno;
@@ -866,6 +151,7 @@ int
 samba_fetchCallBack(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom)
 {
     __pmID_int         *idp = (__pmID_int *)&(mdesc->m_desc.pmid);
+    
 
     if (inst != PM_IN_NULL && mdesc->m_desc.indom == PM_INDOM_NULL)
        return PM_ERR_INST;
@@ -882,821 +168,119 @@ samba_fetchCallBack(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom)
                return PM_ERR_PMID;
        }
     }
-    else if (idp->cluster == 1) {
+    else if (idp->cluster == 1) {      /* statcache */
        switch (idp->item) {
-           case 2:                     /* syscalls.opendir */
-               atom->ul = stats->syscall_opendir_count;
+           case 0:                     /* statcache.lookups */
+               atom->ul = stats->statcache_lookups;
                break;
-           case 3:                     /* syscalls.opendir */
-               atom->ul = stats->syscall_opendir_time;
+           case 1:                     /* statcache.misses */
+               atom->ul = stats->statcache_misses;
                break;
-           case 4:                     /* syscalls.readdir */
-               atom->ul = stats->syscall_readdir_count;
+           case 2:                     /* statcache.hits */
+               atom->ul = stats->statcache_hits;
                break;
-           case 5:                     /* syscalls.readdir */
-               atom->ul = stats->syscall_readdir_time;
+           default:
+               return PM_ERR_PMID;
+       }
+    }
+    else if (idp->cluster == 2) {      /* writecache */
+       switch (idp->item) {
+           case 0:                     /* writecache.num_caches */
+               atom->ul = stats->writecache_num_write_caches;
                break;
-           case 6:                     /* syscalls.mkdir */
-               atom->ul = stats->syscall_mkdir_count;
+           case 1:                     /* writecache.allocated_caches */
+               atom->ul = stats->writecache_allocated_write_caches;
                break;
-           case 7:                     /* syscalls.mkdir */
-               atom->ul = stats->syscall_mkdir_time;
-               break;
-           case 8:                     /* syscalls.rmdir */
-               atom->ul = stats->syscall_rmdir_count;
-               break;
-           case 9:                     /* syscalls.rmdir */
-               atom->ul = stats->syscall_rmdir_time;
-               break;
-           case 10:                    /* syscalls.closedir */
-               atom->ul = stats->syscall_closedir_count;
-               break;
-           case 11:                    /* syscalls.closedir */
-               atom->ul = stats->syscall_closedir_time;
-               break;
-           case 12:                    /* syscalls.open */
-               atom->ul = stats->syscall_open_count;
-               break;
-           case 13:                    /* syscalls.open */
-               atom->ul = stats->syscall_open_time;
-               break;
-           case 14:                    /* syscalls.close */
-               atom->ul = stats->syscall_close_count;
-               break;
-           case 15:                    /* syscalls.close */
-               atom->ul = stats->syscall_close_time;
-               break;
-           case 16:                    /* syscalls.read */
-               atom->ul = stats->syscall_read_count;
-               break;
-           case 17:                    /* syscalls.read */
-               atom->ul = stats->syscall_read_time;
-               break;
-           case 18:                    /* syscalls.read */
-               atom->ul = stats->syscall_read_bytes;
-               break;
-           case 19:                    /* syscalls.write */
-               atom->ul = stats->syscall_write_count;
-               break;
-           case 20:                    /* syscalls.write */
-               atom->ul = stats->syscall_write_time;
-               break;
-           case 21:                    /* syscalls.write */
-               atom->ul = stats->syscall_write_bytes;
-               break;
-           case 22:                    /* syscalls.lseek */
-               atom->ul = stats->syscall_lseek_count;
-               break;
-           case 23:                    /* syscalls.lseek */
-               atom->ul = stats->syscall_lseek_time;
-               break;
-           case 24:                    /* syscalls.rename */
-               atom->ul = stats->syscall_rename_count;
-               break;
-           case 25:                    /* syscalls.rename */
-               atom->ul = stats->syscall_rename_time;
-               break;
-           case 26:                    /* syscalls.fsync */
-               atom->ul = stats->syscall_fsync_count;
-               break;
-           case 27:                    /* syscalls.fsync */
-               atom->ul = stats->syscall_fsync_time;
-               break;
-           case 28:                    /* syscalls.stat */
-               atom->ul = stats->syscall_stat_count;
-               break;
-           case 29:                    /* syscalls.stat */
-               atom->ul = stats->syscall_stat_time;
-               break;
-           case 30:                    /* syscalls.fstat */
-               atom->ul = stats->syscall_fstat_count;
-               break;
-           case 31:                    /* syscalls.fstat */
-               atom->ul = stats->syscall_fstat_time;
-               break;
-           case 32:                    /* syscalls.lstat */
-               atom->ul = stats->syscall_lstat_count;
-               break;
-           case 33:                    /* syscalls.lstat */
-               atom->ul = stats->syscall_lstat_time;
-               break;
-           case 34:                    /* syscalls.unlink */
-               atom->ul = stats->syscall_unlink_count;
-               break;
-           case 35:                    /* syscalls.unlink */
-               atom->ul = stats->syscall_unlink_time;
-               break;
-           case 36:                    /* syscalls.chmod */
-               atom->ul = stats->syscall_chmod_count;
-               break;
-           case 37:                    /* syscalls.chmod */
-               atom->ul = stats->syscall_chmod_time;
-               break;
-           case 38:                    /* syscalls.chown */
-               atom->ul = stats->syscall_chown_count;
-               break;
-           case 39:                    /* syscalls.chown */
-               atom->ul = stats->syscall_chown_time;
-               break;
-           case 40:                    /* syscalls.chdir */
-               atom->ul = stats->syscall_chdir_count;
-               break;
-           case 41:                    /* syscalls.chdir */
-               atom->ul = stats->syscall_chdir_time;
-               break;
-           case 42:                    /* syscalls.getwd */
-               atom->ul = stats->syscall_getwd_count;
-               break;
-           case 43:                    /* syscalls.getwd */
-               atom->ul = stats->syscall_getwd_time;
-               break;
-           case 44:                    /* syscalls.utime */
-               atom->ul = stats->syscall_utime_count;
-               break;
-           case 45:                    /* syscalls.utime */
-               atom->ul = stats->syscall_utime_time;
-               break;
-           case 46:                    /* syscalls.ftruncate */
-               atom->ul = stats->syscall_ftruncate_count;
-               break;
-           case 47:                    /* syscalls.ftruncate */
-               atom->ul = stats->syscall_ftruncate_time;
-               break;
-           case 48:                    /* syscalls.fcntl_lock */
-               atom->ul = stats->syscall_fcntl_lock_count;
-               break;
-           case 49:                    /* syscalls.fcntl_lock */
-               atom->ul = stats->syscall_fcntl_lock_time;
-               break;
-           default:
-               return PM_ERR_PMID;
-       }
-    }
-    else if (idp->cluster == 2) {
-       switch (idp->item) {
-           case 50:                    /* statcache.lookups */
-               atom->ul = stats->statcache_lookups;
-               break;
-           case 51:                    /* statcache.misses */
-               atom->ul = stats->statcache_misses;
-               break;
-           case 52:                    /* statcache.hits */
-               atom->ul = stats->statcache_hits;
-               break;
-           default:
-               return PM_ERR_PMID;
-       }
-    }
-    else if (idp->cluster == 3) {
-       switch (idp->item) {
-           case 53:                    /* writecache.num_caches */
-               atom->ul = stats->writecache_num_write_caches;
-               break;
-           case 54:                    /* writecache.allocated_caches */
-               atom->ul = stats->writecache_allocated_write_caches;
-               break;
-           case 55:                    /* writecache.read_hits */
+           case 2:                     /* writecache.read_hits */
                atom->ul = stats->writecache_read_hits;
                break;
-           case 56:                    /* writecache.total_writes */
+           case 3:                     /* writecache.total_writes */
                atom->ul = stats->writecache_total_writes;
                break;
-           case 57:                    /* writecache.init_writes */
+           case 4:                     /* writecache.init_writes */
                atom->ul = stats->writecache_init_writes;
                break;
-           case 58:                    /* writecache.abutted_writes */
+           case 5                    /* writecache.abutted_writes */
                atom->ul = stats->writecache_abutted_writes;
                break;
-           case 59:                    /* writecache.perfect_writes */
+           case 6:                     /* writecache.perfect_writes */
                atom->ul = stats->writecache_num_perfect_writes;
                break;
-           case 60:                    /* writecache.direct_writes */
+           case 7:                     /* writecache.direct_writes */
                atom->ul = stats->writecache_direct_writes;
                break;
-           case 61:                    /* writecache.non_oplock_writes */
+           case 8:                     /* writecache.non_oplock_writes */
                atom->ul = stats->writecache_non_oplock_writes;
                break;
-           case 62:                    /* writecache.seek_flush */
+           case 9:                     /* writecache.seek_flush */
                atom->ul = stats->writecache_flushed_writes[SEEK_FLUSH];
                break;
-           case 63:                    /* writecache.read_flush */
+           case 10:                    /* writecache.read_flush */
                atom->ul = stats->writecache_flushed_writes[READ_FLUSH];
                break;
-           case 64:                    /* writecache.write_flush */
+           case 11:                    /* writecache.write_flush */
                atom->ul = stats->writecache_flushed_writes[WRITE_FLUSH];
                break;
-           case 65:                    /* writecache.readraw_flush */
+           case 12:                    /* writecache.readraw_flush */
                atom->ul = stats->writecache_flushed_writes[READRAW_FLUSH];
                break;
-           case 66:                    /* writecache.oplock_rel_flush */
+           case 13:                    /* writecache.oplock_rel_flush */
                atom->ul = stats->writecache_flushed_writes[OPLOCK_RELEASE_FLUSH];
                break;
-           case 67:                    /* writecache.close_flush */
+           case 14:                    /* writecache.close_flush */
                atom->ul = stats->writecache_flushed_writes[CLOSE_FLUSH];
                break;
-           case 68:                    /* writecache.sync_flush */
+           case 15:                    /* writecache.sync_flush */
                atom->ul = stats->writecache_flushed_writes[SYNC_FLUSH];
                break;
-           case 69:                    /* writecache.size_change_flush */
+           case 16:                    /* writecache.size_change_flush */
                atom->ul = stats->writecache_flushed_writes[SIZECHANGE_FLUSH];
                break;
            default:
                return PM_ERR_PMID;
        }
     }
-    else if (idp->cluster == 4) {
-       switch (idp->item) {
-           case 70:                    /* SMB.SMB_mkdir */
-               atom->ul = stats->SMBmkdir_count;
-               break;
-           case 71:                    /* SMB.SMB_mkdir */
-               atom->ul = stats->SMBmkdir_time;
-               break;
-           case 72:                    /* SMB.SMB_rmdir */
-               atom->ul = stats->SMBrmdir_count;
-               break;
-           case 73:                    /* SMB.SMB_rmdir */
-               atom->ul = stats->SMBrmdir_time;
-               break;
-           case 74:                    /* SMB.SMB_open */
-               atom->ul = stats->SMBopen_count;
-               break;
-           case 75:                    /* SMB.SMB_open */
-               atom->ul = stats->SMBopen_time;
-               break;
-           case 76:                    /* SMB.SMB_create */
-               atom->ul = stats->SMBcreate_count;
-               break;
-           case 77:                    /* SMB.SMB_create */
-               atom->ul = stats->SMBcreate_time;
-               break;
-           case 78:                    /* SMB.SMB_close */
-               atom->ul = stats->SMBclose_count;
-               break;
-           case 79:                    /* SMB.SMB_close */
-               atom->ul = stats->SMBclose_time;
-               break;
-           case 80:                    /* SMB.SMB_flush */
-               atom->ul = stats->SMBflush_count;
-               break;
-           case 81:                    /* SMB.SMB_flush */
-               atom->ul = stats->SMBflush_time;
-               break;
-           case 82:                    /* SMB.SMB_unlink */
-               atom->ul = stats->SMBunlink_count;
-               break;
-           case 83:                    /* SMB.SMB_unlink */
-               atom->ul = stats->SMBunlink_time;
-               break;
-           case 84:                    /* SMB.SMB_mv */
-               atom->ul = stats->SMBmv_count;
-               break;
-           case 85:                    /* SMB.SMB_mv */
-               atom->ul = stats->SMBmv_time;
-               break;
-           case 86:                    /* SMB.SMB_getatr */
-               atom->ul = stats->SMBgetatr_count;
-               break;
-           case 87:                    /* SMB.SMB_getatr */
-               atom->ul = stats->SMBgetatr_time;
-               break;
-           case 88:                    /* SMB.SMB_setatr */
-               atom->ul = stats->SMBsetatr_count;
-               break;
-           case 89:                    /* SMB.SMB_setatr */
-               atom->ul = stats->SMBsetatr_time;
-               break;
-           case 90:                    /* SMB.SMB_read */
-               atom->ul = stats->SMBread_count;
-               break;
-           case 91:                    /* SMB.SMB_read */
-               atom->ul = stats->SMBread_time;
-               break;
-           case 92:                    /* SMB.SMB_write */
-               atom->ul = stats->SMBwrite_count;
-               break;
-           case 93:                    /* SMB.SMB_write */
-               atom->ul = stats->SMBwrite_time;
-               break;
-           case 94:                    /* SMB.SMB_lock */
-               atom->ul = stats->SMBlock_count;
-               break;
-           case 95:                    /* SMB.SMB_lock */
-               atom->ul = stats->SMBlock_time;
-               break;
-           case 96:                    /* SMB.SMB_unlock */
-               atom->ul = stats->SMBunlock_count;
-               break;
-           case 97:                    /* SMB.SMB_unlock */
-               atom->ul = stats->SMBunlock_time;
-               break;
-           case 98:                    /* SMB.SMB_ctemp */
-               atom->ul = stats->SMBctemp_count;
-               break;
-           case 99:                    /* SMB.SMB_ctemp */
-               atom->ul = stats->SMBctemp_time;
-               break;
-           case 100:                   /* SMB.SMB_mknew */
-               atom->ul = stats->SMBmknew_count;
-               break;
-           case 101:                   /* SMB.SMB_mknew */
-               atom->ul = stats->SMBmknew_time;
-               break;
-           case 102:                   /* SMB.SMB_chkpth */
-               atom->ul = stats->SMBchkpth_count;
-               break;
-           case 103:                   /* SMB.SMB_chkpth */
-               atom->ul = stats->SMBchkpth_time;
-               break;
-           case 104:                   /* SMB.SMB_exit */
-               atom->ul = stats->SMBexit_count;
-               break;
-           case 105:                   /* SMB.SMB_exit */
-               atom->ul = stats->SMBexit_time;
-               break;
-           case 106:                   /* SMB.SMB_lseek */
-               atom->ul = stats->SMBlseek_count;
-               break;
-           case 107:                   /* SMB.SMB_lseek */
-               atom->ul = stats->SMBlseek_time;
-               break;
-           case 108:                   /* SMB.SMB_lockread */
-               atom->ul = stats->SMBlockread_count;
-               break;
-           case 109:                   /* SMB.SMB_lockread */
-               atom->ul = stats->SMBlockread_time;
-               break;
-           case 110:                   /* SMB.SMB_writeunlock */
-               atom->ul = stats->SMBwriteunlock_count;
-               break;
-           case 111:                   /* SMB.SMB_writeunlock */
-               atom->ul = stats->SMBwriteunlock_time;
-               break;
-           case 112:                   /* SMB.SMB_readbraw */
-               atom->ul = stats->SMBreadbraw_count;
-               break;
-           case 113:                   /* SMB.SMB_readbraw */
-               atom->ul = stats->SMBreadbraw_time;
-               break;
-           case 114:                   /* SMB.SMB_readBmpx */
-               atom->ul = stats->SMBreadBmpx_count;
-               break;
-           case 115:                   /* SMB.SMB_readBmpx */
-               atom->ul = stats->SMBreadBmpx_time;
-               break;
-           case 116:                   /* SMB.SMB_readBs */
-               atom->ul = stats->SMBreadBs_count;
-               break;
-           case 117:                   /* SMB.SMB_readBs */
-               atom->ul = stats->SMBreadBs_time;
-               break;
-           case 118:                   /* SMB.SMB_writebraw */
-               atom->ul = stats->SMBwritebraw_count;
-               break;
-           case 119:                   /* SMB.SMB_writebraw */
-               atom->ul = stats->SMBwritebraw_time;
-               break;
-           case 120:                   /* SMB.SMB_writeBmpx */
-               atom->ul = stats->SMBwriteBmpx_count;
-               break;
-           case 121:                   /* SMB.SMB_writeBmpx */
-               atom->ul = stats->SMBwriteBmpx_time;
-               break;
-           case 122:                   /* SMB.SMB_writeBs */
-               atom->ul = stats->SMBwriteBs_count;
-               break;
-           case 123:                   /* SMB.SMB_writeBs */
-               atom->ul = stats->SMBwriteBs_time;
-               break;
-           case 124:                   /* SMB.SMB_writec */
-               atom->ul = stats->SMBwritec_count;
-               break;
-           case 125:                   /* SMB.SMB_writec */
-               atom->ul = stats->SMBwritec_time;
-               break;
-           case 126:                   /* SMB.SMB_setattrE */
-               atom->ul = stats->SMBsetattrE_count;
-               break;
-           case 127:                   /* SMB.SMB_setattrE */
-               atom->ul = stats->SMBsetattrE_time;
-               break;
-           case 128:                   /* SMB.SMB_getattrE */
-               atom->ul = stats->SMBgetattrE_count;
-               break;
-           case 129:                   /* SMB.SMB_getattrE */
-               atom->ul = stats->SMBgetattrE_time;
-               break;
-           case 130:                   /* SMB.SMB_lockingX */
-               atom->ul = stats->SMBlockingX_count;
-               break;
-           case 131:                   /* SMB.SMB_lockingX */
-               atom->ul = stats->SMBlockingX_time;
-               break;
-           case 132:                   /* SMB.SMB_trans */
-               atom->ul = stats->SMBtrans_count;
-               break;
-           case 133:                   /* SMB.SMB_trans */
-               atom->ul = stats->SMBtrans_time;
-               break;
-           case 134:                   /* SMB.SMB_transs */
-               atom->ul = stats->SMBtranss_count;
-               break;
-           case 135:                   /* SMB.SMB_transs */
-               atom->ul = stats->SMBtranss_time;
-               break;
-           case 136:                   /* SMB.SMB_ioctl */
-               atom->ul = stats->SMBioctl_count;
-               break;
-           case 137:                   /* SMB.SMB_ioctl */
-               atom->ul = stats->SMBioctl_time;
-               break;
-           case 138:                   /* SMB.SMB_ioctls */
-               atom->ul = stats->SMBioctls_count;
-               break;
-           case 139:                   /* SMB.SMB_ioctls */
-               atom->ul = stats->SMBioctls_time;
-               break;
-           case 140:                   /* SMB.SMB_copy */
-               atom->ul = stats->SMBcopy_count;
-               break;
-           case 141:                   /* SMB.SMB_copy */
-               atom->ul = stats->SMBcopy_time;
-               break;
-           case 142:                   /* SMB.SMB_move */
-               atom->ul = stats->SMBmove_count;
-               break;
-           case 143:                   /* SMB.SMB_move */
-               atom->ul = stats->SMBmove_time;
-               break;
-           case 144:                   /* SMB.SMB_echo */
-               atom->ul = stats->SMBecho_count;
-               break;
-           case 145:                   /* SMB.SMB_echo */
-               atom->ul = stats->SMBecho_time;
-               break;
-           case 146:                   /* SMB.SMB_writeclose */
-               atom->ul = stats->SMBwriteclose_count;
-               break;
-           case 147:                   /* SMB.SMB_writeclose */
-               atom->ul = stats->SMBwriteclose_time;
-               break;
-           case 148:                   /* SMB.SMB_openX */
-               atom->ul = stats->SMBopenX_count;
-               break;
-           case 149:                   /* SMB.SMB_openX */
-               atom->ul = stats->SMBopenX_time;
-               break;
-           case 150:                   /* SMB.SMB_readX */
-               atom->ul = stats->SMBreadX_count;
-               break;
-           case 151:                   /* SMB.SMB_readX */
-               atom->ul = stats->SMBreadX_time;
-               break;
-           case 152:                   /* SMB.SMB_writeX */
-               atom->ul = stats->SMBwriteX_count;
-               break;
-           case 153:                   /* SMB.SMB_writeX */
-               atom->ul = stats->SMBwriteX_time;
-               break;
-           case 154:                   /* SMB.SMB_trans2 */
-               atom->ul = stats->SMBtrans2_count;
-               break;
-           case 155:                   /* SMB.SMB_trans2 */
-               atom->ul = stats->SMBtrans2_time;
-               break;
-           case 156:                   /* SMB.SMB_transs2 */
-               atom->ul = stats->SMBtranss2_count;
-               break;
-           case 157:                   /* SMB.SMB_transs2 */
-               atom->ul = stats->SMBtranss2_time;
-               break;
-           case 158:                   /* SMB.SMB_findclose */
-               atom->ul = stats->SMBfindclose_count;
-               break;
-           case 159:                   /* SMB.SMB_findclose */
-               atom->ul = stats->SMBfindclose_time;
-               break;
-           case 160:                   /* SMB.SMB_findnclose */
-               atom->ul = stats->SMBfindnclose_count;
-               break;
-           case 161:                   /* SMB.SMB_findnclose */
-               atom->ul = stats->SMBfindnclose_time;
-               break;
-           case 162:                   /* SMB.SMB_tcon */
-               atom->ul = stats->SMBtcon_count;
-               break;
-           case 163:                   /* SMB.SMB_tcon */
-               atom->ul = stats->SMBtcon_time;
-               break;
-           case 164:                   /* SMB.SMB_tdis */
-               atom->ul = stats->SMBtdis_count;
-               break;
-           case 165:                   /* SMB.SMB_tdis */
-               atom->ul = stats->SMBtdis_time;
-               break;
-           case 166:                   /* SMB.SMB_negprot */
-               atom->ul = stats->SMBnegprot_count;
-               break;
-           case 167:                   /* SMB.SMB_negprot */
-               atom->ul = stats->SMBnegprot_time;
-               break;
-           case 168:                   /* SMB.SMB_sesssetupX */
-               atom->ul = stats->SMBsesssetupX_count;
-               break;
-           case 169:                   /* SMB.SMB_sesssetupX */
-               atom->ul = stats->SMBsesssetupX_time;
-               break;
-           case 170:                   /* SMB.SMB_ulogoffX */
-               atom->ul = stats->SMBulogoffX_count;
-               break;
-           case 171:                   /* SMB.SMB_ulogoffX */
-               atom->ul = stats->SMBulogoffX_time;
-               break;
-           case 172:                   /* SMB.SMB_tconX */
-               atom->ul = stats->SMBtconX_count;
-               break;
-           case 173:                   /* SMB.SMB_tconX */
-               atom->ul = stats->SMBtconX_time;
-               break;
-           case 174:                   /* SMB.SMB_dskattr */
-               atom->ul = stats->SMBdskattr_count;
-               break;
-           case 175:                   /* SMB.SMB_dskattr */
-               atom->ul = stats->SMBdskattr_time;
-               break;
-           case 176:                   /* SMB.SMB_search */
-               atom->ul = stats->SMBsearch_count;
-               break;
-           case 177:                   /* SMB.SMB_search */
-               atom->ul = stats->SMBsearch_time;
-               break;
-           case 178:                   /* SMB.SMB_ffirst */
-               atom->ul = stats->SMBffirst_count;
-               break;
-           case 179:                   /* SMB.SMB_ffirst */
-               atom->ul = stats->SMBffirst_time;
-               break;
-           case 180:                   /* SMB.SMB_funique */
-               atom->ul = stats->SMBfunique_count;
-               break;
-           case 181:                   /* SMB.SMB_funique */
-               atom->ul = stats->SMBfunique_time;
-               break;
-           case 182:                   /* SMB.SMB_fclose */
-               atom->ul = stats->SMBfclose_count;
-               break;
-           case 183:                   /* SMB.SMB_fclose */
-               atom->ul = stats->SMBfclose_time;
-               break;
-           case 184:                   /* SMB.SMB_nttrans */
-               atom->ul = stats->SMBnttrans_count;
-               break;
-           case 185:                   /* SMB.SMB_nttrans */
-               atom->ul = stats->SMBnttrans_time;
-               break;
-           case 186:                   /* SMB.SMB_nttranss */
-               atom->ul = stats->SMBnttranss_count;
-               break;
-           case 187:                   /* SMB.SMB_nttranss */
-               atom->ul = stats->SMBnttranss_time;
-               break;
-           case 188:                   /* SMB.SMB_ntcreateX */
-               atom->ul = stats->SMBntcreateX_count;
-               break;
-           case 189:                   /* SMB.SMB_ntcreateX */
-               atom->ul = stats->SMBntcreateX_time;
-               break;
-           case 190:                   /* SMB.SMB_ntcancel */
-               atom->ul = stats->SMBntcancel_count;
-               break;
-           case 191:                   /* SMB.SMB_ntcancel */
-               atom->ul = stats->SMBntcancel_time;
-               break;
-           case 192:                   /* SMB.SMB_splopen */
-               atom->ul = stats->SMBsplopen_count;
-               break;
-           case 193:                   /* SMB.SMB_splopen */
-               atom->ul = stats->SMBsplopen_time;
-               break;
-           case 194:                   /* SMB.SMB_splwrite */
-               atom->ul = stats->SMBsplwr_count;
-               break;
-           case 195:                   /* SMB.SMB_splwrite */
-               atom->ul = stats->SMBsplwr_time;
-               break;
-           case 196:                   /* SMB.SMB_splclose */
-               atom->ul = stats->SMBsplclose_count;
-               break;
-           case 197:                   /* SMB.SMB_splclose */
-               atom->ul = stats->SMBsplclose_time;
-               break;
-           case 198:                   /* SMB.SMB_splretq */
-               atom->ul = stats->SMBsplretq_count;
-               break;
-           case 199:                   /* SMB.SMB_splretq */
-               atom->ul = stats->SMBsplretq_time;
-               break;
-           case 200:                   /* SMB.SMB_sends */
-               atom->ul = stats->SMBsends_count;
-               break;
-           case 201:                   /* SMB.SMB_sends */
-               atom->ul = stats->SMBsends_time;
-               break;
-           case 202:                   /* SMB.SMB_sendb */
-               atom->ul = stats->SMBsendb_count;
-               break;
-           case 203:                   /* SMB.SMB_sendb */
-               atom->ul = stats->SMBsendb_time;
-               break;
-           case 204:                   /* SMB.SMB_fwdname */
-               atom->ul = stats->SMBfwdname_count;
-               break;
-           case 205:                   /* SMB.SMB_fwdname */
-               atom->ul = stats->SMBfwdname_time;
-               break;
-           case 206:                   /* SMB.SMB_cancelf */
-               atom->ul = stats->SMBcancelf_count;
-               break;
-           case 207:                   /* SMB.SMB_cancelf */
-               atom->ul = stats->SMBcancelf_time;
-               break;
-           case 208:                   /* SMB.SMB_getmach */
-               atom->ul = stats->SMBgetmac_count;
-               break;
-           case 209:                   /* SMB.SMB_getmach */
-               atom->ul = stats->SMBgetmac_time;
-               break;
-           case 210:                   /* SMB.SMB_sendstrt */
-               atom->ul = stats->SMBsendstrt_count;
-               break;
-           case 211:                   /* SMB.SMB_sendstrt */
-               atom->ul = stats->SMBsendstrt_time;
-               break;
-           case 212:                   /* SMB.SMB_sendend */
-               atom->ul = stats->SMBsendend_count;
-               break;
-           case 213:                   /* SMB.SMB_sendend */
-               atom->ul = stats->SMBsendend_time;
-               break;
-           case 214:                   /* SMB.SMB_sendtxt */
-               atom->ul = stats->SMBsendtxt_count;
-               break;
-           case 215:                   /* SMB.SMB_sendtxt */
-               atom->ul = stats->SMBsendtxt_time;
-               break;
-           case 216:                   /* SMB.SMB_invalid */
-               atom->ul = stats->SMBinvalid_count;
-               break;
-           case 217:                   /* SMB.SMB_invalid */
-               atom->ul = stats->SMBinvalid_time;
-               break;
-           case 218:                   /* SMB.PATHWORK_setdir */
-               atom->ul = stats->pathworks_setdir_count;
-               break;
-           case 219:                   /* SMB.PATHWORK_setdir */
-               atom->ul = stats->pathworks_setdir_time;
-               break;
-           case 220:                   /* SMB.TRANS2_open */
-               atom->ul = stats->Trans2_open_count;
-               break;
-           case 221:                   /* SMB.TRANS2_open */
-               atom->ul = stats->Trans2_open_time;
-               break;
-           case 222:                   /* SMB.TRANS2_findfirst */
-               atom->ul = stats->Trans2_findfirst_count;
-               break;
-           case 223:                   /* SMB.TRANS2_findfirst */
-               atom->ul = stats->Trans2_findfirst_time;
-               break;
-           case 224:                   /* SMB.TRANS2_findnext */
-               atom->ul = stats->Trans2_findnext_count;
-               break;
-           case 225:                   /* SMB.TRANS2_findnext */
-               atom->ul = stats->Trans2_findnext_time;
-               break;
-           case 226:                   /* SMB.TRANS2_qfsinfo */
-               atom->ul = stats->Trans2_qfsinfo_count;
-               break;
-           case 227:                   /* SMB.TRANS2_qfsinfo */
-               atom->ul = stats->Trans2_qfsinfo_time;
-               break;
-           case 228:                   /* SMB.TRANS2_setfsinfo */
-               atom->ul = stats->Trans2_setfsinfo_count;
-               break;
-           case 229:                   /* SMB.TRANS2_setfsinfo */
-               atom->ul = stats->Trans2_setfsinfo_time;
-               break;
-           case 230:                   /* SMB.TRANS2_qpathinfo */
-               atom->ul = stats->Trans2_qpathinfo_count;
-               break;
-           case 231:                   /* SMB.TRANS2_qpathinfo */
-               atom->ul = stats->Trans2_qpathinfo_time;
-               break;
-           case 232:                   /* SMB.TRANS2_setpathinfo */
-               atom->ul = stats->Trans2_setpathinfo_count;
-               break;
-           case 233:                   /* SMB.TRANS2_setpathinfo */
-               atom->ul = stats->Trans2_setpathinfo_time;
-               break;
-           case 234:                   /* SMB.TRANS2_qfileinfo */
-               atom->ul = stats->Trans2_qfileinfo_count;
-               break;
-           case 235:                   /* SMB.TRANS2_qfileinfo */
-               atom->ul = stats->Trans2_qfileinfo_time;
-               break;
-           case 236:                   /* SMB.TRANS2_setfileinfo */
-               atom->ul = stats->Trans2_setfileinfo_count;
-               break;
-           case 237:                   /* SMB.TRANS2_setfileinfo */
-               atom->ul = stats->Trans2_setfileinfo_time;
-               break;
-           case 238:                   /* SMB.TRANS2_fsctl */
-               atom->ul = stats->Trans2_fsctl_count;
-               break;
-           case 239:                   /* SMB.TRANS2_fsctl */
-               atom->ul = stats->Trans2_fsctl_time;
-               break;
-           case 240:                   /* SMB.TRANS2_ioctl */
-               atom->ul = stats->Trans2_ioctl_count;
-               break;
-           case 241:                   /* SMB.TRANS2_ioctl */
-               atom->ul = stats->Trans2_ioctl_time;
-               break;
-           case 242:                   /* SMB.TRANS2_findnotifyfirst */
-               atom->ul = stats->Trans2_findnotifyfirst_count;
-               break;
-           case 243:                   /* SMB.TRANS2_findnotifyfirst */
-               atom->ul = stats->Trans2_findnotifyfirst_time;
-               break;
-           case 244:                   /* SMB.TRANS2_findnotifynext */
-               atom->ul = stats->Trans2_findnotifynext_count;
-               break;
-           case 245:                   /* SMB.TRANS2_findnotifynext */
-               atom->ul = stats->Trans2_findnotifynext_time;
-               break;
-           case 246:                   /* SMB.TRANS2_mkdir */
-               atom->ul = stats->Trans2_mkdir_count;
-               break;
-           case 247:                   /* SMB.TRANS2_mkdir */
-               atom->ul = stats->Trans2_mkdir_time;
-               break;
-           case 248:                   /* SMB.TRANS2_session_setup */
-               atom->ul = stats->Trans2_session_setup_count;
-               break;
-           case 249:                   /* SMB.TRANS2_session_setup */
-               atom->ul = stats->Trans2_session_setup_time;
-               break;
-           case 250:                   /* SMB.TRANS2_get_dfs_referral */
-               atom->ul = stats->Trans2_get_dfs_referral_count;
-               break;
-           case 251:                   /* SMB.TRANS2_get_dfs_referral */
-               atom->ul = stats->Trans2_get_dfs_referral_time;
-               break;
-           case 252:                   /* SMB.TRANS2_report_dfs_inconsistancy */
-               atom->ul = stats->Trans2_report_dfs_inconsistancy_count;
-               break;
-           case 253:                   /* SMB.TRANS2_report_dfs_inconsistancy */
-               atom->ul = stats->Trans2_report_dfs_inconsistancy_time;
-               break;
-           case 254:                   /* SMB.NTTRANS_create */
-               atom->ul = stats->NT_transact_create_count;
-               break;
-           case 255:                   /* SMB.NTTRANS_create */
-               atom->ul = stats->NT_transact_create_time;
-               break;
-           case 256:                   /* SMB.NTTRANS_ioctl */
-               atom->ul = stats->NT_transact_ioctl_count;
-               break;
-           case 257:                   /* SMB.NTTRANS_ioctl */
-               atom->ul = stats->NT_transact_ioctl_time;
-               break;
-           case 258:                   /* SMB.NTTRANS_set_security_desc */
-               atom->ul = stats->NT_transact_set_security_desc_count;
-               break;
-           case 259:                   /* SMB.NTTRANS_set_security_desc */
-               atom->ul = stats->NT_transact_set_security_desc_time;
-               break;
-           case 260:                   /* SMB.NTTRANS_notify_change */
-               atom->ul = stats->NT_transact_notify_change_count;
-               break;
-           case 261:                   /* SMB.NTTRANS_notify_change */
-               atom->ul = stats->NT_transact_notify_change_time;
-               break;
-           case 262:                   /* SMB.NTTRANS_rename */
-               atom->ul = stats->NT_transact_rename_count;
-               break;
-           case 263:                   /* SMB.NTTRANS_rename */
-               atom->ul = stats->NT_transact_rename_time;
-               break;
-           case 264:                   /* SMB.NTTRANS_query_security_desc */
-               atom->ul = stats->NT_transact_query_security_desc_count;
-               break;
-           case 265:                   /* SMB.NTTRANS_query_security_desc */
-               atom->ul = stats->NT_transact_query_security_desc_time;
-               break;
-           default:
-               return PM_ERR_PMID;
+    else if (idp->cluster == 3) {      /* counts */
+       if (idp->item == 0) {
+           if (inst < indomtab[COUNT_TIME_INDOM].it_numinst) {
+               unsigned *p;
+
+               p = (unsigned *)((unsigned)stats + samba_counts[inst].offset);
+               atom->ul = *p;
+           }
+           else
+               return PM_ERR_INST;
        }
+       else
+           return PM_ERR_PMID;
+    }
+    else if (idp->cluster == 4) {      /* times */
+       if (idp->item == 0) {
+           if (inst < indomtab[COUNT_TIME_INDOM].it_numinst) {
+               unsigned *p;
+
+               p = (unsigned *)((unsigned)stats + samba_times[inst].offset);
+               atom->ul = *p;
+           }
+           else
+               return PM_ERR_INST;
+       }
+       else
+           return PM_ERR_PMID;
+    }
+    else if (idp->cluster == 5) {      /* bytes */
+       if (idp->item == 0) {
+           if (inst < indomtab[BYTE_INDOM].it_numinst) {
+               unsigned *p;
+
+               p = (unsigned *)((unsigned)stats + samba_bytes[inst].offset);
+               atom->ul = *p;
+           }
+           else
+               return PM_ERR_INST;
+       }
+       else
+           return PM_ERR_PMID;
     }
     else
        return PM_ERR_PMID;
@@ -1707,12 +291,11 @@ samba_fetchCallBack(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom)
 void 
 samba_init(pmdaInterface *dp)
 {
+    int inst_count, i;
+
     if (dp->status != 0)
        return;
 
-    pmdaSetFetchCallBack(dp, samba_fetchCallBack);
-    pmdaInit(dp, NULL, 0, metrictab, sizeof(metrictab)/sizeof(metrictab[0]));
-
     if ((shmid = shmget(PROF_SHMEM_KEY, 0, 0)) == -1) {
        fprintf(stderr, "shmid: %s\n", strerror(errno));
        fprintf(stderr, "samba not compiled with profile support or not running\n");
@@ -1724,6 +307,41 @@ samba_init(pmdaInterface *dp)
        exit(1);
     }
 
+/*
+ * Initialize lists of instances
+ */
+
+    inst_count = sizeof(samba_counts)/sizeof(samba_counts[0]);
+    counttime = (pmdaInstid *)malloc(inst_count * sizeof(pmdaInstid));
+    if (counttime == NULL) {
+       __pmNoMem("count&time",inst_count * sizeof(pmdaInstid),PM_FATAL_ERR);
+       /* NOTREACHED*/
+    }
+    for (i = 0; i < inst_count; i++) {
+       counttime[i].i_inst = i;
+       counttime[i].i_name = samba_counts[i].name;
+    }
+    indomtab[COUNT_TIME_INDOM].it_numinst = inst_count;
+    indomtab[COUNT_TIME_INDOM].it_set = counttime;
+
+    inst_count = sizeof(samba_bytes)/sizeof(samba_bytes[0]);
+    bytes = (pmdaInstid *)malloc(inst_count * sizeof(pmdaInstid));
+    if (bytes == NULL) {
+       __pmNoMem("bytes",inst_count * sizeof(pmdaInstid),PM_FATAL_ERR);
+       /* NOTREACHED*/
+    }
+    for (i = 0; i < inst_count; i++) {
+       bytes[i].i_inst = i;
+       bytes[i].i_name = samba_bytes[i].name;
+    }
+    indomtab[BYTE_INDOM].it_numinst = inst_count;
+    indomtab[BYTE_INDOM].it_set = bytes;
+
+
+    pmdaSetFetchCallBack(dp, samba_fetchCallBack);
+    pmdaInit(dp, indomtab, sizeof(indomtab)/sizeof(indomtab[0]), 
+            metrictab, sizeof(metrictab)/sizeof(metrictab[0]));
+
     /* validate the data */
     if (!shmheader)    /* not mapped yet */
        fprintf(stderr, "samba_init: shmem not mapped\n");