PMLOCALPMDA(3) | Library Functions Manual | PMLOCALPMDA(3) |
__pmLocalPMDA - change the table of DSO PMDAs for PM_CONTEXT_LOCAL contexts
#include "pmapi.h"
#include "libpcp.h"
int __pmLocalPMDA(int op, int domain, const char *name,
const char *init);
cc ... -lpcp
This documentation is intended for internal Performance Co-Pilot (PCP) developer use.
These interfaces are not part of the PCP APIs that are guaranteed to remain fixed across releases, and they may not work, or may provide different semantics at some point in the future.
PCP contexts of type PM_CONTEXT_LOCAL are used by clients that wish to fetch metrics directly from one or more PMDAs on the local host without involving pmcd(1). A PMDA that is to be used in this way must have been built as a Dynamic Shared Object (DSO).
Historically the table of PMDAs available for use with PM_CONTEXT_LOCAL was hardcoded to the following:
The initial table of PMDAs available for use with PM_CONTEXT_LOCAL is now generated dynamically from all those PMDAs that have been installed as DSOs on the local host. The one exception is the ``pmcd'' PMDA which only operates correctly in the address space of a running pmcd(1) process and so is not available to an application using a PM_CONTEXT_LOCAL context.
__pmLocalPMDA provides a number of services to amend the table of PMDAs available for use with PM_CONTEXT_LOCAL.
The op argument specifies the what should be done and takes one of the following values and actions:
The domain, name and init arguments have similar syntax and semantics to the associated fields in the pmcd(1) configuration file. The one difference is the path argument which is used by __pmLocalPMDA to find a likely looking DSO by searching in this order: $PCP_PMDAS_DIR/path, path, $PCP_PMDAS_DIR/path.dso-suffix and finally path.dso-suffix (dso-suffix is the local platform specific default file name suffix for a DSO, e.g. so for Linux, dylib for Mac OS X, dll for Windows, etc.).
In most cases, __pmLocalPMDA returns 0 to indicate success. If op is invalid, then the return value is PM_ERR_CONV else if there is no matching table entry found for a PM_LOCAL_DEL operation, PM_ERR_INDOM is returned.
pmcd(1), PMAPI(3), pmNewContext(3) and __pmSpecLocalPMDA(3).
Performance Co-Pilot |