Try this again on the right machine. Adding files for PCP samba pmda
authorHerb Lewis <herb@samba.org>
Wed, 11 Oct 2000 14:07:32 +0000 (14:07 +0000)
committerHerb Lewis <herb@samba.org>
Wed, 11 Oct 2000 14:07:32 +0000 (14:07 +0000)
(This used to be commit 8ad653f9ebc60c6807c1552425fa83218f6a15d4)

pcp/Install [new file with mode: 0755]
pcp/Makefile [new file with mode: 0644]
pcp/README [new file with mode: 0644]
pcp/Remove [new file with mode: 0755]
pcp/domain.h [new file with mode: 0644]
pcp/help [new file with mode: 0644]
pcp/pmns [new file with mode: 0644]
pcp/root [new file with mode: 0644]
pcp/samba.c [new file with mode: 0644]

diff --git a/pcp/Install b/pcp/Install
new file mode 100755 (executable)
index 0000000..c2087fc
--- /dev/null
@@ -0,0 +1,64 @@
+#! /bin/sh
+#
+# Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like.  Any license provided herein, whether implied or
+# otherwise, applies only to this software file.  Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+#
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA  94043, or:
+#
+# http://www.sgi.com
+#
+# For further information regarding this notice, see:
+#
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#
+# Install the samba PMDA and/or PMNS
+#
+
+# source the PCP configuration environment variables
+. /etc/pcp.env
+
+# Get the common procedures and variable assignments
+#
+. $PCP_SHARE_DIR/lib/pmdaproc.sh
+
+# The name of the PMDA
+#
+iam=samba
+
+# override interactive dialog from pmdaproc.sh
+#
+__choose_mode()
+{
+    echo "Installing the \"$iam\" Performance Metrics Domain Agent (PMDA) ..."
+    echo
+}
+
+# Using libpcp_pmda.so.2 and PMDA_INTERFACE_2
+#
+pmda_interface=2
+
+# Do it
+#
+pmdaSetup
+pmdaInstall
+
+exit 0
diff --git a/pcp/Makefile b/pcp/Makefile
new file mode 100644 (file)
index 0000000..96d2b79
--- /dev/null
@@ -0,0 +1,66 @@
+#!make
+#
+# Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like.  Any license provided herein, whether implied or
+# otherwise, applies only to this software file.  Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+#
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA  94043, or:
+#
+# http://www.sgi.com
+#
+# For further information regarding this notice, see:
+#
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#
+
+SHELL   = sh
+
+include /etc/pcp.conf
+
+IAM    = samba
+CFILES = $(IAM).c
+
+LIBTARGET = pmda_$(IAM).so
+CMDTARGET = pmda$(IAM)
+TARGETS = $(LIBTARGET) $(CMDTARGET)
+
+DEBUG   = -DDEBUG
+CFLAGS = $(DEBUG)
+LDOPTS =
+LDLIBS = -lpcp_pmda -lpcp
+DSOOPTS        = -shared
+LDIRT  = so_locations *.log help.dir help.pag *.pmda_$(IAM).so
+
+INSTALL        = install
+CC     = cc
+
+default: $(TARGETS)
+
+install:       default
+
+$(CMDTARGET):  profile.h $(CFILES)
+       $(CC) $(CFLAGS) $(CFILES) $(LDOPTS) $(LDLIBS) -o $@
+
+$(LIBTARGET):  profile.h $(CFILES)
+       $(CC) $(CFLAGS) $(DSOOPTS) $(LDOPTS) $(CFILES) $(LDLIBS) -o $@
+
+clobber clean:
+       rm -f $(LDIRT) $(TARGETS)
diff --git a/pcp/README b/pcp/README
new file mode 100644 (file)
index 0000000..81adb5d
--- /dev/null
@@ -0,0 +1,94 @@
+samba PMDA
+===========
+
+This PMDA is a sample that illustrates how a simple samba monitor
+PMDA might be constructed, using a shared memory segment to transfer
+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.
+
+       Uses of make(1) may fail (without removing or clobbering files)
+       if the C compiler cannot be found.  This is most likely to
+       happen when running the PMDA ./Install script.
+
+       The only remedial action is to install the C compiler, or
+       hand-craft changes to the Makefile.
+
+Metrics
+=======
+
+The file ./help contains descriptions for all of the metrics exported
+by this PMDA.
+
+Once the PMDA has been installed, the following command will list all
+the available metrics and their explanatory "help" text:
+
+       $ pminfo -fT samba
+
+Installation
+============
+
+ +  # mkdir /var/pcp/pmdas/samba
+ +  # cp * /var/pcp/pmdas/samba
+ +  # cp ../source/includes/profile.h /var/pcp/pmdas/samba
+ +  # cd /var/pcp/pmdas/samba
+
+ +  Check that there is no clash in the Performance Metrics Domain
+    defined in ./domain.h and the other PMDAs currently in use
+    (/etc/pmcd.conf).  If there is, edit ./domain.h to choose another
+    domain number.
+
+ +  If you are not installing on an IRIX system, edit samba.c and
+    comment out the 
+
+       #define IRIX 1
+
+ +  Then simply use
+
+       # ./Install
+
+ +  Alternatively, to install just the Performance Metrics Name Space
+    for the samba metrics on the local system, but not the samba PMDA
+    (presumably because the local system is running PCP 1.x and you
+    wish to connect to a remote system where PCP 2.0 and the samba PMDA
+    is running), make sure the Performance Metrics Domain defined in
+    ./domain.h matches the domain chosen for the samba PMDA on the
+    remote system (check the second field in the corresponding line of
+    the pmcd.conf file on the remote system - located in /etc on IRIX
+    and /var/pcp/config/pmcd on Linux), then
+
+       # ./Install -N
+
+De-installation
+===============
+
+ +  Simply use
+
+        # cd /var/pcp/pmdas/samba
+       # ./Remove
+
+ +  If you also want to remove the sources use
+
+       # cd /
+       # rm -rf /var/pcp/pmdas/samba
+
+Making something happen
+=======================
+
+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
+(see the man page for smbcontrol).
+
+
+
+Troubleshooting
+===============
+
+ +  After installing or restarting the agent, the PMCD log file
+    (pmcd.log) and the PMDA log file (samba.log) should be checked 
+    for any warnings or errors. These logs are located in 
+    /var/log/pcp/pmcd on Linux and /var/adm/pcplog on IRIX.
diff --git a/pcp/Remove b/pcp/Remove
new file mode 100755 (executable)
index 0000000..3f7434d
--- /dev/null
@@ -0,0 +1,52 @@
+#! /bin/sh
+#
+# Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like.  Any license provided herein, whether implied or
+# otherwise, applies only to this software file.  Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+#
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA  94043, or:
+#
+# http://www.sgi.com
+#
+# For further information regarding this notice, see:
+#
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#
+# Remove the samba PMDA
+#
+
+# source the PCP configuration environment variables
+. /etc/pcp.env
+
+# Get the common procedures and variable assignments
+#
+. $PCP_SHARE_DIR/lib/pmdaproc.sh
+
+# The name of the PMDA
+#
+iam=samba
+
+# Do it
+#
+pmdaSetup
+pmdaRemove
+
+exit 0
diff --git a/pcp/domain.h b/pcp/domain.h
new file mode 100644 (file)
index 0000000..3cf0bc6
--- /dev/null
@@ -0,0 +1,4 @@
+/*
+ * built from /var/pcp/pmns/stdpmid
+ */
+#define SAMBA 123
diff --git a/pcp/help b/pcp/help
new file mode 100644 (file)
index 0000000..a16eec9
--- /dev/null
+++ b/pcp/help
@@ -0,0 +1,355 @@
+#
+# $Revision: 1.1 $
+#
+# samba PMDA help file in the ASCII format
+#
+# lines beginning with a # are ignored
+# lines beginning @ introduce a new entry of the form
+#  @ metric_name oneline-text
+#  help test goes
+#  here over multiple lines
+#  ...
+#
+# the metric_name is decoded against the default PMNS -- as a special case,
+# a name of the form NNN.MM (for numeric NNN and MM) is interpreted as an
+# instance domain identification, and the text describes the instance domain
+#
+# blank lines before the @ line are ignored
+#
+
+@ samba.smbd.smb_count Count of SMB packets processed
+
+@ 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.statcache.hits Number of times stat cache lookup hit
+
+@ samba.writecache.num_caches Number of write caches available
+
+@ samba.writecache.allocated_caches Number of write caches allocated
+
+@ samba.writecache.read_hits Number of times read request found in write cache
+
+@ samba.writecache.total_writes Number of writes to write cache 
+
+@ samba.writecache.init_writes Number of initial writes to write cache
+
+@ samba.writecache.abutted_writes 
+
+@ samba.writecache.perfect_writes
+
+@ samba.writecache.direct_writes
+
+@ samba.writecache.non_oplock_writes
+
+@ samba.writecache.seek_flush
+
+@ samba.writecache.read_flush
+
+@ samba.writecache.write_flush
+
+@ samba.writecache.readraw_flush
+
+@ samba.writecache.oplock_rel_flush
+
+@ samba.writecache.close_flush
+
+@ samba.writecache.sync_flush
+
+@ 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
diff --git a/pcp/pmns b/pcp/pmns
new file mode 100644 (file)
index 0000000..7c2cd5d
--- /dev/null
+++ b/pcp/pmns
@@ -0,0 +1,297 @@
+/*
+ * Metrics for samba PMDA
+ *
+ * $Revision: 1.1 $
+ */
+
+samba {
+       smbd
+       syscalls
+       statcache
+       writecache
+       SMB
+}
+
+samba.smbd {
+       smb_count                       SAMBA:0:0
+       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
+}
+
+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
+}
+
+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
+}
diff --git a/pcp/root b/pcp/root
new file mode 100644 (file)
index 0000000..d5137bc
--- /dev/null
+++ b/pcp/root
@@ -0,0 +1,10 @@
+/*
+ * fake "root" for validating the local PMNS subtree
+ */
+
+#include "/var/pcp/pmns/stdpmid"
+
+root { samba }
+
+#include "pmns"
+
diff --git a/pcp/samba.c b/pcp/samba.c
new file mode 100644 (file)
index 0000000..98bd7a9
--- /dev/null
@@ -0,0 +1,1772 @@
+/*
+ * Samba, configurable PMDA
+ *
+ * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it would be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Further, this software is distributed without any warranty that it is
+ * free of the rightful claim of any third person regarding infringement
+ * or the like.  Any license provided herein, whether implied or
+ * otherwise, applies only to this software file.  Patent licenses, if
+ * any, provided herein do not apply to combinations of this program with
+ * other software, or any other product whatsoever.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write the Free Software Foundation, Inc., 59
+ * Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+ * Mountain View, CA  94043, or:
+ *
+ * http://www.sgi.com
+ *
+ * For further information regarding this notice, see:
+ *
+ * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+ */
+
+typedef int BOOL;
+
+#define IRIX 1
+
+#include <stdio.h>
+#include <sys/shm.h>
+#include <pcp/pmapi.h>
+#ifdef IRIX
+#include <pcp/impl.h>
+#endif
+#include <pcp/pmda.h>
+#include "domain.h"
+#include "profile.h"
+
+/*
+ * lifted definitions from the samba source
+ */
+
+#define MAX_OPEN_FILES 10000   /* from local.h */
+
+/*
+ * 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, 
+               { 0,0,1,0,0,PM_COUNT_ONE} }, },
+/* 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, 
+               { 0,0,1,0,0,PM_COUNT_ONE} }, },
+/* statcache.misses */
+    { NULL, { PMDA_PMID(2,51), 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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, 
+               { 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} }, }
+};
+
+extern int     errno;
+struct profile_stats   *stats;
+struct profile_header  *shmheader;
+int            shmid = -1;
+
+
+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;
+
+    if (idp->cluster == 0) {
+       switch (idp->item) {
+           case 0:                     /* smbd.smb_count */
+               atom->ul = stats->smb_count;
+               break;
+           case 1:                     /* smb.uid_changes */
+               atom->ul = stats->uid_changes;
+               break;
+           default:
+               return PM_ERR_PMID;
+       }
+    }
+    else if (idp->cluster == 1) {
+       switch (idp->item) {
+           case 2:                     /* syscalls.opendir */
+               atom->ul = stats->syscall_opendir_count;
+               break;
+           case 3:                     /* syscalls.opendir */
+               atom->ul = stats->syscall_opendir_time;
+               break;
+           case 4:                     /* syscalls.readdir */
+               atom->ul = stats->syscall_readdir_count;
+               break;
+           case 5:                     /* syscalls.readdir */
+               atom->ul = stats->syscall_readdir_time;
+               break;
+           case 6:                     /* syscalls.mkdir */
+               atom->ul = stats->syscall_mkdir_count;
+               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 */
+               atom->ul = stats->writecache_read_hits;
+               break;
+           case 56:                    /* writecache.total_writes */
+               atom->ul = stats->writecache_total_writes;
+               break;
+           case 57:                    /* writecache.init_writes */
+               atom->ul = stats->writecache_init_writes;
+               break;
+           case 58:                    /* writecache.abutted_writes */
+               atom->ul = stats->writecache_abutted_writes;
+               break;
+           case 59:                    /* writecache.perfect_writes */
+               atom->ul = stats->writecache_num_perfect_writes;
+               break;
+           case 60:                    /* writecache.direct_writes */
+               atom->ul = stats->writecache_direct_writes;
+               break;
+           case 61:                    /* writecache.non_oplock_writes */
+               atom->ul = stats->writecache_non_oplock_writes;
+               break;
+           case 62:                    /* writecache.seek_flush */
+               atom->ul = stats->writecache_flushed_writes[SEEK_FLUSH];
+               break;
+           case 63:                    /* writecache.read_flush */
+               atom->ul = stats->writecache_flushed_writes[READ_FLUSH];
+               break;
+           case 64:                    /* writecache.write_flush */
+               atom->ul = stats->writecache_flushed_writes[WRITE_FLUSH];
+               break;
+           case 65:                    /* writecache.readraw_flush */
+               atom->ul = stats->writecache_flushed_writes[READRAW_FLUSH];
+               break;
+           case 66:                    /* writecache.oplock_rel_flush */
+               atom->ul = stats->writecache_flushed_writes[OPLOCK_RELEASE_FLUSH];
+               break;
+           case 67:                    /* writecache.close_flush */
+               atom->ul = stats->writecache_flushed_writes[CLOSE_FLUSH];
+               break;
+           case 68:                    /* writecache.sync_flush */
+               atom->ul = stats->writecache_flushed_writes[SYNC_FLUSH];
+               break;
+           case 69:                    /* 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
+       return PM_ERR_PMID;
+    return 0;
+}
+
+
+void 
+samba_init(pmdaInterface *dp)
+{
+    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");
+       exit(1);
+    }
+    shmheader = (struct profile_header *)shmat(shmid, NULL, SHM_RDONLY);
+    if ((int)shmheader == -1) {
+       fprintf(stderr, "shmat: %s\n", strerror(errno));
+       exit(1);
+    }
+
+    /* validate the data */
+    if (!shmheader)    /* not mapped yet */
+       fprintf(stderr, "samba_init: shmem not mapped\n");
+    else if (shmheader->prof_shm_magic != PROF_SHM_MAGIC)
+       fprintf(stderr, "samba_init: bad magic\n");
+    else if (shmheader->prof_shm_version != PROF_SHM_VERSION)
+       fprintf(stderr, "samba_init: bad version %X\n",
+                       shmheader->prof_shm_version);
+    else {
+       stats = &shmheader->stats;
+       return;         /* looks OK */
+    }
+    exit(1);
+}
+
+
+int
+main(int argc, char **argv)
+{
+    int                        err = 0;
+    char               *p;
+    pmdaInterface      dispatch;
+
+    for (p = pmProgname = argv[0]; *p; p++)
+       if (*p == '/') pmProgname = p+1;
+
+    pmdaDaemon(&dispatch, PMDA_INTERFACE_2, pmProgname, SAMBA,
+               "samba.log", "/var/pcp/pmdas/samba/help");
+
+    if (pmdaGetOpt(argc, argv, "D:d:l:?", &dispatch, &err) != EOF) {
+       fprintf(stderr, "Usage: %s [options]\n\n\
+Options:\n\
+  -d domain    use domain (numeric) for metrics domain of PMDA\n\
+  -l logfile   write log into logfile rather than using default log name\n",
+       pmProgname);
+       exit(1);
+    }
+
+    pmdaOpenLog(&dispatch);
+    samba_init(&dispatch);
+    pmdaConnect(&dispatch);
+    pmdaMain(&dispatch);
+
+    exit(0);
+    /*NOTREACHED*/
+}