/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2000 by Sun Microsystems, Inc.
* All rights reserved.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
#include <sys/ddi_impldefs.h>
/*LINTLIBRARY*/
static kstat_t *pci_create_picN_kstat(char *, int, int, int,
pci_kev_mask_t *);
void
{
if (cmn_p->pci_common_attachcnt == 0)
}
void
{
if (cmn_p->pci_common_attachcnt == 0)
}
void
{
int i;
for (i = 0; i < NUM_OF_PICS; i++) {
}
}
}
void
{
int i;
for (i = 0; i < NUM_OF_PICS; i++) {
}
}
}
/*
* Create the picN kstat. Returns a pointer to the
* kstat which the driver must store to allow it
* to be deleted when necessary.
*/
static kstat_t *
{
int inst = 0;
int event;
/*
* It is up to the calling function to delete any kstats
* that may have been created already. We just
* return NULL to indicate an error has occured.
*/
return (NULL);
}
pic_named_data = (struct kstat_named *)
/*
* Write event names and their associated pcr masks. The
* last entry in the array (clear_pic) is added seperately
* below as the pic value must be inverted.
*/
}
/*
* add the clear_pic entry.
*/
return (picN_ksp);
}
/*
* Create the "counters" kstat.
*/
void *cntr_addr_p)
{
int i;
/*
* Size of kstat is num_pics + 1 as it
* also contains the %pcr
*/
num_pics + 1,
KSTAT_FLAG_WRITABLE)) == NULL) {
return (NULL);
}
/* initialize the named kstats */
"pcr", KSTAT_DATA_UINT64);
for (i = 0; i < num_pics; i++) {
}
/*
* Store the register offset's in the kstat's
* private field so that they are available
* to the update function.
*/
return (counters_ksp);
}
/*
*/
int
{
if (rw == KSTAT_WRITE) {
return (0);
} else {
/* pic0 : lo 32 bits */
/* pic1 : hi 32 bits */
}
return (0);
}
/*
* kstat update function using physical addresses.
*/
int
{
if (rw == KSTAT_WRITE) {
return (0);
} else {
/* pic0 : lo 32 bits */
/* pic1 : hi 32 bits */
}
return (0);
}
/*
* Matched with pci_add_upstream_kstat()
*/
void
{
}