summaryrefslogtreecommitdiff
path: root/src/pmdas/windows/hypnotoad.h
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
commit47e6e7c84f008a53061e661f31ae96629bc694ef (patch)
tree648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /src/pmdas/windows/hypnotoad.h
downloadpcp-debian/3.9.10.tar.gz
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'src/pmdas/windows/hypnotoad.h')
-rw-r--r--src/pmdas/windows/hypnotoad.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/src/pmdas/windows/hypnotoad.h b/src/pmdas/windows/hypnotoad.h
new file mode 100644
index 0000000..ea75430
--- /dev/null
+++ b/src/pmdas/windows/hypnotoad.h
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2008-2010 Aconex. All Rights Reserved.
+ * Copyright (c) 2004 Silicon Graphics, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+#ifndef HYPNOTOAD_H
+#define HYPNOTOAD_H
+
+#include "pmapi.h"
+#include "impl.h"
+#include "pmda.h"
+#include "pdh.h"
+#include "pdhmsg.h"
+#include "domain.h"
+
+#define MAX_M_PATH_LEN 80 /* pattern passed to PdhExpandCounterPath */
+#define MAX_M_TEXT_LEN 512 /* longest long-text string that we allow */
+#define INDOM(x,y) (((x)<<22)|(y)) /* pmdaCache interfaces use indom */
+
+enum {
+ DISK_INDOM,
+ CPU_INDOM,
+ NETIF_INDOM,
+ FILESYS_INDOM,
+ SQL_LOCK_INDOM,
+ SQL_CACHE_INDOM,
+ SQL_DB_INDOM,
+ PROCESS_INDOM,
+ THREAD_INDOM,
+ SQL_USER_INDOM,
+ NUMINDOMS
+};
+
+typedef enum {
+ V_NONE,
+ V_ERROR_SEEN = 0x1,
+ V_COLLECTED = 0x2, /* if PdhGetRawCounterValue was successful */
+} pdh_valueflags_t;
+
+typedef struct {
+ int inst; /* PM_IN_NULL or instance identifier */
+ pdh_valueflags_t flags;
+ pmAtomValue atom;
+} pdh_value_t;
+
+typedef enum {
+ M_NONE,
+ M_EXPANDED = 0x1, /* pattern has been expanded */
+ M_REDO = 0x2, /* redo pattern expansion on each fetch */
+ M_NOVALUES = 0x4, /* setup failed, don't bother with the fetch */
+ M_OPTIONAL = 0x8, /* optional component, no values is expected */
+ M_VERIFIED = 0x10, /* has this metrics semantics been checked */
+ M_AUTO64 = 0x20, /* allow auto-modification on 64/32bit type */
+} pdh_metricflag_t;
+
+typedef struct {
+ pmDesc desc; /* metric descriptor */
+ pdh_metricflag_t flags; /* state of this metric */
+ int ctype; /* PDH counter type */
+ int num_alloc; /* high water allocation mark */
+ int num_vals; /* one or more metric values */
+ pdh_value_t *vals;
+ char pat[MAX_M_PATH_LEN]; /* for PdhExpandCounterPath */
+} pdh_metric_t;
+
+extern pdh_metric_t metricdesc[];
+extern int metricdesc_sz;
+
+extern char *windows_uname;
+extern char *windows_build;
+extern char *windows_machine;
+extern int windows_indom_setup[];
+extern int windows_indom_reset[];
+extern unsigned long windows_pagesize;
+extern MEMORYSTATUSEX windows_memstat;
+extern void windows_fetch_memstat(void);
+
+extern void windows_open(int);
+extern int windows_indom_fixed(int);
+extern char *pdherrstr(int);
+
+typedef void (*pdh_metric_inform_t)(pdh_metric_t *, PDH_COUNTER_INFO_A *);
+typedef void (*pdh_metric_visitor_t)(pdh_metric_t *, LPSTR, pdh_value_t *);
+extern int windows_visit_metric(pdh_metric_t *, pdh_metric_visitor_t);
+extern int windows_inform_metric(pdh_metric_t *, LPTSTR, pdh_value_t *,
+ BOOLEAN, pdh_metric_inform_t);
+
+extern void windows_instance_refresh(pmInDom);
+extern int windows_lookup_instance(char *, pdh_metric_t *);
+extern void windows_fetch_refresh(int numpmid, pmID pmidlist[], pmdaExt *);
+extern void windows_verify_callback(pdh_metric_t *, LPSTR, pdh_value_t *);
+
+extern int windows_help(int, int, char **, pmdaExt *);
+
+#endif /* HYPNOTOAD_H */