pmc_configure_logfile
,
pmc_flush_logfile
,
pmc_writelog
,
pmc_close_logfile
—
log file management
Performance Counters Library (libpmc, -lpmc)
#include <pmc.h>
int
pmc_configure_logfile
(int
fd);
int
pmc_flush_logfile
(void);
int
pmc_writelog
(uint32_t
userdata);
int
pmc_close_logfile
(void);
The functions manage logging of
hwpmc(4)
events.
Function pmc_configure_logfile
() is used
to turn on and turn off logging. If argument fd is a
valid file handle returned by a prior call to
open(2)
or
socket(2)
then performance events will be logged to the file corresponding to the
specified handle. If the value of argument fd is -1
then logging will be stopped after any pending data is flushed.
Function pmc_flush_logfile
() will force
all log data queued inside the
hwpmc(4)
driver to be written out.
Function pmc_writelog
() will append a log
entry containing the value of argument userdata to the
log file.
Function pmc_close_logfile
() will flush
all pending log data and close
hwpmc(4)'s
side of the stream.
Upon successful completion, the value 0 is returned; otherwise the
value -1 is returned and the global variable
errno is set to indicate the error.
A call to pmc_configure_logfile
() may fail with the
following errors:
- [
EAGAIN
]
- The
hwpmc(4)
driver was not able to create a helper process due to system limits being
reached.
- [
EBUSY
]
- Function
pmc_configure_logfile
() was called with a
log file already configured.
- [
EINVAL
]
- Function
pmc_configure_logfile
() was called with
an argument of -1 without a log file being previously configured.
- [
ENOMEM
]
- The system encountered a memory shortage when servicing this request.
A call to pmc_flush_logfile
() may fail
with the following errors:
- [
EINVAL
]
- Function
pmc_flush_logfile
() was called without a
log file being previously configured.
A call to pmc_writelog
() may fail with the
following errors:
- [
EINVAL
]
- Function
pmc_writelog
() was called without a log
file being previously configured.
- [
ENOMEM
]
- The system encountered a memory shortage when servicing this request.