restructure PCP metrics (merge from 2.2 branch)
authorHerb Lewis <herb@samba.org>
Thu, 9 Nov 2000 20:45:09 +0000 (20:45 +0000)
committerHerb Lewis <herb@samba.org>
Thu, 9 Nov 2000 20:45:09 +0000 (20:45 +0000)
pcp/Makefile
pcp/README
pcp/help
pcp/mkheader.pl [new file with mode: 0755]
pcp/pmns
pcp/samba.c

index 96d2b79cca422943d14d7f118ae3fb078515c9a2..e01731b2565efcab0d0513ab07da1d6c868baa3c 100644 (file)
@@ -47,7 +47,7 @@ CFLAGS        = $(DEBUG)
 LDOPTS =
 LDLIBS = -lpcp_pmda -lpcp
 DSOOPTS        = -shared
-LDIRT  = so_locations *.log help.dir help.pag *.pmda_$(IAM).so
+LDIRT  = metrics.h so_locations *.log help.dir help.pag *.pmda_$(IAM).so
 
 INSTALL        = install
 CC     = cc
@@ -56,11 +56,14 @@ default: $(TARGETS)
 
 install:       default
 
-$(CMDTARGET):  profile.h $(CFILES)
+$(CMDTARGET):  profile.h metrics.h $(CFILES)
        $(CC) $(CFLAGS) $(CFILES) $(LDOPTS) $(LDLIBS) -o $@
 
-$(LIBTARGET):  profile.h $(CFILES)
+$(LIBTARGET):  profile.h metrics.h $(CFILES)
        $(CC) $(CFLAGS) $(DSOOPTS) $(LDOPTS) $(CFILES) $(LDLIBS) -o $@
 
+metrics.h:     profile.h mkheader.pl
+       ./mkheader.pl
+
 clobber clean:
        rm -f $(LDIRT) $(TARGETS)
index 81adb5df3bf435b7dc0fd18ba6734fe47738d536..97d8125a53eb0d0cdccc837376329751ddd6da4c 100644 (file)
@@ -7,7 +7,7 @@ information about transaction activity from the smb daemon.
 
 Note:
        This PMDA may be remade from source and hence requires 
-       a C compiler to be installed.
+       a C compiler and Perl to be installed.
 
        Uses of make(1) may fail (without removing or clobbering files)
        if the C compiler cannot be found.  This is most likely to
@@ -32,7 +32,7 @@ Installation
 
  +  # mkdir /var/pcp/pmdas/samba
  +  # cp * /var/pcp/pmdas/samba
- +  # cp ../source/includes/profile.h /var/pcp/pmdas/samba
+ +  # cp ../source/include/profile.h /var/pcp/pmdas/samba
  +  # cd /var/pcp/pmdas/samba
 
  +  Check that there is no clash in the Performance Metrics Domain
@@ -77,7 +77,7 @@ De-installation
 Making something happen
 =======================
 
-The application ./smbd updates the shared memory segment to add
+The application "smbd" updates the shared memory segment to add
 profile information about smbd. By default updating is disabled.
 To start updating of the shared memory segment you need to run the
 smbcontrol command to turn on profiling for one or more smbd processes
index d5a6d8f7610d03d39a0979be489ca983841c9927..cc4ff33342fe3feb305dfeeeefbc32a6900fa377 100644 (file)
--- a/pcp/help
+++ b/pcp/help
 
 @ samba.smbd.uid_changes Count of times effective uid changed
 
