summaryrefslogtreecommitdiff
path: root/pcp
diff options
context:
space:
mode:
authorHerb Lewis <herb@samba.org>2000-10-11 14:07:32 +0000
committerHerb Lewis <herb@samba.org>2000-10-11 14:07:32 +0000
commit8ad653f9ebc60c6807c1552425fa83218f6a15d4 (patch)
treea343c99f27bacdadb0b4509c940620e7fdd3cecb /pcp
parent5f3cf2eb78bfa6fb00890d449d38e9f13964712c (diff)
downloadsamba-8ad653f9ebc60c6807c1552425fa83218f6a15d4.tar.gz
Try this again on the right machine. Adding files for PCP samba pmda
Diffstat (limited to 'pcp')
-rwxr-xr-xpcp/Install64
-rw-r--r--pcp/Makefile66
-rw-r--r--pcp/README94
-rwxr-xr-xpcp/Remove52
-rw-r--r--pcp/domain.h4
-rw-r--r--pcp/help355
-rw-r--r--pcp/pmns297
-rw-r--r--pcp/root10
-rw-r--r--pcp/samba.c1772
9 files changed, 2714 insertions, 0 deletions
diff --git a/pcp/Install b/pcp/Install
new file mode 100755
index 00000000000..c2087fc01e3
--- /dev/null
+++ b/pcp/Install
@@ -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
index 00000000000..96d2b79cca4
--- /dev/null
+++ b/pcp/Makefile
@@ -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
index 00000000000..81adb5df3bf
--- /dev/null
+++ b/pcp/README
@@ -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
index 00000000000..3f7434d2553
--- /dev/null
+++ b/pcp/Remove
@@ -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
index 00000000000..3cf0bc6ce97
--- /dev/null
+++ b/pcp/domain.h
@@ -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
index 00000000000..a16eec90f9f
--- /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
index 00000000000..7c2cd5d70df
--- /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
index 00000000000..d5137bc7ddd
--- /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
index 00000000000..98bd7a936ff
--- /dev/null
+++ b/pcp/samba.c
@@ -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*/
+}