summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Campbell <aaron@cvs.openbsd.org>2004-06-28 02:28:44 +0000
committerAaron Campbell <aaron@cvs.openbsd.org>2004-06-28 02:28:44 +0000
commit2d2f1330c2629516ed3a6392bb05b754eccc7198 (patch)
treea2d1568c05e228e271d8ff8d0dc49c0fd318f85c
parentf0dfa358923d9feb4fdf1633601becea7e11ac3d (diff)
Use new event counter API for interrupt counting on alpha. By me, with some
edits by Theo. deraadt@ ok
-rw-r--r--sys/arch/alpha/alpha/clock.c10
-rw-r--r--sys/arch/alpha/alpha/interrupt.c8
-rw-r--r--sys/arch/alpha/alpha/locore.s15
-rw-r--r--sys/arch/alpha/dev/shared_intr.c9
-rw-r--r--sys/arch/alpha/include/intr.h4
-rw-r--r--sys/arch/alpha/include/intrcnt.h152
-rw-r--r--sys/arch/alpha/include/types.h3
-rw-r--r--sys/arch/alpha/pci/pci_1000.c30
-rw-r--r--sys/arch/alpha/pci/pci_1000a.c30
-rw-r--r--sys/arch/alpha/pci/pci_550.c36
-rw-r--r--sys/arch/alpha/pci/pci_6600.c33
-rw-r--r--sys/arch/alpha/pci/pci_eb164.c3
-rw-r--r--sys/arch/alpha/pci/pci_eb164.h6
-rw-r--r--sys/arch/alpha/pci/pci_eb64plus.c3
-rw-r--r--sys/arch/alpha/pci/pci_kn20aa.c18
-rw-r--r--sys/arch/alpha/pci/pci_kn20aa.h6
-rw-r--r--sys/arch/alpha/pci/pci_up1000.c18
-rw-r--r--sys/arch/alpha/pci/sio.c6
-rw-r--r--sys/arch/alpha/pci/sio_pic.c23
-rw-r--r--sys/arch/alpha/pci/siovar.h8
-rw-r--r--sys/arch/alpha/tc/ioasic.c23
-rw-r--r--sys/arch/alpha/tc/tc_3000_300.c33
-rw-r--r--sys/arch/alpha/tc/tc_3000_500.c33
-rw-r--r--sys/arch/alpha/tc/tc_conf.h6
-rw-r--r--sys/arch/alpha/tc/tcasic.c4
-rw-r--r--sys/dev/tc/ioasicvar.h3
-rw-r--r--sys/dev/tc/tc.c11
-rw-r--r--sys/dev/tc/tcds.c26
-rw-r--r--sys/dev/tc/tcdsvar.h4
-rw-r--r--sys/dev/tc/tcvar.h5
30 files changed, 71 insertions, 498 deletions
diff --git a/sys/arch/alpha/alpha/clock.c b/sys/arch/alpha/alpha/clock.c
index 61567594a89..e828b9430ac 100644
--- a/sys/arch/alpha/alpha/clock.c
+++ b/sys/arch/alpha/alpha/clock.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: clock.c,v 1.13 2003/10/18 20:14:40 jmc Exp $ */
+/* $OpenBSD: clock.c,v 1.14 2004/06/28 02:28:42 aaron Exp $ */
/* $NetBSD: clock.c,v 1.29 2000/06/05 21:47:10 thorpej Exp $ */
/*
@@ -43,6 +43,7 @@
#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/device.h>
+#include <sys/evcount.h>
#include <dev/clock_subr.h>
@@ -71,6 +72,8 @@ extern int schedhz;
struct device *clockdev;
const struct clockfns *clockfns;
int clockinitted;
+struct evcount clk_count;
+int clk_irq = 0;
void
clockattach(dev, fns)
@@ -87,9 +90,6 @@ clockattach(dev, fns)
panic("clockattach: multiple clocks");
clockdev = dev;
clockfns = fns;
-#ifdef EVCNT_COUNTERS
- evcnt_attach(dev, "intr", &clock_intr_evcnt);
-#endif
}
/*
@@ -140,6 +140,8 @@ cpu_initclocks()
platform.clockintr = hardclock;
schedhz = 16;
+ evcount_attach(&clk_count, "clock", (void *)&clk_irq, &evcount_intr);
+
/*
* Get the clock started.
*/
diff --git a/sys/arch/alpha/alpha/interrupt.c b/sys/arch/alpha/alpha/interrupt.c
index 5d0325b4e7a..49306f94b58 100644
--- a/sys/arch/alpha/alpha/interrupt.c
+++ b/sys/arch/alpha/alpha/interrupt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: interrupt.c,v 1.15 2003/11/06 21:09:34 mickey Exp $ */
+/* $OpenBSD: interrupt.c,v 1.16 2004/06/28 02:28:42 aaron Exp $ */
/* $NetBSD: interrupt.c,v 1.46 2000/06/03 20:47:36 thorpej Exp $ */
/*-
@@ -79,6 +79,7 @@
#include <sys/device.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
+#include <sys/evcount.h>
#include <uvm/uvm_extern.h>
@@ -89,7 +90,6 @@
#include <machine/rpb.h>
#include <machine/frame.h>
#include <machine/cpuconf.h>
-#include <machine/intrcnt.h>
#if defined(MULTIPROCESSOR)
#include <sys/device.h>
@@ -117,6 +117,8 @@
static u_int schedclk2;
+extern struct evcount clk_count;
+
void netintr(void);
void
@@ -170,7 +172,7 @@ interrupt(unsigned long a0, unsigned long a1, unsigned long a2,
return;
#endif
uvmexp.intrs++;
- intrcnt[INTRCNT_CLOCK]++;
+ clk_count.ec_count++;
if (platform.clockintr) {
/*
* Call hardclock(). This will also call
diff --git a/sys/arch/alpha/alpha/locore.s b/sys/arch/alpha/alpha/locore.s
index 48849130727..05ccc2d9b98 100644
--- a/sys/arch/alpha/alpha/locore.s
+++ b/sys/arch/alpha/alpha/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.22 2004/06/13 21:49:11 niklas Exp $ */
+/* $OpenBSD: locore.s,v 1.23 2004/06/28 02:28:42 aaron Exp $ */
/* $NetBSD: locore.s,v 1.94 2001/04/26 03:10:44 ross Exp $ */
/*-
@@ -1457,26 +1457,15 @@ END(copyerr)
/**************************************************************************/
-/*
- * Some bogus data, to keep vmstat happy, for now.
- */
-
-#include <machine/intrcnt.h>
-
.data
+/* Some bogus data, to keep vmstat happy, for now. */
EXPORT(intrnames)
.type intrnames,@object
-#ifndef EVCNT_COUNTERS
- INTRNAMES_DEFINITION
-#endif
EXPORT(eintrnames)
.type eintrnames,@object
.align 3
EXPORT(intrcnt)
.type intrcnt,@object
-#ifndef EVCNT_COUNTERS
- INTRCNT_DEFINITION
-#endif
EXPORT(eintrcnt)
.type eintrcnt,@object
.text
diff --git a/sys/arch/alpha/dev/shared_intr.c b/sys/arch/alpha/dev/shared_intr.c
index 90c0c6bb4e4..31f78bb877c 100644
--- a/sys/arch/alpha/dev/shared_intr.c
+++ b/sys/arch/alpha/dev/shared_intr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: shared_intr.c,v 1.11 2002/03/14 01:26:26 millert Exp $ */
+/* $OpenBSD: shared_intr.c,v 1.12 2004/06/28 02:28:42 aaron Exp $ */
/* $NetBSD: shared_intr.c,v 1.13 2000/03/19 01:46:18 thorpej Exp $ */
/*
@@ -106,7 +106,8 @@ alpha_shared_intr_dispatch(intr, num)
* -1: This interrupt might have been for me, but I can't say
* for sure.
*/
- rv = (*ih->ih_fn)(ih->ih_arg);
+ if ((rv = (*ih->ih_fn)(ih->ih_arg)))
+ ih->ih_count.ec_count++;
handled = handled || (rv != 0);
ih = ih->ih_q.tqe_next;
@@ -172,6 +173,8 @@ alpha_shared_intr_establish(intr, num, type, level, fn, arg, basename)
ih->ih_arg = arg;
ih->ih_level = level;
ih->ih_num = num;
+ evcount_attach(&ih->ih_count, basename, (void *)&ih->ih_num,
+ &evcount_intr);
intr[num].intr_sharetype = type;
TAILQ_INSERT_TAIL(&intr[num].intr_q, ih, ih_q);
@@ -192,7 +195,9 @@ alpha_shared_intr_disestablish(intr, cookie, basename)
* Just remove it from the list and free the entry. We let
* the caller deal with resetting the share type, if appropriate.
*/
+ evcount_detach(&ih->ih_count);
TAILQ_REMOVE(&intr[num].intr_q, ih, ih_q);
+ free(ih, M_DEVBUF);
}
int
diff --git a/sys/arch/alpha/include/intr.h b/sys/arch/alpha/include/intr.h
index 25fdcba079d..979d823ab93 100644
--- a/sys/arch/alpha/include/intr.h
+++ b/sys/arch/alpha/include/intr.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: intr.h,v 1.17 2004/06/13 21:49:12 niklas Exp $ */
+/* $OpenBSD: intr.h,v 1.18 2004/06/28 02:28:42 aaron Exp $ */
/* $NetBSD: intr.h,v 1.26 2000/06/03 20:47:41 thorpej Exp $ */
/*-
@@ -68,6 +68,7 @@
#ifndef _ALPHA_INTR_H_
#define _ALPHA_INTR_H_
+#include <sys/evcount.h>
#include <sys/lock.h>
#include <sys/queue.h>
#include <machine/atomic.h>
@@ -173,6 +174,7 @@ struct alpha_shared_intrhand {
void *ih_arg;
int ih_level;
unsigned int ih_num;
+ struct evcount ih_count;
};
struct alpha_shared_intr {
diff --git a/sys/arch/alpha/include/intrcnt.h b/sys/arch/alpha/include/intrcnt.h
deleted file mode 100644
index 568ae353458..00000000000
--- a/sys/arch/alpha/include/intrcnt.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* $OpenBSD: intrcnt.h,v 1.6 2003/02/28 23:02:09 jason Exp $ */
-/* $NetBSD: intrcnt.h,v 1.7 1996/11/16 23:11:57 cgd Exp $ */
-
-/*
- * Copyright (c) 1995, 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#define INTRNAMES_DEFINITION \
-/* 0x00 */ ASCIZ "clock"; \
- ASCIZ "isa irq 0"; \
- ASCIZ "isa irq 1"; \
- ASCIZ "isa irq 2"; \
- ASCIZ "isa irq 3"; \
- ASCIZ "isa irq 4"; \
- ASCIZ "isa irq 5"; \
- ASCIZ "isa irq 6"; \
- ASCIZ "isa irq 7"; \
- ASCIZ "isa irq 8"; \
- ASCIZ "isa irq 9"; \
- ASCIZ "isa irq 10"; \
- ASCIZ "isa irq 11"; \
- ASCIZ "isa irq 12"; \
- ASCIZ "isa irq 13"; \
- ASCIZ "isa irq 14"; \
-/* 0x10 */ ASCIZ "isa irq 15"; \
- ASCIZ "kn20aa irq 0"; \
- ASCIZ "kn20aa irq 1"; \
- ASCIZ "kn20aa irq 2"; \
- ASCIZ "kn20aa irq 3"; \
- ASCIZ "kn20aa irq 4"; \
- ASCIZ "kn20aa irq 5"; \
- ASCIZ "kn20aa irq 6"; \
- ASCIZ "kn20aa irq 7"; \
- ASCIZ "kn20aa irq 8"; \
- ASCIZ "kn20aa irq 9"; \
- ASCIZ "kn20aa irq 10"; \
- ASCIZ "kn20aa irq 11"; \
- ASCIZ "kn20aa irq 12"; \
- ASCIZ "kn20aa irq 13"; \
- ASCIZ "kn20aa irq 14"; \
-/* 0x20 */ ASCIZ "kn20aa irq 15"; \
- ASCIZ "kn20aa irq 16"; \
- ASCIZ "kn20aa irq 17"; \
- ASCIZ "kn20aa irq 18"; \
- ASCIZ "kn20aa irq 19"; \
- ASCIZ "kn20aa irq 20"; \
- ASCIZ "kn20aa irq 21"; \
- ASCIZ "kn20aa irq 22"; \
- ASCIZ "kn20aa irq 23"; \
- ASCIZ "kn20aa irq 24"; \
- ASCIZ "kn20aa irq 25"; \
- ASCIZ "kn20aa irq 26"; \
- ASCIZ "kn20aa irq 27"; \
- ASCIZ "kn20aa irq 28"; \
- ASCIZ "kn20aa irq 29"; \
- ASCIZ "kn20aa irq 30"; \
-/* 0x30 */ ASCIZ "kn20aa irq 31"; \
- ASCIZ "kn15 tc slot 0"; \
- ASCIZ "kn15 tc slot 1"; \
- ASCIZ "kn15 tc slot 2"; \
- ASCIZ "kn15 tc slot 3"; \
- ASCIZ "kn15 tc slot 4"; \
- ASCIZ "kn15 tc slot 5"; \
- ASCIZ "kn15 tcds"; \
- ASCIZ "kn15 ioasic"; \
- ASCIZ "kn15 sfb"; \
- ASCIZ "kn16 tc slot 0"; \
- ASCIZ "kn16 tc slot 1"; \
- ASCIZ "kn16 tcds"; \
- ASCIZ "kn16 ioasic"; \
- ASCIZ "kn16 sfb"; \
- ASCIZ "tcds esp 0"; \
-/* 0x40 */ ASCIZ "tcds esp 1"; \
- ASCIZ "ioasic le"; \
- ASCIZ "ioasic scc 0"; \
- ASCIZ "ioasic scc 1"; \
- ASCIZ "ioasic am79c30"; \
- ASCIZ "eb164 irq 0"; \
- ASCIZ "eb164 irq 1"; \
- ASCIZ "eb164 irq 2"; \
- ASCIZ "eb164 irq 3"; \
- ASCIZ "eb164 irq 4"; \
- ASCIZ "eb164 irq 5"; \
- ASCIZ "eb164 irq 6"; \
- ASCIZ "eb164 irq 7"; \
- ASCIZ "eb164 irq 8"; \
- ASCIZ "eb164 irq 9"; \
- ASCIZ "eb164 irq 10"; \
-/* 0x50 */ ASCIZ "eb164 irq 11"; \
- ASCIZ "eb164 irq 12"; \
- ASCIZ "eb164 irq 13"; \
- ASCIZ "eb164 irq 14"; \
- ASCIZ "eb164 irq 15"; \
- ASCIZ "eb164 irq 16"; \
- ASCIZ "eb164 irq 17"; \
- ASCIZ "eb164 irq 18"; \
- ASCIZ "eb164 irq 19"; \
- ASCIZ "eb164 irq 20"; \
- ASCIZ "eb164 irq 21"; \
- ASCIZ "eb164 irq 22"; \
- ASCIZ "eb164 irq 23";
-
-#define INTRCNT_DEFINITION \
-/* 0x00 */ .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; \
-/* 0x10 */ .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; \
-/* 0x20 */ .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; \
-/* 0x30 */ .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; \
-/* 0x40 */ .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; \
-/* 0x50 */ .long 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
-
-#define INTRCNT_CLOCK 0
-#define INTRCNT_ISA_IRQ (INTRCNT_CLOCK + 1)
-#define INTRCNT_ISA_IRQ_LEN 16
-#define INTRCNT_KN20AA_IRQ (INTRCNT_ISA_IRQ + INTRCNT_ISA_IRQ_LEN)
-#define INTRCNT_KN20AA_IRQ_LEN 32
-#define INTRCNT_KN15 (INTRCNT_KN20AA_IRQ + INTRCNT_KN20AA_IRQ_LEN)
-#define INTRCNT_KN15_LEN 9
-#define INTRCNT_KN16 (INTRCNT_KN15 + INTRCNT_KN15_LEN)
-#define INTRCNT_KN16_LEN 5
-#define INTRCNT_TCDS (INTRCNT_KN16 + INTRCNT_KN16_LEN)
-#define INTRCNT_TCDS_LEN 2
-#define INTRCNT_IOASIC (INTRCNT_TCDS + INTRCNT_TCDS_LEN)
-#define INTRCNT_IOASIC_LEN 4
-#define INTRCNT_EB164_IRQ (INTRCNT_IOASIC + INTRCNT_IOASIC_LEN)
-#define INTRCNT_EB164_IRQ_LEN 24
-
-#ifndef _LOCORE
-extern volatile int intrcnt[];
-#endif
diff --git a/sys/arch/alpha/include/types.h b/sys/arch/alpha/include/types.h
index 1967be2ba53..b24bedab8bf 100644
--- a/sys/arch/alpha/include/types.h
+++ b/sys/arch/alpha/include/types.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: types.h,v 1.12 2003/06/02 23:27:43 millert Exp $ */
+/* $OpenBSD: types.h,v 1.13 2004/06/28 02:28:42 aaron Exp $ */
/* $NetBSD: types.h,v 1.6 1996/12/05 00:13:47 cgd Exp $ */
/*-
@@ -74,5 +74,6 @@ typedef long register_t;
#define __BROKEN_INDIRECT_CONFIG
#define __HAVE_DEVICE_REGISTER
#define __HAVE_NWSCONS
+#define __HAVE_EVCOUNT
#endif /* _MACHTYPES_H_ */
diff --git a/sys/arch/alpha/pci/pci_1000.c b/sys/arch/alpha/pci/pci_1000.c
index 3d5ae2e63a7..430aae9421c 100644
--- a/sys/arch/alpha/pci/pci_1000.c
+++ b/sys/arch/alpha/pci/pci_1000.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_1000.c,v 1.1 2002/06/30 16:24:40 miod Exp $ */
+/* $OpenBSD: pci_1000.c,v 1.2 2004/06/28 02:28:42 aaron Exp $ */
/* $NetBSD: pci_1000.c,v 1.12 2001/07/27 00:25:20 thorpej Exp $ */
/*
@@ -94,9 +94,6 @@ static bus_space_handle_t another_mystery_icu_ioh;
int dec_1000_intr_map(void *, pcitag_t, int, int, pci_intr_handle_t *);
const char *dec_1000_intr_string(void *, pci_intr_handle_t);
int dec_1000_intr_line(void *, pci_intr_handle_t);
-#if 0
-const struct evcnt *dec_1000_intr_evcnt(void *, pci_intr_handle_t);
-#endif
void *dec_1000_intr_establish(void *, pci_intr_handle_t,
int, int (*func)(void *), void *, char *);
void dec_1000_intr_disestablish(void *, void *);
@@ -132,9 +129,6 @@ pci_1000_pickintr(core, iot, memt, pc)
pc->pc_intr_map = dec_1000_intr_map;
pc->pc_intr_string = dec_1000_intr_string;
pc->pc_intr_line = dec_1000_intr_line;
-#if 0
- pc->pc_intr_evcnt = dec_1000_intr_evcnt;
-#endif
pc->pc_intr_establish = dec_1000_intr_establish;
pc->pc_intr_disestablish = dec_1000_intr_disestablish;
@@ -146,14 +140,6 @@ pci_1000_pickintr(core, iot, memt, pc)
for (i = 0; i < PCI_NIRQ; i++) {
alpha_shared_intr_set_maxstrays(dec_1000_pci_intr, i,
PCI_STRAY_MAX);
-
-#if 0
- cp = alpha_shared_intr_string(dec_1000_pci_intr, i);
- sprintf(cp, "irq %d", i);
- evcnt_attach_dynamic(alpha_shared_intr_evcnt(
- dec_1000_pci_intr, i), EVCNT_TYPE_INTR, NULL,
- "dec_1000", cp);
-#endif
}
pci_1000_imi();
@@ -223,20 +209,6 @@ dec_1000_intr_line(ccv, ih)
#endif
}
-#if 0
-const struct evcnt *
-dec_1000_intr_evcnt(ccv, ih)
- void *ccv;
- pci_intr_handle_t ih;
-{
-
- if (ih >= PCI_NIRQ)
- panic("dec_1000_intr_evcnt: bogus dec_1000 IRQ 0x%lx", ih);
-
- return (alpha_shared_intr_evcnt(dec_1000_pci_intr, ih));
-}
-#endif
-
void *
dec_1000_intr_establish(ccv, ih, level, func, arg, name)
void *ccv;
diff --git a/sys/arch/alpha/pci/pci_1000a.c b/sys/arch/alpha/pci/pci_1000a.c
index 5392264f46d..0579b368bed 100644
--- a/sys/arch/alpha/pci/pci_1000a.c
+++ b/sys/arch/alpha/pci/pci_1000a.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_1000a.c,v 1.1 2002/06/30 16:24:40 miod Exp $ */
+/* $OpenBSD: pci_1000a.c,v 1.2 2004/06/28 02:28:42 aaron Exp $ */
/* $NetBSD: pci_1000a.c,v 1.14 2001/07/27 00:25:20 thorpej Exp $ */
/*
@@ -101,9 +101,6 @@ int dec_1000a_intr_map(void *, pcitag_t, int, int,
pci_intr_handle_t *);
const char *dec_1000a_intr_string(void *, pci_intr_handle_t);
int dec_1000a_intr_line(void *, pci_intr_handle_t);
-#if 0
-const struct evcnt *dec_1000a_intr_evcnt(void *, pci_intr_handle_t);
-#endif
void *dec_1000a_intr_establish(void *, pci_intr_handle_t,
int, int (*func)(void *), void *, char *);
void dec_1000a_intr_disestablish(void *, void *);
@@ -137,9 +134,6 @@ pci_1000a_pickintr(core, iot, memt, pc)
pc->pc_intr_map = dec_1000a_intr_map;
pc->pc_intr_string = dec_1000a_intr_string;
pc->pc_intr_line = dec_1000a_intr_line;
-#if 0
- pc->pc_intr_evcnt = dec_1000a_intr_evcnt;
-#endif
pc->pc_intr_establish = dec_1000a_intr_establish;
pc->pc_intr_disestablish = dec_1000a_intr_disestablish;
@@ -150,14 +144,6 @@ pci_1000a_pickintr(core, iot, memt, pc)
for (i = 0; i < PCI_NIRQ; i++) {
alpha_shared_intr_set_maxstrays(dec_1000a_pci_intr, i,
PCI_STRAY_MAX);
-
-#if 0
- cp = alpha_shared_intr_string(dec_1000a_pci_intr, i);
- sprintf(cp, "irq %d", i);
- evcnt_attach_dynamic(alpha_shared_intr_evcnt(
- dec_1000a_pci_intr, i), EVCNT_TYPE_INTR, NULL,
- "dec_1000a", cp);
-#endif
}
pci_1000a_imi();
@@ -244,20 +230,6 @@ dec_1000a_intr_line(ccv, ih)
#endif
}
-#if 0
-const struct evcnt *
-dec_1000a_intr_evcnt(ccv, ih)
- void *ccv;
- pci_intr_handle_t ih;
-{
-
- if (ih >= PCI_NIRQ)
- panic("dec_1000a_intr_evcnt: bogus dec_1000a IRQ 0x%lx", ih);
-
- return (alpha_shared_intr_evcnt(dec_1000a_pci_intr, ih));
-}
-#endif
-
void *
dec_1000a_intr_establish(ccv, ih, level, func, arg, name)
void *ccv;
diff --git a/sys/arch/alpha/pci/pci_550.c b/sys/arch/alpha/pci/pci_550.c
index e7046bab335..1fc437e9f02 100644
--- a/sys/arch/alpha/pci/pci_550.c
+++ b/sys/arch/alpha/pci/pci_550.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_550.c,v 1.11 2003/05/11 19:41:09 deraadt Exp $ */
+/* $OpenBSD: pci_550.c,v 1.12 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: pci_550.c,v 1.18 2000/06/29 08:58:48 mrg Exp $ */
/*-
@@ -98,7 +98,6 @@ int dec_550_intr_map(void *, pcitag_t, int, int,
pci_intr_handle_t *);
const char *dec_550_intr_string(void *, pci_intr_handle_t);
int dec_550_intr_line(void *, pci_intr_handle_t);
-const struct evcnt *dec_550_intr_evcnt(void *, pci_intr_handle_t);
void *dec_550_intr_establish(void *, pci_intr_handle_t,
int, int (*func)(void *), void *, char *);
void dec_550_intr_disestablish(void *, void *);
@@ -147,9 +146,6 @@ pci_550_pickintr(ccp)
pc->pc_intr_map = dec_550_intr_map;
pc->pc_intr_string = dec_550_intr_string;
pc->pc_intr_line = dec_550_intr_line;
-#if 0
- pc->pc_intr_evcnt = dec_550_intr_evcnt;
-#endif
pc->pc_intr_establish = dec_550_intr_establish;
pc->pc_intr_disestablish = dec_550_intr_disestablish;
@@ -171,13 +167,6 @@ pci_550_pickintr(ccp)
alpha_shared_intr_set_maxstrays(dec_550_pci_intr, i,
PCI_STRAY_MAX);
alpha_shared_intr_set_private(dec_550_pci_intr, i, ccp);
-#if 0
- cp = alpha_shared_intr_string(dec_550_pci_intr, i);
- sprintf(cp, "irq %d", i);
- evcnt_attach_dynamic(alpha_shared_intr_evcnt(
- dec_550_pci_intr, i), EVCNT_TYPE_INTR, NULL,
- "dec_550", cp);
-#endif
}
#if NSIO
@@ -303,29 +292,6 @@ dec_550_intr_line(ccv, ih)
return (ih);
}
-#if 0
-const struct evcnt *
-dec_550_intr_evcnt(ccv, ih)
- void *ccv;
- pci_intr_handle_t ih;
-{
-#if 0
- struct cia_config *ccp = ccv;
-#endif
-
-#if NSIO
- if (DEC_550_LINE_IS_ISA(ih))
- return (sio_intr_evcnt(NULL /*XXX*/,
- DEC_550_LINE_ISA_IRQ(ih)));
-#endif
-
- if (ih >= DEC_550_MAX_IRQ)
- panic("dec_550_intr_evcnt: bogus 550 IRQ 0x%lx", ih);
-
- return (alpha_shared_intr_evcnt(dec_550_pci_intr, ih));
-}
-#endif
-
void *
dec_550_intr_establish(ccv, ih, level, func, arg, name)
void *ccv, *arg;
diff --git a/sys/arch/alpha/pci/pci_6600.c b/sys/arch/alpha/pci/pci_6600.c
index f98f7cb7079..0bb50fe4afd 100644
--- a/sys/arch/alpha/pci/pci_6600.c
+++ b/sys/arch/alpha/pci/pci_6600.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_6600.c,v 1.10 2002/06/25 21:33:21 miod Exp $ */
+/* $OpenBSD: pci_6600.c,v 1.11 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: pci_6600.c,v 1.5 2000/06/06 00:50:15 thorpej Exp $ */
/*-
@@ -81,7 +81,6 @@ void *dec_6600_intr_establish(void *, pci_intr_handle_t, int,
int (*func)(void *), void *, char *);
const char *dec_6600_intr_string(void *, pci_intr_handle_t);
int dec_6600_intr_line(void *, pci_intr_handle_t);
-const struct evcnt *dec_6600_intr_evcnt(void *, pci_intr_handle_t);
int dec_6600_intr_map(void *, pcitag_t, int, int, pci_intr_handle_t *);
void *dec_6600_pciide_compat_intr_establish(void *, struct device *,
struct pci_attach_args *, int, int (*)(void *), void *);
@@ -108,9 +107,6 @@ pci_6600_pickintr(pcp)
pc->pc_intr_map = dec_6600_intr_map;
pc->pc_intr_string = dec_6600_intr_string;
pc->pc_intr_line = dec_6600_intr_line;
-#if 0
- pc->pc_intr_evcnt = dec_6600_intr_evcnt;
-#endif
pc->pc_intr_establish = dec_6600_intr_establish;
pc->pc_intr_disestablish = dec_6600_intr_disestablish;
pc->pc_pciide_compat_intr_establish = NULL;
@@ -128,14 +124,6 @@ pci_6600_pickintr(pcp)
PCI_STRAY_MAX);
alpha_shared_intr_set_private(dec_6600_pci_intr, i,
sioprimary);
-
-#if 0
- cp = alpha_shared_intr_string(dec_6600_pci_intr);
- sprintf(cp, "irq %d", i);
- evcnt_attach_dynamic(alpha_shared_intr_evcnt(
- dec_6600_pci_intr, 1), EVCNT_TYPE_INTR, NULL,
- "dec_6600", cp);
-#endif
}
#if NSIO
sio_intr_setup(pc, iot);
@@ -199,7 +187,7 @@ dec_6600_intr_string(acv, ih)
pci_intr_handle_t ih;
{
- static const char irqfmt[] = "dec 6600 irq %ld";
+ static const char irqfmt[] = "%lddec6600";
static char irqstr[sizeof irqfmt];
#if NSIO
@@ -227,23 +215,6 @@ dec_6600_intr_line(acv, ih)
return (ih);
}
-#if 0
-const struct evcnt *
-dec_6600_intr_evcnt(acv, ih)
- void *acv;
- pci_intr_handle_t ih;
-{
-
-#if NSIO
- if (DEC_6600_LINE_IS_ISA(ih))
- return (sio_intr_evcnt(NULL /*XXX*/,
- DEC_6600_LINE_ISA_IRQ(ih)));
-#endif
-
- return (alpha_shared_intr_evcnt(dec_6600_pci_intr, ih));
-}
-#endif
-
void *
dec_6600_intr_establish(acv, ih, level, func, arg, name)
void *acv, *arg;
diff --git a/sys/arch/alpha/pci/pci_eb164.c b/sys/arch/alpha/pci/pci_eb164.c
index 8be7804db6e..5aec27d2658 100644
--- a/sys/arch/alpha/pci/pci_eb164.c
+++ b/sys/arch/alpha/pci/pci_eb164.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_eb164.c,v 1.15 2003/05/10 21:11:12 deraadt Exp $ */
+/* $OpenBSD: pci_eb164.c,v 1.16 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: pci_eb164.c,v 1.27 2000/06/06 00:50:15 thorpej Exp $ */
/*-
@@ -98,7 +98,6 @@ int dec_eb164_intr_map(void *, pcitag_t, int, int,
pci_intr_handle_t *);
const char *dec_eb164_intr_string(void *, pci_intr_handle_t);
int dec_eb164_intr_line(void *, pci_intr_handle_t);
-const struct evcnt *dec_eb164_intr_evcnt(void *, pci_intr_handle_t);
void *dec_eb164_intr_establish(void *, pci_intr_handle_t,
int, int (*func)(void *), void *, char *);
void dec_eb164_intr_disestablish(void *, void *);
diff --git a/sys/arch/alpha/pci/pci_eb164.h b/sys/arch/alpha/pci/pci_eb164.h
index 71521177906..617ad4e37e4 100644
--- a/sys/arch/alpha/pci/pci_eb164.h
+++ b/sys/arch/alpha/pci/pci_eb164.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_eb164.h,v 1.3 2002/03/14 01:26:27 millert Exp $ */
+/* $OpenBSD: pci_eb164.h,v 1.4 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: pci_eb164.h,v 1.1 1996/11/11 21:08:13 cgd Exp $ */
/*
@@ -29,7 +29,3 @@
*/
void pci_eb164_pickintr(struct cia_config *);
-
-#ifdef EVCNT_COUNTERS
-extern struct evcnt eb164_intr_evcnt;
-#endif
diff --git a/sys/arch/alpha/pci/pci_eb64plus.c b/sys/arch/alpha/pci/pci_eb64plus.c
index 8589bb87452..a4857570e98 100644
--- a/sys/arch/alpha/pci/pci_eb64plus.c
+++ b/sys/arch/alpha/pci/pci_eb64plus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_eb64plus.c,v 1.5 2003/05/10 21:11:12 deraadt Exp $ */
+/* $OpenBSD: pci_eb64plus.c,v 1.6 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: pci_eb64plus.c,v 1.10 2001/07/27 00:25:20 thorpej Exp $ */
/*-
@@ -94,7 +94,6 @@
int dec_eb64plus_intr_map(void *, pcitag_t, int, int,
pci_intr_handle_t *);
const char *dec_eb64plus_intr_string(void *, pci_intr_handle_t);
-const struct evcnt *dec_eb64plus_intr_evcnt(void *, pci_intr_handle_t);
void *dec_eb64plus_intr_establish(void *, pci_intr_handle_t,
int, int (*func)(void *), void *, char *);
void dec_eb64plus_intr_disestablish(void *, void *);
diff --git a/sys/arch/alpha/pci/pci_kn20aa.c b/sys/arch/alpha/pci/pci_kn20aa.c
index dec0ee5bd47..ba6eb7fd1cc 100644
--- a/sys/arch/alpha/pci/pci_kn20aa.c
+++ b/sys/arch/alpha/pci/pci_kn20aa.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_kn20aa.c,v 1.19 2003/05/10 21:11:12 deraadt Exp $ */
+/* $OpenBSD: pci_kn20aa.c,v 1.20 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: pci_kn20aa.c,v 1.21 1996/11/17 02:05:27 cgd Exp $ */
/*
@@ -49,10 +49,6 @@
#include <alpha/pci/pci_kn20aa.h>
-#ifndef EVCNT_COUNTERS
-#include <machine/intrcnt.h>
-#endif
-
#include "sio.h"
#if NSIO
#include <alpha/pci/siovar.h>
@@ -71,9 +67,7 @@ void dec_kn20aa_intr_disestablish(void *, void *);
#define PCI_STRAY_MAX 5
struct alpha_shared_intr *kn20aa_pci_intr;
-#ifdef EVCNT_COUNTERS
-struct evcnt kn20aa_intr_evcnt;
-#endif
+struct evcount kn20aa_intr_count;
void kn20aa_iointr(void *framep, unsigned long vec);
void kn20aa_enable_intr(int irq);
@@ -255,13 +249,7 @@ kn20aa_iointr(framep, vec)
panic("kn20aa_iointr: vec 0x%x out of range", vec);
irq = (vec - 0x900) >> 4;
-#ifdef EVCNT_COUNTERS
- kn20aa_intr_evcnt.ev_count++;
-#else
- if (KN20AA_MAX_IRQ != INTRCNT_KN20AA_IRQ_LEN)
- panic("kn20aa interrupt counter sizes inconsistent");
- intrcnt[INTRCNT_KN20AA_IRQ + irq]++;
-#endif
+ kn20aa_intr_count.ec_count++;
if (!alpha_shared_intr_dispatch(kn20aa_pci_intr, irq)) {
alpha_shared_intr_stray(kn20aa_pci_intr, irq,
diff --git a/sys/arch/alpha/pci/pci_kn20aa.h b/sys/arch/alpha/pci/pci_kn20aa.h
index 8f656d4406e..b96b9fe7db9 100644
--- a/sys/arch/alpha/pci/pci_kn20aa.h
+++ b/sys/arch/alpha/pci/pci_kn20aa.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_kn20aa.h,v 1.5 2002/03/14 01:26:27 millert Exp $ */
+/* $OpenBSD: pci_kn20aa.h,v 1.6 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: pci_kn20aa.h,v 1.2 1996/04/13 00:24:35 cgd Exp $ */
/*
@@ -29,7 +29,3 @@
*/
void pci_kn20aa_pickintr(struct cia_config *);
-
-#ifdef EVCNT_COUNTERS
-extern struct evcnt kn20aa_intr_evcnt;
-#endif
diff --git a/sys/arch/alpha/pci/pci_up1000.c b/sys/arch/alpha/pci/pci_up1000.c
index d615581988d..6fe070eacd9 100644
--- a/sys/arch/alpha/pci/pci_up1000.c
+++ b/sys/arch/alpha/pci/pci_up1000.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_up1000.c,v 1.7 2001/12/14 00:44:59 nate Exp $ */
+/* $OpenBSD: pci_up1000.c,v 1.8 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: pci_up1000.c,v 1.6 2000/12/28 22:59:07 sommerfeld Exp $ */
/*-
@@ -68,7 +68,6 @@
int api_up1000_intr_map(void *, pcitag_t, int, int, pci_intr_handle_t *);
const char *api_up1000_intr_string(void *, pci_intr_handle_t);
int api_up1000_intr_line(void *, pci_intr_handle_t);
-const struct evcnt *api_up1000_intr_evcnt(void *, pci_intr_handle_t);
void *api_up1000_intr_establish(void *, pci_intr_handle_t,
int, int (*func)(void *), void *, char *);
void api_up1000_intr_disestablish(void *, void *);
@@ -87,9 +86,6 @@ pci_up1000_pickintr(struct irongate_config *icp)
pc->pc_intr_map = api_up1000_intr_map;
pc->pc_intr_string = api_up1000_intr_string;
pc->pc_intr_line = api_up1000_intr_line;
-#if 0
- pc->pc_intr_evcnt = api_up1000_intr_evcnt;
-#endif
pc->pc_intr_establish = api_up1000_intr_establish;
pc->pc_intr_disestablish = api_up1000_intr_disestablish;
@@ -166,18 +162,6 @@ api_up1000_intr_line(void *icv, pci_intr_handle_t ih)
return sio_intr_line(NULL /*XXX*/, ih);
}
-#if 0
-const struct evcnt *
-api_up1000_intr_evcnt(void *icv, pci_intr_handle_t ih)
-{
-#if 0
- struct irongate_config *icp = icv;
-#endif
-
- return sio_intr_evcnt(NULL /*XXX*/, ih);
-}
-#endif
-
void *
api_up1000_intr_establish(void *icv, pci_intr_handle_t ih, int level,
int (*func)(void *), void *arg, char *name)
diff --git a/sys/arch/alpha/pci/sio.c b/sys/arch/alpha/pci/sio.c
index 6dc2a6f24d8..e8580c600de 100644
--- a/sys/arch/alpha/pci/sio.c
+++ b/sys/arch/alpha/pci/sio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sio.c,v 1.28 2004/01/12 19:01:54 deraadt Exp $ */
+/* $OpenBSD: sio.c,v 1.29 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: sio.c,v 1.15 1996/12/05 01:39:36 cgd Exp $ */
/*
@@ -168,9 +168,7 @@ sioattach(parent, self, aux)
sc->sc_haseisa = (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_INTEL &&
PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_INTEL_PCEB);
-#ifdef EVCNT_COUNTERS
- evcnt_attach(&sc->sc_dv, "intr", &sio_intr_evcnt);
-#endif
+ evcount_attach(&sio_intr_count, self->dv_xname, NULL, &evcount_intr);
set_pci_isa_bridge_callback(sio_bridge_callback, sc);
}
diff --git a/sys/arch/alpha/pci/sio_pic.c b/sys/arch/alpha/pci/sio_pic.c
index 4b35058438e..84a462cbe0d 100644
--- a/sys/arch/alpha/pci/sio_pic.c
+++ b/sys/arch/alpha/pci/sio_pic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sio_pic.c,v 1.23 2004/06/18 21:33:42 miod Exp $ */
+/* $OpenBSD: sio_pic.c,v 1.24 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: sio_pic.c,v 1.28 2000/06/06 03:10:13 thorpej Exp $ */
/*-
@@ -370,13 +370,6 @@ sio_intr_setup(pc, iot)
for (i = 0; i < ICU_LEN; i++) {
alpha_shared_intr_set_maxstrays(sio_intr, i, STRAY_MAX);
-#ifdef notyet
- cp = alpha_shared_intr_string(sio_intr, i);
- sprintf(cp, "irq %d", i);
- evcnt_attach_dynamic(alpha_shared_intr_evcnt(sio_intr, i),
- EVCNT_TYPE_INTR, NULL, "isa", cp);
-#endif
-
switch (i) {
case 0:
case 1:
@@ -453,20 +446,6 @@ sio_intr_line(v, irq)
return (irq);
}
-#ifdef notyet
-const struct evcnt *
-sio_intr_evcnt(v, irq)
- void *v;
- int irq;
-{
-
- if (irq == 0 || irq >= ICU_LEN || irq == 2)
- panic("sio_intr_evcnt: bogus isa irq 0x%x", irq);
-
- return (alpha_shared_intr_evcnt(sio_intr, irq));
-}
-#endif
-
void *
sio_intr_establish(v, irq, type, level, fn, arg, name)
void *v, *arg;
diff --git a/sys/arch/alpha/pci/siovar.h b/sys/arch/alpha/pci/siovar.h
index e8798963ec3..a6d2ffaeae1 100644
--- a/sys/arch/alpha/pci/siovar.h
+++ b/sys/arch/alpha/pci/siovar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: siovar.h,v 1.11 2002/03/14 03:15:50 millert Exp $ */
+/* $OpenBSD: siovar.h,v 1.12 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: siovar.h,v 1.5 1996/10/23 04:12:34 cgd Exp $ */
/*
@@ -28,6 +28,8 @@
* rights to redistribute these changes.
*/
+#include <sys/evcount.h>
+
void sio_intr_setup(pci_chipset_tag_t, bus_space_tag_t);
void sio_iointr(void *framep, unsigned long vec);
@@ -37,6 +39,4 @@ void *sio_intr_establish(void *, int, int, int, int (*)(void *),
void *, char *);
void sio_intr_disestablish(void *, void *);
-#ifdef EVCNT_COUNTERS
-extern struct evcnt sio_intr_evcnt;
-#endif
+struct evcount sio_intr_count;
diff --git a/sys/arch/alpha/tc/ioasic.c b/sys/arch/alpha/tc/ioasic.c
index aa5e360149d..6c44ccee234 100644
--- a/sys/arch/alpha/tc/ioasic.c
+++ b/sys/arch/alpha/tc/ioasic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ioasic.c,v 1.10 2003/05/13 21:32:17 deraadt Exp $ */
+/* $OpenBSD: ioasic.c,v 1.11 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: ioasic.c,v 1.34 2000/07/18 06:10:06 thorpej Exp $ */
/*-
@@ -75,7 +75,6 @@
#include <machine/bus.h>
#include <machine/pte.h>
#include <machine/rpb.h>
-#include <machine/intrcnt.h>
#include <dev/tc/tcvar.h>
#include <dev/tc/ioasicreg.h>
@@ -124,9 +123,7 @@ int ioasic_ndevs = sizeof(ioasic_devs) / sizeof(ioasic_devs[0]);
struct ioasicintr {
int (*iai_func)(void *);
void *iai_arg;
-#ifdef EVCNT_COUNTERS
- struct evcnt iai_evcnt;
-#endif
+ struct evcount iai_count;
} ioasicintrs[IOASIC_NCOOKIES];
tc_addr_t ioasic_base; /* XXX XXX XXX */
@@ -166,7 +163,6 @@ ioasicattach(parent, self, aux)
u_long ssr;
#endif
u_long i, imsk;
- const struct evcnt *pevcnt;
char *cp;
ioasicfound = 1;
@@ -203,7 +199,6 @@ ioasicattach(parent, self, aux)
/*
* Set up interrupt handlers.
*/
- pevcnt = tc_intr_evcnt(parent, ta->ta_cookie);
for (i = 0; i < IOASIC_NCOOKIES; i++) {
ioasicintrs[i].iai_func = ioasic_intrnull;
ioasicintrs[i].iai_arg = (void *)i;
@@ -212,10 +207,8 @@ ioasicattach(parent, self, aux)
if (cp == NULL)
panic("ioasicattach");
snprintf(cp, 12, "slot %lu", i);
-#ifdef EVCNT_COUNTERS
- evcnt_attach_dynamic(&ioasicintrs[i].iai_evcnt,
- EVCNT_TYPE_INTR, pevcnt, self->dv_xname, cp);
-#endif
+ evcount_attach(&ioasicintrs[i].iai_count, self->dv_xname, NULL,
+ &evcount_intr);
}
tc_intr_establish(parent, ta->ta_cookie, TC_IPL_NONE, ioasic_intr, sc);
@@ -318,17 +311,11 @@ ioasic_intr(val)
osir = sir =
bus_space_read_4(sc->sc_bst, sc->sc_bsh, IOASIC_INTR);
-#ifdef EVCNT_COUNTERS
-#define INCRINTRCNT(slot) ioasicintrs[slot].iai_evcnt.ev_count++
-#else
-#define INCRINTRCNT(slot) intrcnt[INTRCNT_IOASIC + slot]++
-#endif
-
/* XXX DUPLICATION OF INTERRUPT BIT INFORMATION... */
#define CHECKINTR(slot, bits, clear) \
if (sir & (bits)) { \
ifound = 1; \
- INCRINTRCNT(slot); \
+ ioasicintrs[slot].iai_count.ec_count++; \
(*ioasicintrs[slot].iai_func) \
(ioasicintrs[slot].iai_arg); \
if (clear) \
diff --git a/sys/arch/alpha/tc/tc_3000_300.c b/sys/arch/alpha/tc/tc_3000_300.c
index 1c352912f27..08c26d6ad6f 100644
--- a/sys/arch/alpha/tc/tc_3000_300.c
+++ b/sys/arch/alpha/tc/tc_3000_300.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tc_3000_300.c,v 1.10 2003/05/13 21:32:17 deraadt Exp $ */
+/* $OpenBSD: tc_3000_300.c,v 1.11 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: tc_3000_300.c,v 1.26 2001/07/27 00:25:21 thorpej Exp $ */
/*
@@ -35,7 +35,6 @@
#include <machine/autoconf.h>
#include <machine/pte.h>
-#include <machine/intrcnt.h>
#include <dev/tc/tcvar.h>
#include <dev/tc/ioasicreg.h>
@@ -85,7 +84,7 @@ int tc_3000_300_nbuiltins =
struct tcintr {
int (*tci_func)(void *);
void *tci_arg;
- struct evcnt tci_evcnt;
+ struct evcount tci_count;
} tc_3000_300_intr[TC_3000_300_NCOOKIES];
void
@@ -112,27 +111,11 @@ tc_3000_300_intr_setup()
if (cp == NULL)
panic("tc_3000_300_intr_setup");
snprintf(cp, 12, "slot %lu", i);
-#ifdef EVCNT_COUNTERS
- evcnt_attach_dynamic(&tc_3000_300_intr[i].tci_evcnt,
- EVCNT_TYPE_INTR, NULL, "tc", cp);
-#endif
+ evcount_attach(&tc_3000_300_intr[i].tci_count, "tc", NULL,
+ &evcount_intr);
}
}
-const struct evcnt *
-tc_3000_300_intr_evcnt(tcadev, cookie)
- struct device *tcadev;
- void *cookie;
-{
- u_long dev = (u_long)cookie;
-
-#ifdef DIAGNOSTIC
- /* XXX bounds-check cookie. */
-#endif
-
- return (&tc_3000_300_intr[dev].tci_evcnt);
-}
-
void
tc_3000_300_intr_establish(tcadev, cookie, level, func, arg)
struct device *tcadev;
@@ -249,16 +232,10 @@ tc_3000_300_iointr(arg, vec)
ifound = 0;
-#ifdef EVCNT_COUNTERS
-#define INCRINTRCNT(slot) tc_3000_300_intr[slot].tci_evcnt.ev_count++
-#else
-#define INCRINTRCNT(slot) intrcnt[INTRCNT_KN16 + slot]++
-#endif
-
#define CHECKINTR(slot, flag) \
if (flag) { \
ifound = 1; \
- INCRINTRCNT(slot); \
+ tc_3000_300_intr[slot].tci_count.ec_count++; \
(*tc_3000_300_intr[slot].tci_func) \
(tc_3000_300_intr[slot].tci_arg); \
}
diff --git a/sys/arch/alpha/tc/tc_3000_500.c b/sys/arch/alpha/tc/tc_3000_500.c
index 9dca715fdb8..94aee0a09cd 100644
--- a/sys/arch/alpha/tc/tc_3000_500.c
+++ b/sys/arch/alpha/tc/tc_3000_500.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tc_3000_500.c,v 1.11 2003/05/13 21:32:17 deraadt Exp $ */
+/* $OpenBSD: tc_3000_500.c,v 1.12 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: tc_3000_500.c,v 1.24 2001/07/27 00:25:21 thorpej Exp $ */
/*
@@ -36,7 +36,6 @@
#include <machine/autoconf.h>
#include <machine/pte.h>
#include <machine/rpb.h>
-#include <machine/intrcnt.h>
#include <dev/tc/tcvar.h>
#include <alpha/tc/tc_conf.h>
@@ -104,7 +103,7 @@ u_int32_t tc_3000_500_intrbits[TC_3000_500_NCOOKIES] = {
struct tcintr {
int (*tci_func)(void *);
void *tci_arg;
- struct evcnt tci_evcnt;
+ struct evcount tci_count;
} tc_3000_500_intr[TC_3000_500_NCOOKIES];
u_int32_t tc_3000_500_imask; /* intrs we want to ignore; mirrors IMR. */
@@ -136,27 +135,11 @@ tc_3000_500_intr_setup()
if (cp == NULL)
panic("tc_3000_500_intr_setup");
snprintf(cp, 12, "slot %lu", i);
-#ifdef EVCNT_COUNTERS
- evcnt_attach_dynamic(&tc_3000_500_intr[i].tci_evcnt,
- EVCNT_TYPE_INTR, NULL, "tc", cp);
-#endif
+ evcount_attach(&tc_3000_500_intr[i].tci_count, "tc", NULL,
+ &evcount_intr);
}
}
-const struct evcnt *
-tc_3000_500_intr_evcnt(tcadev, cookie)
- struct device *tcadev;
- void *cookie;
-{
- u_long dev = (u_long)cookie;
-
-#ifdef DIAGNOSTIC
- /* XXX bounds-check cookie. */
-#endif
-
- return (&tc_3000_500_intr[dev].tci_evcnt);
-}
-
void
tc_3000_500_intr_establish(tcadev, cookie, level, func, arg)
struct device *tcadev;
@@ -241,16 +224,10 @@ tc_3000_500_iointr(arg, vec)
ifound = 0;
-#ifdef EVCNT_COUNTERS
-#define INCRINTRCNT(slot) tc_3000_500_intr[slot].tci_evcnt.ev_count++
-#else
-#define INCRINTRCNT(slot) intrcnt[INTRCNT_KN15 + slot]++
-#endif
-
#define CHECKINTR(slot) \
if (ir & tc_3000_500_intrbits[slot]) { \
ifound = 1; \
- INCRINTRCNT(slot); \
+ tc_3000_500_intr[slot].tci_count.ec_count++; \
(*tc_3000_500_intr[slot].tci_func) \
(tc_3000_500_intr[slot].tci_arg); \
}
diff --git a/sys/arch/alpha/tc/tc_conf.h b/sys/arch/alpha/tc/tc_conf.h
index ec70762c9f9..b4391d67ef8 100644
--- a/sys/arch/alpha/tc/tc_conf.h
+++ b/sys/arch/alpha/tc/tc_conf.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tc_conf.h,v 1.7 2002/05/02 22:56:06 miod Exp $ */
+/* $OpenBSD: tc_conf.h,v 1.8 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: tc_conf.h,v 1.10 2000/06/04 19:14:29 cgd Exp $ */
/*
@@ -38,8 +38,6 @@
extern void tc_3000_500_intr_setup(void);
extern void tc_3000_500_iointr(void *, unsigned long);
-extern const struct evcnt *
- tc_3000_500_intr_evcnt(struct device *, void *);
extern void tc_3000_500_intr_establish(struct device *, void *,
tc_intrlevel_t, int (*)(void *), void *);
extern void tc_3000_500_intr_disestablish(struct device *, void *);
@@ -58,8 +56,6 @@ extern struct tc_builtin tc_3000_500_nographics_builtins[];
extern void tc_3000_300_intr_setup(void);
extern void tc_3000_300_iointr(void *, unsigned long);
-extern const struct evcnt *
- tc_3000_300_intr_evcnt(struct device *, void *);
extern void tc_3000_300_intr_establish(struct device *, void *,
tc_intrlevel_t, int (*)(void *), void *);
extern void tc_3000_300_intr_disestablish(struct device *, void *);
diff --git a/sys/arch/alpha/tc/tcasic.c b/sys/arch/alpha/tc/tcasic.c
index 1875007363d..6e6cebb5d02 100644
--- a/sys/arch/alpha/tc/tcasic.c
+++ b/sys/arch/alpha/tc/tcasic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcasic.c,v 1.12 2002/05/03 00:04:26 millert Exp $ */
+/* $OpenBSD: tcasic.c,v 1.13 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: tcasic.c,v 1.36 2001/08/23 01:16:52 nisimura Exp $ */
/*
@@ -108,7 +108,6 @@ tcasicattach(parent, self, aux)
tba.tba_nbuiltins = tc_3000_500_nographics_nbuiltins;
tba.tba_builtins = tc_3000_500_nographics_builtins;
}
- tba.tba_intr_evcnt = tc_3000_500_intr_evcnt;
tba.tba_intr_establish = tc_3000_500_intr_establish;
tba.tba_intr_disestablish = tc_3000_500_intr_disestablish;
tba.tba_get_dma_tag = tc_dma_get_tag_3000_500;
@@ -129,7 +128,6 @@ tcasicattach(parent, self, aux)
tba.tba_slots = tc_3000_300_slots;
tba.tba_nbuiltins = tc_3000_300_nbuiltins;
tba.tba_builtins = tc_3000_300_builtins;
- tba.tba_intr_evcnt = tc_3000_300_intr_evcnt;
tba.tba_intr_establish = tc_3000_300_intr_establish;
tba.tba_intr_disestablish = tc_3000_300_intr_disestablish;
tba.tba_get_dma_tag = tc_dma_get_tag_3000_300;
diff --git a/sys/dev/tc/ioasicvar.h b/sys/dev/tc/ioasicvar.h
index 09b95ac8414..b554e9aff52 100644
--- a/sys/dev/tc/ioasicvar.h
+++ b/sys/dev/tc/ioasicvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ioasicvar.h,v 1.6 2002/05/02 22:56:06 miod Exp $ */
+/* $OpenBSD: ioasicvar.h,v 1.7 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: ioasicvar.h,v 1.14 2000/10/17 09:45:49 nisimura Exp $ */
/*
@@ -66,7 +66,6 @@ extern struct cfdriver ioasic_cd;
*/
extern tc_addr_t ioasic_base;
-const struct evcnt *ioasic_intr_evcnt(struct device *, void *);
void ioasic_intr_establish(struct device *, void *,
int, int (*)(void *), void *);
void ioasic_intr_disestablish(struct device *, void *);
diff --git a/sys/dev/tc/tc.c b/sys/dev/tc/tc.c
index 8f31502139d..73f5a1cd040 100644
--- a/sys/dev/tc/tc.c
+++ b/sys/dev/tc/tc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tc.c,v 1.14 2003/04/27 11:22:54 ho Exp $ */
+/* $OpenBSD: tc.c,v 1.15 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: tc.c,v 1.29 2001/11/13 06:26:10 lukem Exp $ */
/*
@@ -91,7 +91,6 @@ tcattach(parent, self, aux)
sc->sc_speed = tba->tba_speed;
sc->sc_nslots = tba->tba_nslots;
sc->sc_slots = tba->tba_slots;
- sc->sc_intr_evcnt = tba->tba_intr_evcnt;
sc->sc_intr_establish = tba->tba_intr_establish;
sc->sc_intr_disestablish = tba->tba_intr_disestablish;
sc->sc_get_dma_tag = tba->tba_get_dma_tag;
@@ -262,14 +261,6 @@ tc_checkslot(slotbase, namep)
return (0);
}
-const struct evcnt *
-tc_intr_evcnt(struct device *dev, void *cookie)
-{
- struct tc_softc *sc = tc_cd.cd_devs[0];
-
- return ((*sc->sc_intr_evcnt)(dev, cookie));
-}
-
void
tc_intr_establish(dev, cookie, level, handler, arg)
struct device *dev;
diff --git a/sys/dev/tc/tcds.c b/sys/dev/tc/tcds.c
index 4e7d6947641..22aeaeebf2d 100644
--- a/sys/dev/tc/tcds.c
+++ b/sys/dev/tc/tcds.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcds.c,v 1.3 2003/09/26 21:43:31 miod Exp $ */
+/* $OpenBSD: tcds.c,v 1.4 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: tcds.c,v 1.3 2001/11/13 06:26:10 lukem Exp $ */
/*-
@@ -82,10 +82,6 @@
#include <machine/bus.h>
-#ifndef EVCNT_COUNTERS
-#include <machine/intrcnt.h>
-#endif
-
#include <dev/tc/tcvar.h>
#include <dev/tc/tcdsreg.h>
#include <dev/tc/tcdsvar.h>
@@ -172,7 +168,6 @@ tcdsattach(parent, self, aux)
struct tcds_device *td;
bus_space_handle_t sbsh[2];
int i, gpi2;
- const struct evcnt *pevcnt;
td = tcds_lookup(ta->ta_modname);
if (td == NULL)
@@ -211,7 +206,6 @@ tcdsattach(parent, self, aux)
sc->sc_cookie = ta->ta_cookie;
- pevcnt = tc_intr_evcnt(parent, sc->sc_cookie);
tc_intr_establish(parent, sc->sc_cookie, TC_IPL_BIO, tcds_intr, sc);
/*
@@ -235,17 +229,11 @@ tcdsattach(parent, self, aux)
/* fill in common information first */
for (i = 0; i < 2; i++) {
- char *cp;
-
slotc = &sc->sc_slots[i];
bzero(slotc, sizeof *slotc); /* clear everything */
- cp = slotc->sc_name;
- snprintf(cp, sizeof(slotc->sc_name), "chip %d", i);
-#ifdef EVCNT_COUNTERS
- evcnt_attach_dynamic(&slotc->sc_evcnt, EVCNT_TYPE_INTR,
- pevcnt, sc->sc_dv.dv_xname, cp);
-#endif
+ evcount_attach(&slotc->sc_count, sc->sc_dv.dv_xname, NULL,
+ &evcount_intr);
slotc->sc_slot = i;
slotc->sc_bst = sc->sc_bst;
@@ -502,15 +490,9 @@ tcds_intr(arg)
bus_space_write_4(sc->sc_bst, sc->sc_bsh, TCDS_CIR, ir0);
tc_syncbus();
-#ifdef EVCNT_COUNTERS
-#define INCRINTRCNT(slot) sc->sc_slots[slot].sc_evcnt.ev_count++
-#else
-#define INCRINTRCNT(slot) intrcnt[INTRCNT_TCDS + slot]++
-#endif
-
#define CHECKINTR(slot) \
if (ir & sc->sc_slots[slot].sc_intrbits) { \
- INCRINTRCNT(slot); \
+ sc->sc_slots[slot].sc_count.ec_count++; \
(void)(*sc->sc_slots[slot].sc_intrhand) \
(sc->sc_slots[slot].sc_intrarg); \
}
diff --git a/sys/dev/tc/tcdsvar.h b/sys/dev/tc/tcdsvar.h
index e1470188d10..b5d7a5c8125 100644
--- a/sys/dev/tc/tcdsvar.h
+++ b/sys/dev/tc/tcdsvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcdsvar.h,v 1.1 2002/05/02 22:56:06 miod Exp $ */
+/* $OpenBSD: tcdsvar.h,v 1.2 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: tcdsvar.h,v 1.2 2001/08/22 05:00:27 nisimura Exp $ */
/*
@@ -39,7 +39,7 @@ struct tcds_slotconfig {
int (*sc_intrhand)(void *); /* intr. handler */
void *sc_intrarg; /* intr. handler arg. */
- struct evcnt sc_evcnt; /* intr. count */
+ struct evcount sc_count; /* intr. count */
char sc_name[8]; /* ev_name */
/*
diff --git a/sys/dev/tc/tcvar.h b/sys/dev/tc/tcvar.h
index 35a5db9bc30..6d7319a01ea 100644
--- a/sys/dev/tc/tcvar.h
+++ b/sys/dev/tc/tcvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcvar.h,v 1.11 2003/04/27 11:22:54 ho Exp $ */
+/* $OpenBSD: tcvar.h,v 1.12 2004/06/28 02:28:43 aaron Exp $ */
/* $NetBSD: tcvar.h,v 1.17 2000/06/04 19:15:15 cgd Exp $ */
/*
@@ -70,7 +70,6 @@ struct tc_softc {
int sc_nslots;
struct tc_slotdesc *sc_slots;
- const struct evcnt *(*sc_intr_evcnt)(struct device *, void *);
void (*sc_intr_establish)(struct device *, void *,
int, int (*)(void *), void *);
void (*sc_intr_disestablish)(struct device *, void *);
@@ -93,7 +92,6 @@ struct tcbus_attach_args {
/* TC bus resource management; XXX will move elsewhere eventually. */
- const struct evcnt *(*tba_intr_evcnt)(struct device *, void *);
void (*tba_intr_establish)(struct device *, void *,
int, int (*)(void *), void *);
void (*tba_intr_disestablish)(struct device *, void *);
@@ -142,7 +140,6 @@ struct tc_builtin {
int tc_checkslot(tc_addr_t, char *);
void tc_devinfo(const char *, char *, size_t);
void tcattach(struct device *, struct device *, void *);
-const struct evcnt *tc_intr_evcnt(struct device *, void *);
void tc_intr_establish(struct device *, void *, int, int (*)(void *),
void *);
void tc_intr_disestablish(struct device *, void *);