-@ samba.syscalls.opendir Number of calls to opendir system call
-
-@ samba.syscalls.opendir_time Time spent executing opendir system call
-
-@ samba.syscalls.readdir Number of calls to readdir system call
-
-@ samba.syscalls.readdir_time Time spent executing readdir system call
-
-@ samba.syscalls.mkdir Number of calls to mkdir system call
-
-@ samba.syscalls.mkdir_time Time spent executing mkdir system call
-
-@ samba.syscalls.rmdir Number of calls to rmdir system call
-
-@ samba.syscalls.rmdir_time Time spent executing rmdir system call
-
-@ samba.syscalls.closedir Number of calls to closedir system call
-
-@ samba.syscalls.closedir_time Time spent executing closedir system call
-
-@ samba.syscalls.open Number of calls to open system call
-
-@ samba.syscalls.open_time Time spent executing open system call
-
-@ samba.syscalls.close Number of calls to close system call
-
-@ samba.syscalls.close_time Time spent executing close system call
-
-@ samba.syscalls.read Number of calls to read system call
-
-@ samba.syscalls.read_time Time spent executing read system call
-
-@ samba.syscalls.read_bytes Number of bytes read by read system call
-
-@ samba.syscalls.write Number of calls to write system call
-
-@ samba.syscalls.write_time Time spent executing write system call
-
-@ samba.syscalls.write_bytes Number of bytes written by write system call
-
-@ samba.syscalls.lseek Number of calls to lseek system call
-
-@ samba.syscalls.lseek_time Time spent executing lseek system call
-
-@ samba.syscalls.rename Number of calls to rename system call
-
-@ samba.syscalls.rename_time Time spent executing rename system call
-
-@ samba.syscalls.fsync Number of calls to fsync system call
-
-@ samba.syscalls.fsync_time Time spent executing fsync system call
-
-@ samba.syscalls.stat Number of calls to stat system call
-
-@ samba.syscalls.stat_time Time spent executing stat system call
-
-@ samba.syscalls.fstat Number of calls to fstat system call
-
-@ samba.syscalls.fstat_time Time spent executing fstat system call
-
-@ samba.syscalls.lstat Number of calls to lstat system call
-
-@ samba.syscalls.lstat_time Time spent executing lstat system call
-
-@ samba.syscalls.unlink Number of calls to unlink system call
-
-@ samba.syscalls.unlink_time Time spent executing unlink system call
-
-@ samba.syscalls.chmod Number of calls to chmod system call
-
-@ samba.syscalls.chmod_time Time spent executing chmod system call
-
-@ samba.syscalls.chown Number of calls to chown system call
-
-@ samba.syscalls.chown_time Time spent executing chown system call
-
-@ samba.syscalls.chdir Number of calls to chdir system call
-
-@ samba.syscalls.chdir_time Time spent executing chdir system call
-
-@ samba.syscalls.getwd Number of calls to getwd system call
-
-@ samba.syscalls.getwd_time Time spent executing getwd system call
-
-@ samba.syscalls.utime Number of calls to utime system call
-
-@ samba.syscalls.utime_time Time spent executing utime system call
-
-@ samba.syscalls.ftruncate Number of calls to ftruncate system call
-
-@ samba.syscalls.ftruncate_time Time spent executing ftruncate system call
-
-@ samba.syscalls.fcntl_lock Number of calls to fcntl_lock system call
-
-@ samba.syscalls.fcntl_lock_time Time spent executing fcntl_lock system call
-
 @ samba.statcache.lookups Number of lookups in stat cache
 
 @ samba.statcache.misses Number of times stat cache lookup missed
 
 @ samba.writecache.size_change_flush
 
