Counter event selection and start, Counter stop and read – FUJITSU Implementation Supplement Fujitsu SPARC64 V User Manual
Page 213

202
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V • Release 1.0, 1 July 2002
/* clear pics without altering sl/su values */
pic_init = 0x0;
pcr = rd_pcr();
pcr.ulro = 0x1;
/* don’t change su/sl on write */
pcr.ovf = 0x0;
/* clear overflow bits also */
pcr.ut = 0x0;
pcr.st = 0x0;
/* disable counts for good measure */
for (i=0; i<=pcr.nc; i++) {
/* select the pic to be written */
pcr.sc = i;
wr_pcr(pcr);
wr_pic(pic_init);/* clear pic i */
}
Counter Event Selection and Start
Counter events are selected through
PCR.SC
and
PCR.SU
/
PCR.SL
fields. The
following pseudocode selects events and enables counters (assuming privileged
access):
pcr.ut = 0x0;
/* initially disable user counts */
pcr.st = 0x0;
/* initially disable system counts */
pcr.ulro = 0x0;
/* make sure read-only disabled */
pcr.ovro = 0x1;
/* do not modify overflow bits */
/* select the events without enabling counters */
for(i=0; i<=pcr.nc; i++) {
pcr.sc = i;
pcr.sl = select an event;
pcr.su = select an event;
wr_pcr(pcr);
}
/* start counting */
pcr.ut = 0x1;
pcr.st = 0x1;
pcr.ulro = 0x1;
/* for not changing the last su/sl */
/* resetting of overflow bits can be done here */
wr_pcr(pcr);
Counter Stop and Read
The following pseudocode disables and reads counters (assuming privileged
access):
pcr.ut = 0x0;
/* disable counts */
pcr.st = 0x0;
/* disable counts */
pcr.ulro = 0x1;
/* enable sl/su read-only */
pcr.ovro = 0x1;
/* do not modify overflow bits */