1.\" Copyright (c) 2007 Joseph Koshy. All rights reserved. 2.\" 3.\" Redistribution and use in source and binary forms, with or without 4.\" modification, are permitted provided that the following conditions 5.\" are met: 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. 11.\" 12.\" This software is provided by Joseph Koshy ``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 Joseph Koshy 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 22.\" such damage. 23.\" 24.\" $FreeBSD$ 25.\" 26.Dd November 25, 2007 27.Os 28.Dt PMC_READ 3 29.Sh NAME 30.Nm pmc_read , 31.Nm pmc_rw , 32.Nm pmc_write , 33.Nd read and write hardware performance counters 34.Sh LIBRARY 35.Lb libpmc 36.Sh SYNOPSIS 37.In pmc.h 38.Ft int 39.Fn pmc_read "pmc_id_t pmc" "pmc_value_t *value" 40.Ft int 41.Fn pmc_rw "pmc_id_t pmc" "pmc_value_t newvalue" "pmc_value_t *oldvaluep" 42.Ft int 43.Fn pmc_write "pmc_id_t pmc" "pmc_value_t value" 44.Sh DESCRIPTION 45These functions read and write the current value of a PMC. 46.Pp 47Function 48.Fn pmc_read 49with read the current value of the PMC specified by argument 50.Fa pmc 51and write it to the location specified by argument 52.Fa value . 53.Pp 54Function 55.Fn pmc_write 56will set the current value of the PMC specified by argument 57.Fa pmc 58to the value specified by argument 59.Fa value . 60.Pp 61Function 62.Fn pmc_rw 63combines a read and a write into a single atomic operation. 64.Pp 65For write operations the PMC should be a quiescent state. 66.Sh RETURN VALUES 67.Rv -std 68.Sh ERRORS 69A call to these functions may fail with the following errors: 70.Bl -tag -width Er 71.It Bq Er EBUSY 72A write operation specified a currently running PMC. 73.It Bq Er EINVAL 74Argument 75.Fa pmc 76specified a PMC not in a readable state. 77.It Bq Er EINVAL 78The PMC specified by argument 79.Fa pmc 80was not owned by the current process. 81.El 82.Sh SEE ALSO 83.Xr pmc 3 , 84.Xr hwpmc 4 85