1 .\" Copyright (c) 2007 Joseph Koshy. All rights reserved.
3 .\" Redistribution and use in source and binary forms, with or without
4 .\" modification, are permitted provided that the following conditions
6 .\" 1. Redistributions of source code must retain the above copyright
7 .\" notice, this list of conditions and the following disclaimer.
8 .\" 2. Redistributions in binary form must reproduce the above copyright
9 .\" notice, this list of conditions and the following disclaimer in the
10 .\" documentation and/or other materials provided with the distribution.
12 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .Nd attaching and detaching process scope PMCs to target processes
36 .Fn pmc_attach "pmc_id_t pmcid" "pid_t pid"
38 .Fn pmc_detach "pmc_id_t pmcid" "pid_t pid"
40 These functions control the set of target processes tracked by a
45 is used to attach a process scope PMC specified by argument
47 to a target process specified by argument
51 may be zero to denote the current process.
52 If the PMC was allocated with modifier
53 .Dv PMC_F_DESCENDANTS ,
54 the PMC will additionally attach to current and future descendents of
55 the specified target process.
56 The PMC should be in a quiescent state (i.e., not running).
60 is used to detach a process scope PMC specified by argument
62 from a process specified by argument
66 may be zero to denote the current process.
72 may fail with the following errors:
77 specified a PMC that was not in a quiescent state.
79 The target process specified by function
81 is being tracked by another process scope PMC that uses the same PMC
84 The target process is already being tracked by the specified PMC.
88 specified a PMC with system scope.
92 specified an illegal process id.
94 The current process does not own a PMC with the handle specified in
98 The caller lacked the privilege needed to attach PMCs to
99 the specified target process.
101 (i386 and amd64 architectures) The PMC specified by argument
103 has been setup to allow the use of the RDPMC instruction for
106 The current process does not own any PMCs.
108 The process specified by argument
115 may fail with the following errors:
120 specified a PMC with system scope.
124 specified an illegal process id.
126 The current process does not own a PMC with the handle specified in
130 The specified PMC was not attached to the target process.
132 The current process does not own any PMCs.
134 The process specified by argument
136 is not being monitored by
139 The process specified by argument