-@ samba.SMB.SMB_mkdir
-@ samba.SMB.SMB_mkdir_time
-@ samba.SMB.SMB_rmdir
-@ samba.SMB.SMB_rmdir_time
-@ samba.SMB.SMB_open
-@ samba.SMB.SMB_open_time
-@ samba.SMB.SMB_create
-@ samba.SMB.SMB_create_time
-@ samba.SMB.SMB_close
-@ samba.SMB.SMB_close_time
-@ samba.SMB.SMB_flush
-@ samba.SMB.SMB_flush_time
-@ samba.SMB.SMB_unlink
-@ samba.SMB.SMB_unlink_time
-@ samba.SMB.SMB_mv
-@ samba.SMB.SMB_mv_time
-@ samba.SMB.SMB_getattr
-@ samba.SMB.SMB_getattr_time
-@ samba.SMB.SMB_setattr
-@ samba.SMB.SMB_setattr_time
-@ samba.SMB.SMB_read
-@ samba.SMB.SMB_read_time
-@ samba.SMB.SMB_write
-@ samba.SMB.SMB_write_time
-@ samba.SMB.SMB_lock
-@ samba.SMB.SMB_lock_time
-@ samba.SMB.SMB_unlock
-@ samba.SMB.SMB_unlock_time
-@ samba.SMB.SMB_ctemp
-@ samba.SMB.SMB_ctemp_time
-@ samba.SMB.SMB_mknew
-@ samba.SMB.SMB_mknew_time
-@ samba.SMB.SMB_chkpth
-@ samba.SMB.SMB_chkpth_time
-@ samba.SMB.SMB_exit
-@ samba.SMB.SMB_exit_time
-@ samba.SMB.SMB_lseek
-@ samba.SMB.SMB_lseek_time
-@ samba.SMB.SMB_lockread
-@ samba.SMB.SMB_lockread_time
-@ samba.SMB.SMB_writeunlock
-@ samba.SMB.SMB_writeunlock_time
-@ samba.SMB.SMB_readBraw
-@ samba.SMB.SMB_readBraw_time
-@ samba.SMB.SMB_readBmpx
-@ samba.SMB.SMB_readBmpx_time
-@ samba.SMB.SMB_readBs
-@ samba.SMB.SMB_readBs_time
-@ samba.SMB.SMB_writeBraw
-@ samba.SMB.SMB_writeBraw_time
-@ samba.SMB.SMB_writeBmpx
-@ samba.SMB.SMB_writeBmpx_time
-@ samba.SMB.SMB_writeBs
-@ samba.SMB.SMB_writeBs_time
-@ samba.SMB.SMB_writec
-@ samba.SMB.SMB_writec_time
-@ samba.SMB.SMB_setattrE
-@ samba.SMB.SMB_setattrE_time
-@ samba.SMB.SMB_getattrE
-@ samba.SMB.SMB_getattrE_time
-@ samba.SMB.SMB_lockingX
-@ samba.SMB.SMB_lockingX_time
-@ samba.SMB.SMB_trans
-@ samba.SMB.SMB_trans_time
-@ samba.SMB.SMB_transs
-@ samba.SMB.SMB_transs_time
-@ samba.SMB.SMB_ioctl
-@ samba.SMB.SMB_ioctl_time
-@ samba.SMB.SMB_ioctls
-@ samba.SMB.SMB_ioctls_time
-@ samba.SMB.SMB_copy
-@ samba.SMB.SMB_copy_time
-@ samba.SMB.SMB_move
-@ samba.SMB.SMB_move_time
-@ samba.SMB.SMB_echo
-@ samba.SMB.SMB_echo_time
-@ samba.SMB.SMB_writeclose
-@ samba.SMB.SMB_writeclose_time
-@ samba.SMB.SMB_openX
-@ samba.SMB.SMB_openX_time
-@ samba.SMB.SMB_readX
-@ samba.SMB.SMB_readX_time
-@ samba.SMB.SMB_writeX
-@ samba.SMB.SMB_writeX_time
-@ samba.SMB.SMB_trans2
-@ samba.SMB.SMB_trans2_time
-@ samba.SMB.SMB_transs2
-@ samba.SMB.SMB_transs2_time
-@ samba.SMB.SMB_findclose
-@ samba.SMB.SMB_findclose_time
-@ samba.SMB.SMB_findNclose
-@ samba.SMB.SMB_findNclose_time
-@ samba.SMB.SMB_tcon
-@ samba.SMB.SMB_tcon_time
-@ samba.SMB.SMB_tdis
-@ samba.SMB.SMB_tdis_time
-@ samba.SMB.SMB_negprot
-@ samba.SMB.SMB_negprot_time
-@ samba.SMB.SMB_sessetupX
-@ samba.SMB.SMB_sessetupX_time
-@ samba.SMB.SMB_ulogoffX
-@ samba.SMB.SMB_ulogoffX_time
-@ samba.SMB.SMB_tconX
-@ samba.SMB.SMB_tconX_time
-@ samba.SMB.SMB_dskattr
-@ samba.SMB.SMB_dskattr_time
-@ samba.SMB.SMB_search
-@ samba.SMB.SMB_search_time
-@ samba.SMB.SMB_ffirst
-@ samba.SMB.SMB_ffirst_time
-@ samba.SMB.SMB_funique
-@ samba.SMB.SMB_funique_time
-@ samba.SMB.SMB_fclose
-@ samba.SMB.SMB_fclose_time
-@ samba.SMB.SMB_NTtrans
-@ samba.SMB.SMB_NTtrans_time
-@ samba.SMB.SMB_NTtranss
-@ samba.SMB.SMB_NTtranss_time
-@ samba.SMB.SMB_NTcreateX
-@ samba.SMB.SMB_NTcreateX_time
-@ samba.SMB.SMB_NTcancel
-@ samba.SMB.SMB_NTcancel_time
-@ samba.SMB.SMB_splopen
-@ samba.SMB.SMB_splopen_time
-@ samba.SMB.SMB_splwrite
-@ samba.SMB.SMB_splwrite_time
-@ samba.SMB.SMB_splclose
-@ samba.SMB.SMB_splclose_time
-@ samba.SMB.SMB_splretq
-@ samba.SMB.SMB_splretq_time
-@ samba.SMB.SMB_sends
-@ samba.SMB.SMB_sends_time
-@ samba.SMB.SMB_sendb
-@ samba.SMB.SMB_sendb_time
-@ samba.SMB.SMB_fwdname
-@ samba.SMB.SMB_fwdname_time
-@ samba.SMB.SMB_cancelf
-@ samba.SMB.SMB_cancelf_time
-@ samba.SMB.SMB_getmach
-@ samba.SMB.SMB_getmach_time
-@ samba.SMB.SMB_sendstrt
-@ samba.SMB.SMB_sendstrt_time
-@ samba.SMB.SMB_sendend
-@ samba.SMB.SMB_sendend_time
-@ samba.SMB.SMB_sendtxt
-@ samba.SMB.SMB_sendtxt_time
-@ samba.SMB.SMB_invalid
-@ samba.SMB.SMB_invalid_time
-@ samba.SMB.PATHWORK_setdir
-@ samba.SMB.PATHWORK_setdir_time
-@ samba.SMB.TRANS2_open
-@ samba.SMB.TRANS2_open_time
-@ samba.SMB.TRANS2_ffirst
-@ samba.SMB.TRANS2_ffirst_time
-@ samba.SMB.TRANS2_fnext
-@ samba.SMB.TRANS2_fnext_time
-@ samba.SMB.TRANS2_qfsinfo
-@ samba.SMB.TRANS2_qfsinfo_time
-@ samba.SMB.TRANS2_sfsinfo
-@ samba.SMB.TRANS2_sfsinfo_time
-@ samba.SMB.TRANS2_qpathinfo
-@ samba.SMB.TRANS2_qpathinfo_time
-@ samba.SMB.TRANS2_spathinfo
-@ samba.SMB.TRANS2_spathinfo_time
-@ samba.SMB.TRANS2_qfileinfo
-@ samba.SMB.TRANS2_qfileinfo_time
-@ samba.SMB.TRANS2_sfileinfo
-@ samba.SMB.TRANS2_sfileinfo_time
-@ samba.SMB.TRANS2_fsctl
-@ samba.SMB.TRANS2_fsctl_time
-@ samba.SMB.TRANS2_ioctl
-@ samba.SMB.TRANS2_ioctl_time
-@ samba.SMB.TRANS2_fnotifyfirst
-@ samba.SMB.TRANS2_fnotifyfirst_time
-@ samba.SMB.TRANS2_fnotifynext
-@ samba.SMB.TRANS2_fnotifynext_time
-@ samba.SMB.TRANS2_mkdir
-@ samba.SMB.TRANS2_mkdir_time
-@ samba.SMB.TRANS2_sessetup
-@ samba.SMB.TRANS2_sessetup_time
-@ samba.SMB.TRANS2_getDFSref
-@ samba.SMB.TRANS2_getDFSref_time
-@ samba.SMB.TRANS2_rptDFSinconsist
-@ samba.SMB.TRANS2_rptDFSinconsist_time
-@ samba.SMB.NTTRANS_create
-@ samba.SMB.NTTRANS_create_time
-@ samba.SMB.NTTRANS_ioctl
-@ samba.SMB.NTTRANS_ioctl_time
-@ samba.SMB.NTTRANS_setsecdesc
-@ samba.SMB.NTTRANS_setsecdesc_time
-@ samba.SMB.NTTRANS_notifychange
-@ samba.SMB.NTTRANS_notifychange_time
-@ samba.SMB.NTTRANS_rename
-@ samba.SMB.NTTRANS_rename_time
-@ samba.SMB.NTTRANS_qsecdesc
-@ samba.SMB.NTTRANS_qsecdesc_time
+@ samba.bytes cumulative number of bytes read or written
diff --git a/pcp/mkheader.pl b/pcp/mkheader.pl
new file mode 100755 (executable)
index 0000000..ad069c5
--- /dev/null
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+
+
+open(PROFILE,"profile.h") || die "Unable to open profile.h\n";
+@profile = <PROFILE>;
+close PROFILE;
+
+open(METRICS,"> metrics.h") || die "Unable to open metrics.h for output\n";
+
+print METRICS "#define COUNT_TIME_INDOM 0\n";
+print METRICS "#define BYTE_INDOM       1\n\n";
+print METRICS "#define FIELD_OFF(x) (unsigned)\&(((struct profile_stats *)NULL)->x)\n\n";
+print METRICS "typedef struct {\n";
+print METRICS "\tchar *name;\n";
+print METRICS "\tunsigned offset;\n";
+print METRICS "} samba_instance;\n\n";
+
+@instnames = grep(/unsigned .*_time;/,@profile);
+foreach $instnames (@instnames) {
+    chomp $instnames;
+    $instnames =~ s/^.*unsigned (.*)_time.*$/$1/;
+}
+
+print METRICS "static samba_instance samba_counts[] = {";
+$first = 1;
+foreach $1 (@instnames) {
+    if ($first == 1) {
+       $first = 0;
+       print METRICS "\n";
+    } else {
+       print METRICS ",\n";
+    }
+    print METRICS "\t{\"$1\", FIELD_OFF($1_count)}";
+}
+print METRICS "\n};\n\n";
+print METRICS "static samba_instance samba_times[] = {";
+$first = 1;
+foreach $1 (@instnames) {
+    if ($first == 1) {
+       $first = 0;
+       print METRICS "\n";
+    } else {
+       print METRICS ",\n";
+    }
+    print METRICS "\t{\"$1\", FIELD_OFF($1_time)}";
+}
+print METRICS "\n};\n\n";
+print METRICS "static samba_instance samba_bytes[] = {";
+@instnames = grep(/unsigned .*_bytes;/,@profile);
+$first = 1;
+foreach $_ (@instnames) {
+    if ($first == 1) {
+       $first = 0;
+       print METRICS "\n";
+    } else {
+       print METRICS ",\n";
+    }
+    /^.*unsigned (.*)_bytes.*$/;
+    print METRICS "\t{\"$1\", FIELD_OFF($1_bytes)}";
+}
+print METRICS "\n};\n";
+
+close METRICS
index a0d761c3597b0f1013d9eabdf12c29c400d9c1bd..1f3dd3934ee433851b37849bcea1633893d6690d 100644 (file)
--- a/pcp/pmns
+++ b/pcp/pmns
@@ -5,10 +5,11 @@
 
 samba {
        smbd
-       syscalls
        statcache
        writecache
-       SMB
+       counts                          SAMBA:3:0
+       times                           SAMBA:4:0
+       bytes                           SAMBA:5:0
 }
 
 samba.smbd {
@@ -16,281 +17,29 @@ samba.smbd {
        uid_changes                     SAMBA:0:1
 }
 
-samba.syscalls {
-       opendir                         SAMBA:1:2
-       opendir_time                    SAMBA:1:3
-       readdir                         SAMBA:1:4
-       readdir_time                    SAMBA:1:5
-       mkdir                           SAMBA:1:6
-       mkdir_time                      SAMBA:1:7
-       rmdir                           SAMBA:1:8
-       rmdir_time                      SAMBA:1:9
-       closedir                        SAMBA:1:10
-       closedir_time                   SAMBA:1:11
-       open                            SAMBA:1:12
-       open_time                       SAMBA:1:13
-       close                           SAMBA:1:14
-       close_time                      SAMBA:1:15
-       read                            SAMBA:1:16
-       read_time                       SAMBA:1:17
-       read_bytes                      SAMBA:1:18
-       write                           SAMBA:1:19
-       write_time                      SAMBA:1:20
-       write_bytes                     SAMBA:1:21
-       lseek                           SAMBA:1:22
-       lseek_time                      SAMBA:1:23
-       rename                          SAMBA:1:24
-       rename_time                     SAMBA:1:25
-       fsync                           SAMBA:1:26
-       fsync_time                      SAMBA:1:27
-       stat                            SAMBA:1:28
-       stat_time                       SAMBA:1:29
-       fstat                           SAMBA:1:30
-       fstat_time                      SAMBA:1:31
-       lstat                           SAMBA:1:32
-       lstat_time                      SAMBA:1:33
-       unlink                          SAMBA:1:34
-       unlink_time                     SAMBA:1:35
-       chmod                           SAMBA:1:36
-       chmod_time                      SAMBA:1:37
-       chown                           SAMBA:1:38
-       chown_time                      SAMBA:1:39
-       chdir                           SAMBA:1:40
-       chdir_time                      SAMBA:1:41
-       getwd                           SAMBA:1:42
-       getwd_time                      SAMBA:1:43
-       utime                           SAMBA:1:44
-       utime_time                      SAMBA:1:45
-       ftruncate                       SAMBA:1:46
-       ftruncate_time                  SAMBA:1:47
-       fcntl_lock                      SAMBA:1:48
-       fcntl_lock_time                 SAMBA:1:49
-}
-
 samba.statcache {
-       lookups                         SAMBA:2:50
-       misses                          SAMBA:2:51
-       hits                            SAMBA:2:52
+       lookups                         SAMBA:1:0
+       misses                          SAMBA:1:1
+       hits                            SAMBA:1:2
 }
 
 samba.writecache {
-       num_caches                      SAMBA:3:53
-       allocated_caches                SAMBA:3:54
-       read_hits                       SAMBA:3:55
-       total_writes                    SAMBA:3:56
-       init_writes                     SAMBA:3:57
-       abutted_writes                  SAMBA:3:58
-       perfect_writes                  SAMBA:3:59
-       direct_writes                   SAMBA:3:60
-       non_oplock_writes               SAMBA:3:61
-       seek_flush                      SAMBA:3:62
-       read_flush                      SAMBA:3:63
-       write_flush                     SAMBA:3:64
-       readraw_flush                   SAMBA:3:65
-       oplock_rel_flush                SAMBA:3:66
-       close_flush                     SAMBA:3:67
-       sync_flush                      SAMBA:3:68
-       size_change_flush               SAMBA:3:69
+       num_caches                      SAMBA:2:0
+       allocated_caches                SAMBA:2:1
+       read_hits                       SAMBA:2:2
+       total_writes                    SAMBA:2:3
+       init_writes                     SAMBA:2:4
+       abutted_writes                  SAMBA:2:5
+       perfect_writes                  SAMBA:2:6
+       direct_writes                   SAMBA:2:7
+       non_oplock_writes               SAMBA:2:8
+       seek_flush                      SAMBA:2:9
+       read_flush                      SAMBA:2:10
+       write_flush                     SAMBA:2:11
+       readraw_flush                   SAMBA:2:12
+       oplock_rel_flush                SAMBA:2:13
+       close_flush                     SAMBA:2:14
+       sync_flush                      SAMBA:2:15
+       size_change_flush               SAMBA:2:16
 }
 
-samba.SMB {
-       SMB_mkdir                       SAMBA:4:70
-       SMB_mkdir_time                  SAMBA:4:71
-       SMB_rmdir                       SAMBA:4:72
-       SMB_rmdir_time                  SAMBA:4:73
-       SMB_open                        SAMBA:4:74
-       SMB_open_time                   SAMBA:4:75
-       SMB_create                      SAMBA:4:76
-       SMB_create_time                 SAMBA:4:77
-       SMB_close                       SAMBA:4:78
-       SMB_close_time                  SAMBA:4:79
-       SMB_flush                       SAMBA:4:80
-       SMB_flush_time                  SAMBA:4:81
-       SMB_unlink                      SAMBA:4:82
-       SMB_unlink_time                 SAMBA:4:83
-       SMB_mv                          SAMBA:4:84
-       SMB_mv_time                     SAMBA:4:85
-       SMB_getattr                     SAMBA:4:86
-       SMB_getattr_time                SAMBA:4:87
-       SMB_setattr                     SAMBA:4:88
-       SMB_setattr_time                SAMBA:4:89
-       SMB_read                        SAMBA:4:90
-       SMB_read_time                   SAMBA:4:91
-       SMB_write                       SAMBA:4:92
-       SMB_write_time                  SAMBA:4:93
-       SMB_lock                        SAMBA:4:94
-       SMB_lock_time                   SAMBA:4:95
-       SMB_unlock                      SAMBA:4:96
-       SMB_unlock_time                 SAMBA:4:97
-       SMB_ctemp                       SAMBA:4:98
-       SMB_ctemp_time                  SAMBA:4:99
-       SMB_mknew                       SAMBA:4:100
-       SMB_mknew_time                  SAMBA:4:101
-       SMB_chkpth                      SAMBA:4:102
-       SMB_chkpth_time                 SAMBA:4:103
-       SMB_exit                        SAMBA:4:104
-       SMB_exit_time                   SAMBA:4:105
-       SMB_lseek                       SAMBA:4:106
-       SMB_lseek_time                  SAMBA:4:107
-       SMB_lockread                    SAMBA:4:108
-       SMB_lockread_time               SAMBA:4:109
-       SMB_writeunlock                 SAMBA:4:110
-       SMB_writeunlock_time            SAMBA:4:111
-       SMB_readBraw                    SAMBA:4:112
-       SMB_readBraw_time               SAMBA:4:113
-       SMB_readBmpx                    SAMBA:4:114
-       SMB_readBmpx_time               SAMBA:4:115
-       SMB_readBs                      SAMBA:4:116
-       SMB_readBs_time                 SAMBA:4:117
-       SMB_writeBraw                   SAMBA:4:118
-       SMB_writeBraw_time              SAMBA:4:119
-       SMB_writeBmpx                   SAMBA:4:120
-       SMB_writeBmpx_time              SAMBA:4:121
-       SMB_writeBs                     SAMBA:4:122
-       SMB_writeBs_time                SAMBA:4:123
-       SMB_writec                      SAMBA:4:124
-       SMB_writec_time                 SAMBA:4:125
-       SMB_setattrE                    SAMBA:4:126
-       SMB_setattrE_time               SAMBA:4:127
-       SMB_getattrE                    SAMBA:4:128
-       SMB_getattrE_time               SAMBA:4:129
-       SMB_lockingX                    SAMBA:4:130
-       SMB_lockingX_time               SAMBA:4:131
-       SMB_trans                       SAMBA:4:132
-       SMB_trans_time                  SAMBA:4:133
-       SMB_transs                      SAMBA:4:134
-       SMB_transs_time                 SAMBA:4:135
-       SMB_ioctl                       SAMBA:4:136
-       SMB_ioctl_time                  SAMBA:4:137
-       SMB_ioctls                      SAMBA:4:138
-       SMB_ioctls_time                 SAMBA:4:139
-       SMB_copy                        SAMBA:4:140
-       SMB_copy_time                   SAMBA:4:141
-       SMB_move                        SAMBA:4:142
-       SMB_move_time                   SAMBA:4:143
-       SMB_echo                        SAMBA:4:144
-       SMB_echo_time                   SAMBA:4:145
-       SMB_writeclose                  SAMBA:4:146
-       SMB_writeclose_time             SAMBA:4:147
-       SMB_openX                       SAMBA:4:148
-       SMB_openX_time                  SAMBA:4:149
-       SMB_readX                       SAMBA:4:150
-       SMB_readX_time                  SAMBA:4:151
-       SMB_writeX                      SAMBA:4:152
-       SMB_writeX_time                 SAMBA:4:153
-       SMB_trans2                      SAMBA:4:154
-       SMB_trans2_time                 SAMBA:4:155
-       SMB_transs2                     SAMBA:4:156
-       SMB_transs2_time                SAMBA:4:157
-       SMB_findclose                   SAMBA:4:158
-       SMB_findclose_time              SAMBA:4:159
-       SMB_findNclose                  SAMBA:4:160
-       SMB_findNclose_time             SAMBA:4:161
-       SMB_tcon                        SAMBA:4:162
-       SMB_tcon_time                   SAMBA:4:163
-       SMB_tdis                        SAMBA:4:164
-       SMB_tdis_time                   SAMBA:4:165
-       SMB_negprot                     SAMBA:4:166
-       SMB_negprot_time                SAMBA:4:167
-       SMB_sessetupX                   SAMBA:4:168
-       SMB_sessetupX_time              SAMBA:4:169
-       SMB_ulogoffX                    SAMBA:4:170
-       SMB_ulogoffX_time               SAMBA:4:171
-       SMB_tconX                       SAMBA:4:172
-       SMB_tconX_time                  SAMBA:4:173
-       SMB_dskattr                     SAMBA:4:174
-       SMB_dskattr_time                SAMBA:4:175
-       SMB_search                      SAMBA:4:176
-       SMB_search_time                 SAMBA:4:177
-       SMB_ffirst                      SAMBA:4:178
-       SMB_ffirst_time                 SAMBA:4:179
-       SMB_funique                     SAMBA:4:180
-       SMB_funique_time                SAMBA:4:181
-       SMB_fclose                      SAMBA:4:182
-       SMB_fclose_time                 SAMBA:4:183
-       SMB_NTtrans                     SAMBA:4:184
-       SMB_NTtrans_time                SAMBA:4:185
-       SMB_NTtranss                    SAMBA:4:186
-       SMB_NTtranss_time               SAMBA:4:187
-       SMB_NTcreateX                   SAMBA:4:188
-       SMB_NTcreateX_time              SAMBA:4:189
-       SMB_NTcancel                    SAMBA:4:190
-       SMB_NTcancel_time               SAMBA:4:191
-       SMB_splopen                     SAMBA:4:192
-       SMB_splopen_time                SAMBA:4:193
-       SMB_splwrite                    SAMBA:4:194
-       SMB_splwrite_time               SAMBA:4:195
-       SMB_splclose                    SAMBA:4:196
-       SMB_splclose_time               SAMBA:4:197
-       SMB_splretq                     SAMBA:4:198
-       SMB_splretq_time                SAMBA:4:199
-       SMB_sends                       SAMBA:4:200
-       SMB_sends_time                  SAMBA:4:201
-       SMB_sendb                       SAMBA:4:202
-       SMB_sendb_time                  SAMBA:4:203
-       SMB_fwdname                     SAMBA:4:204
-       SMB_fwdname_time                SAMBA:4:205
-       SMB_cancelf                     SAMBA:4:206
-       SMB_cancelf_time                SAMBA:4:207
-       SMB_getmach                     SAMBA:4:208
-       SMB_getmach_time                SAMBA:4:209
-       SMB_sendstrt                    SAMBA:4:210
-       SMB_sendstrt_time               SAMBA:4:211
-       SMB_sendend                     SAMBA:4:212
-       SMB_sendend_time                SAMBA:4:213
-       SMB_sendtxt                     SAMBA:4:214
-       SMB_sendtxt_time                SAMBA:4:215
-       SMB_invalid                     SAMBA:4:216
-       SMB_invalid_time                SAMBA:4:217
-
-       PATHWORK_setdir                 SAMBA:4:218
-       PATHWORK_setdir_time            SAMBA:4:219
-
-       TRANS2_open                     SAMBA:4:220
-       TRANS2_open_time                SAMBA:4:221
-       TRANS2_ffirst                   SAMBA:4:222
-       TRANS2_ffirst_time              SAMBA:4:223
-       TRANS2_fnext                    SAMBA:4:224
-       TRANS2_fnext_time               SAMBA:4:225
-       TRANS2_qfsinfo                  SAMBA:4:226
-       TRANS2_qfsinfo_time             SAMBA:4:227
-       TRANS2_sfsinfo                  SAMBA:4:228
-       TRANS2_sfsinfo_time             SAMBA:4:229
-       TRANS2_qpathinfo                SAMBA:4:230
-       TRANS2_qpathinfo_time           SAMBA:4:231
-       TRANS2_spathinfo                SAMBA:4:232
-       TRANS2_spathinfo_time           SAMBA:4:233
-       TRANS2_qfileinfo                SAMBA:4:234
-       TRANS2_qfileinfo_time           SAMBA:4:235
-       TRANS2_sfileinfo                SAMBA:4:236
-       TRANS2_sfileinfo_time           SAMBA:4:237
-       TRANS2_fsctl                    SAMBA:4:238
-       TRANS2_fsctl_time               SAMBA:4:239
-       TRANS2_ioctl                    SAMBA:4:240
-       TRANS2_ioctl_time               SAMBA:4:241
-       TRANS2_fnotifyfirst             SAMBA:4:242
-       TRANS2_fnotifyfirst_time        SAMBA:4:243
-       TRANS2_fnotifynext              SAMBA:4:244
-       TRANS2_fnotifynext_time         SAMBA:4:245
-       TRANS2_mkdir                    SAMBA:4:246
-       TRANS2_mkdir_time               SAMBA:4:247
-       TRANS2_sessetup                 SAMBA:4:248
-       TRANS2_sessetup_time            SAMBA:4:249
-       TRANS2_getDFSref                SAMBA:4:250
-       TRANS2_getDFSref_time           SAMBA:4:251
-       TRANS2_rptDFSinconsist          SAMBA:4:252
-       TRANS2_rptDFSinconsist_time     SAMBA:4:253
-
-       NTTRANS_create                  SAMBA:4:254
-       NTTRANS_create_time             SAMBA:4:255
-       NTTRANS_ioctl                   SAMBA:4:256
-       NTTRANS_ioctl_time              SAMBA:4:257
-       NTTRANS_setsecdesc              SAMBA:4:258
-       NTTRANS_setsecdesc_time         SAMBA:4:259
-       NTTRANS_notifychange            SAMBA:4:260
-       NTTRANS_notifychange_time       SAMBA:4:261
-       NTTRANS_rename                  SAMBA:4:262
-       NTTRANS_rename_time             SAMBA:4:263
-       NTTRANS_qsecdesc                SAMBA:4:264
-       NTTRANS_qsecdesc_time           SAMBA:4:265
-}
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");