Implement the more flexiable `evcnt' interface as discussed (briefly) on

tech-kern and now documented in evcnt(9).
This commit is contained in:
cgd 2000-06-04 19:14:14 +00:00
parent e2293f4ad0
commit cffb580806
110 changed files with 1337 additions and 229 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: mi,v 1.224 2000/06/04 11:52:06 itojun Exp $
# $NetBSD: mi,v 1.225 2000/06/04 19:14:14 cgd Exp $
./sys comp-sysutil-root
./usr/bin/addr2line comp-miscutil-bin
./usr/bin/ar comp-util-bin
@ -2596,6 +2596,10 @@
./usr/share/man/cat9/ether_delmulti.0 comp-kern-catman
./usr/share/man/cat9/ether_ifattach.0 comp-kern-catman
./usr/share/man/cat9/ethersubr.0 comp-kern-catman
./usr/share/man/cat9/evcnt.0 comp-kern-catman
./usr/share/man/cat9/evcnt_attach_dynamic.0 comp-kern-catman
./usr/share/man/cat9/evcnt_attach_static.0 comp-kern-catman
./usr/share/man/cat9/evcnt_detach.0 comp-kern-catman
./usr/share/man/cat9/extent.0 comp-kern-catman
./usr/share/man/cat9/extent_alloc.0 comp-kern-catman
./usr/share/man/cat9/extent_alloc_region.0 comp-kern-catman
@ -4124,6 +4128,10 @@
./usr/share/man/man9/ether_delmulti.9 comp-kern-man
./usr/share/man/man9/ether_ifattach.9 comp-kern-man
./usr/share/man/man9/ethersubr.9 comp-kern-man
./usr/share/man/man9/evcnt.9 comp-kern-man
./usr/share/man/man9/evcnt_attach_dynamic.9 comp-kern-man
./usr/share/man/man9/evcnt_attach_static.9 comp-kern-man
./usr/share/man/man9/evcnt_detach.9 comp-kern-man
./usr/share/man/man9/extent.9 comp-kern-man
./usr/share/man/man9/extent_alloc.9 comp-kern-man
./usr/share/man/man9/extent_alloc_region.9 comp-kern-man

View File

@ -1,10 +1,10 @@
# $NetBSD: Makefile,v 1.61 2000/05/31 00:40:51 cgd Exp $
# $NetBSD: Makefile,v 1.62 2000/06/04 19:14:16 cgd Exp $
# Makefile for section 9 (kernel function and variable) manual pages.
MAN= access.9 arp.9 audio.9 bus_dma.9 bus_space.9 callout.9 copy.9 \
cpu_reboot.9 ctxsw.9 disk.9 disklabel.9 dopowerhooks.9 \
doshutdownhooks.9 ethersubr.9 extent.9 fetch.9 fork1.9 \
doshutdownhooks.9 ethersubr.9 evcnt.9 extent.9 fetch.9 fork1.9 \
humanize_number.9 inittodr.9 intro.9 ioctl.9 kprintf.9 \
log.9 malloc.9 mbuf.9 microtime.9 panic.9 pfil.9 physio.9 pool.9 \
powerhook_establish.9 psignal.9 ratecheck.9 resettodr.9 rnd.9 \
@ -68,6 +68,8 @@ MLINKS+=ethersubr.9 ether_ifattach.9 ethersubr.9 ether_addmulti.9 \
ethersubr.9 ETHER_FIRST_MULTI.9 ethersubr.9 ETHER_NEXT_MULTI.9 \
ethersubr.9 fddi_ifattach.9 \
ethersubr.9 fddi_addmulti.9 ethersubr.9 fddi_delmulti.9
MLINKS+=evcnt.9 evcnt_attach_dynamic.9 evcnt.9 evcnt_attach_static.9 \
evcnt.9 evcnt_detach.9
MLINKS+=extent.9 extent_create.9 extent.9 extent_destroy.9 \
extent.9 extent_alloc.9 extent.9 extent_alloc_subregion.9 \
extent.9 extent_alloc_region.9 extent.9 extent_free.9 \

316
share/man/man9/evcnt.9 Normal file
View File

@ -0,0 +1,316 @@
.\" $NetBSD: evcnt.9,v 1.1 2000/06/04 19:14:17 cgd Exp $
.\"
.\" Copyright (c) 2000 Christopher G. Demetriou
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed for the NetBSD Project
.\" by Christopher G. Demetriou.
.\" 4. The name of the author may not be used to endorse or promote products
.\" derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd June 1, 2000
.Dt EVCNT 9
.Os
.Sh NAME
.Nm evcnt ,
.Nm evcnt_attach_dynamic ,
.Nm evcnt_attach_static ,
.Nm evcnt_detach
.Nd generic event counter framework
.Sh SYNOPSIS
.Fd #include <sys/device.h>
.Ft void
.Fn evcnt_attach_dynamic "struct evcnt *ev" "int type" "const struct evcnt *parent" "const char *group" "const char *name"
.Ft void
.Fn evcnt_attach_static "struct evcnt *ev"
.Ft void
.Fn evcnt_detach "struct evcnt *ev"
.Sh DESCRIPTION
The
.Nx
generic event counter framework is designed to provide a flexible and
hierarchical event counting facility, which is useful for tracking
system events (including device interrupts).
.Pp
The fundamental component of this framework is the
.Nm evcnt
structure. Its user-accessible fields are:
.Bd -literal
struct evcnt {
u_int64_t ev_count; /* how many have occurred */
TAILQ_ENTRY(evcnt) ev_list; /* entry on list of all counters */
unsigned char ev_type; /* counter type; see below */
unsigned char ev_grouplen; /* 'group' len, excluding NUL */
unsigned char ev_namelen; /* 'name' len, excluding NUL */
const struct evcnt *ev_parent; /* parent, for hierarchical ctrs */
const char *ev_group; /* name of group */
const char *ev_name; /* name of specific event */
};
.Ed
.Pp
The system maintains a global linked list of all active event counters.
This list, called
.Nm allevents ,
may grow or shrink over time as event counters are dynamically
added to and removed from the system.
.Pp
Each event counter is marked (in the
.Fa ev_type
field) with the type of event being counted.
The following types are currently defined:
.Bl -tag -offset indent -width EVCNT_TYPE_MISC -compact
.It Ev EVCNT_TYPE_MISC
Miscellaneous; doesn't fit into one of the other types.
.It Ev EVCNT_TYPE_INTR
Interrupt counter, reported by
.Ic vmstat -i .
.El
.Pp
Each event counter also has a group name
.Pq Fa ev_group
and
an event name
.Pq Fa ev_name
which are used to identify the counter. The group name
may be shared by a set of counters. For example, device
interrupt counters would use the name of the device whose
interrupts are being counted as the group name.
The counter
name is meant to distinguish the counter from others in its group
(and need not be unique across groups).
Both names should be understandable by users, since they are printed
by commands like
.Xr vmstat 8 .
The constant
.Dv EVCNT_STRING_MAX
is defined to be the maximum group or event name length in
bytes (including the trailing
.Dv NUL ) .
In the current implementation it is 256.
.Pp
To support hierarchical tracking of events, each event counter can
name a
.Dq parent
event counter. For instance, interrupt dispatch code could have an
event counter per interrupt line, and devices could each have
counters for the number of interrupts that they were responsible for
causing. In that case, the counter for a device on a given interrupt line
would have the line's counter as its parent.
The value
.Dv NULL
is be used to indicate that a counter has no parent.
A counter's parent must be attached before the counter is attached,
and detached after the counter is detached.
.Pp
The
.Fn EVCNT_INITIALIZER
macro can be used to provide a static initializer for an event
counter structure. It is be invoked as
.Fn EVCNT_INITIALIZER "type" "parent" "group" "name" ,
and its arguments will be placed into the corresponding fields of
the event counter structure it is initializing. The
.Fa group
and
.Fa name
arguments must be constant strings.
.Pp
The following is a brief description of each function in the framework:
.Bl -tag -width indent
.It Fn "void evcnt_attach_dynamic" "struct evcnt *ev" "int type" "const struct evcnt *parent" "const char *group" "const char *name"
.Pp
Attach the event counter structure pointed to by
.Fa ev
to the system event list. The event counter is cleared and its fields
initialized using the arguments to the function call.
The contents of the remaining elements in the structure (e.g., the
name lengths) are calculated, and the counter is added to the
system event list.
.Pp
The strings specified as the group and
counter names must persist (with the same value)
throughout the life of the event counter; they are referenced by,
not copied into, the counter.
.It Fn "void evcnt_attach_static" "struct evcnt *ev"
.Pp
Attach the statically-initialized event counter structure
pointed to by
.Fa ev
to the system event list. The event counter is assumed to be
statically initialized using the
.Fn EVCNT_INITIALIZER
macro. This function simply calculates structure elements'
values as appropriate (e.g., the string lengths), and adds
the counter to the system event list.
.It Fn "void evcnt_detach" "struct evcnt *ev"
.Pp
Detach the event counter structure pointed to by
.Fa ev
from the system event list.
.El
.Pp
Note that no method is provided to increment the value of an
event counter. Code incrementing an event counter should
do so by directly accessing its
.Fa ev_count
field in a manner that is known to be safe. For instance,
additions to a device's event counters in the interrupt handler
for that device will often be safe without additional protection
(because interrupt handler entries for a given device have to be
serialized).
However, for other uses of event counters, additional locking
or use of machine-dependent atomic operation may be appropriate.
(The overhead of using a mechanism that is guaranteed to
be safe to increment every counter, regardless of actual need
for such a mechanism where the counter is being incremented,
would be too great. On some systems, it might involve a global
lock and several function calls.)
.Sh USING THE FRAMEWORK
This section includes a description on basic use of the framework
and example usage of its functions.
.Pp
Device drivers can use the
.Fn evcnt_attach_dynamic
and
.Fn evcnt_detach
functions to manage device-specific event counters.
Statically configured system modules can use
.Fn evcnt_attach_static
to configure global event counters. Similarly, loadable
modules can use
.Fn evcnt_attach_static
to configure their global event counters,
.Fn evcnt_attach_dynamic
to attach device-specific event
counters, and
.Fn evcnt_detach
to detach all counters when being unloaded.
.Pp
Device drivers that wish to use the generic event counter
framework should place event counter structures in their
.Dq softc
structures. For example, to keep track of the number of interrupts
for a given device (broken down further into
.Dq device readable
and
.Dq device writable
interrupts) a device driver might use:
.Bd -literal
struct foo_softc {
struct device sc_dev; /* generic device information */
[ . . . ]
struct evcnt sc_ev_intr; /* interrupt count */
struct evcnt sc_ev_intr_rd; /* 'readable' interrupt count */
struct evcnt sc_ev_intr_wr; /* 'writable' interrupt count */
[ . . . ]
};
.Ed
.Pp
In the device attach function, those counters would be registered with
the system using the
.Fn evcnt_attach_dynamic
function, using code like:
.Bd -literal
void
fooattach(parent, self, aux)
struct device *parent, *self;
void *aux;
{
struct foo_softc *sc = (struct foo_softc *)self;
[ . . . ]
/* Initialize and attach event counters. */
evcnt_attach_dynamic(&sc->sc_ev, EVCNT_TYPE_INTR,
NULL, sc->sc_dev.dv_xname, "intr");
evcnt_attach_dynamic(&sc->sc_ev_rd, EVCNT_TYPE_INTR,
&sc->sc_ev, sc->sc_dev.dv_xname, "intr rd");
evcnt_attach_dynamic(&sc->sc_ev_wr, EVCNT_TYPE_INTR,
&sc->sc_ev, sc->sc_dev.dv_xname, "intr wr");
[ . . . ]
}
.Ed
.Pp
If the device can be detached from the system, its detach
function should invoke
.Fn evcnt_detach
on each attached counter (making sure to detach any
.Dq parent
counters only after detaching all children).
.Pp
Code like the following might be used to initialize a static
event counter (in this example, one used to track CPU alignment traps):
.Bd -literal
struct evcnt aligntrap_ev = EVCNT_INITIALIZER(EVCNT_TYPE_MISC,
NULL, "cpu", "aligntrap")
.Ed
.Pp
To attach this event counter, code like the following could be used:
.Bd -literal
evcnt_attach_static(&aligntrap_ev);
.Ed
.Sh CODE REFERENCES
This section describes places within the
.Nx
source tree where actual
code implementing or utilizing the event counter framework can be found.
All pathnames are relative to
.Pa /usr/src .
.Pp
The event counter framework itself is implemented within the file
.Pa sys/kern/subr_autoconf.c .
Data structures and function prototypes for the framework are located in
.Pa sys/sys/device.h .
.Pp
Event counters are used throughout the system.
.Pp
The
.Xr vmstat 8
source file
.Pa usr.bin/vmstat/vmstat.c
shows an example of how to access event counters from user programs.
.Sh AUTHOR
The
.Nx
generic event counter framework was designed and implemented by
Chris Demetriou <cgd@NetBSD.ORG>.
.Sh SEE ALSO
.Xr vmstat 8
.Sh HISTORY
A set of interrupt counter interfaces with similar names to the interfaces
in the
.Nx
generic event counter framework appeared as part
of the new autoconfiguration system in
.Bx 4.4 .
Those interfaces were never widely adopted in
.Nx
because of limitations in their applicability.
(Their use was limited to non-hierarchical, dynamically
attached device interrupt counters.)
The
.Nx
generic event counter framework first appeared in
.Nx 1.5 .

View File

@ -1,4 +1,4 @@
/* $NetBSD: clock.c,v 1.27 2000/06/03 20:47:36 thorpej Exp $ */
/* $NetBSD: clock.c,v 1.28 2000/06/04 19:14:18 cgd Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -44,7 +44,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.27 2000/06/03 20:47:36 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.28 2000/06/04 19:14:18 cgd Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@ -100,7 +100,8 @@ clockattach(dev, fns)
clockdev = dev;
clockfns = fns;
#ifdef EVCNT_COUNTERS
evcnt_attach(dev, "intr", &clock_intr_evcnt);
evcnt_attach_dynamic(&clock_intr_evcnt, EVCNT_TYPE_INTR, NULL,
dev->dv_xname, "intr");
#endif
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: eisa_machdep.h,v 1.4 2000/06/01 00:04:50 cgd Exp $ */
/* $NetBSD: eisa_machdep.h,v 1.5 2000/06/04 19:14:18 cgd Exp $ */
/*
* Copyright (c) 1996 Carnegie-Mellon University.
@ -41,6 +41,7 @@ struct alpha_eisa_chipset {
int (*ec_maxslots)(void *);
int (*ec_intr_map)(void *, u_int, eisa_intr_handle_t *);
const char *(*ec_intr_string)(void *, eisa_intr_handle_t);
const struct evcnt *(*ec_intr_evcnt)(void *, eisa_intr_handle_t);
void *(*ec_intr_establish)(void *, eisa_intr_handle_t,
int, int, int (*)(void *), void *);
void (*ec_intr_disestablish)(void *, void *);
@ -57,6 +58,8 @@ struct alpha_eisa_chipset {
(*(c)->ec_intr_map)((c)->ec_v, (i), (hp))
#define eisa_intr_string(c, h) \
(*(c)->ec_intr_string)((c)->ec_v, (h))
#define eisa_intr_evcnt(c, h) \
(*(c)->ec_intr_evcnt)((c)->ec_v, (h))
#define eisa_intr_establish(c, h, t, l, f, a) \
(*(c)->ec_intr_establish)((c)->ec_v, (h), (t), (l), (f), (a))
#define eisa_intr_disestablish(c, h) \

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.h,v 1.6 2000/06/01 03:55:45 thorpej Exp $ */
/* $NetBSD: isa_machdep.h,v 1.7 2000/06/04 19:14:19 cgd Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@ -77,6 +77,7 @@ struct alpha_isa_chipset {
void (*ic_attach_hook)(struct device *, struct device *,
struct isabus_attach_args *);
const struct evcnt *(*ic_intr_evcnt)(void *, int);
void *(*ic_intr_establish)(void *, int, int, int,
int (*)(void *), void *);
void (*ic_intr_disestablish)(void *, void *);
@ -89,6 +90,8 @@ struct alpha_isa_chipset {
*/
#define isa_attach_hook(p, s, a) \
(*(a)->iba_ic->ic_attach_hook)((p), (s), (a))
#define isa_intr_evcnt(c, i) \
(*(c)->ic_intr_evcnt)((c)->ic_v, (i))
#define isa_intr_establish(c, i, t, l, f, a) \
(*(c)->ic_intr_establish)((c)->ic_v, (i), (t), (l), (f), (a))
#define isa_intr_disestablish(c, h) \

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.4 2000/06/01 00:04:50 cgd Exp $ */
/* $NetBSD: pci_machdep.h,v 1.5 2000/06/04 19:14:19 cgd Exp $ */
/*
* Copyright (c) 1996 Carnegie-Mellon University.
@ -60,6 +60,7 @@ struct alpha_pci_chipset {
int (*pc_intr_map)(void *, pcitag_t, int, int,
pci_intr_handle_t *);
const char *(*pc_intr_string)(void *, pci_intr_handle_t);
const struct evcnt *(*pc_intr_evcnt)(void *, pci_intr_handle_t);
void *(*pc_intr_establish)(void *, pci_intr_handle_t,
int, int (*)(void *), void *);
void (*pc_intr_disestablish)(void *, void *);
@ -89,6 +90,8 @@ struct alpha_pci_chipset {
(*(c)->pc_intr_map)((c)->pc_intr_v, (it), (ip), (il), (ihp))
#define pci_intr_string(c, ih) \
(*(c)->pc_intr_string)((c)->pc_intr_v, (ih))
#define pci_intr_evcnt(c, ih) \
(*(c)->pc_intr_evcnt)((c)->pc_intr_v, (ih))
#define pci_intr_establish(c, ih, l, h, a) \
(*(c)->pc_intr_establish)((c)->pc_intr_v, (ih), (l), (h), (a))
#define pci_intr_disestablish(c, iv) \

View File

@ -1,4 +1,4 @@
/* $NetBSD: a12c.c,v 1.5 1999/11/04 19:15:22 thorpej Exp $ */
/* $NetBSD: a12c.c,v 1.6 2000/06/04 19:14:19 cgd Exp $ */
/* [Notice revision 2.2]
* Copyright (c) 1997, 1998 Avalon Computer Systems, Inc.
@ -38,7 +38,7 @@
#include "opt_avalon_a12.h" /* Config options headers */
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: a12c.c,v 1.5 1999/11/04 19:15:22 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: a12c.c,v 1.6 2000/06/04 19:14:19 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -144,12 +144,13 @@ a12cattach(parent, self, aux)
a12c_init(ccp, 1);
/* XXX print chipset information */
printf(": driver %s over logic %x\n", "$Revision: 1.5 $",
printf(": driver %s over logic %x\n", "$Revision: 1.6 $",
A12_ALL_EXTRACT(REGVAL(A12_VERS)));
pci_a12_pickintr(ccp);
#ifdef EVCNT_COUNTERS
evcnt_attach(self, "intr", &a12_intr_evcnt);
evcnt_attach_dynamic(&a12_intr_evcnt, EVCNT_TYPE_INTR, NULL,
self->dv_xname, "intr");
#endif
clockfns = &noclock_fns; /* XXX? */

View File

@ -1,4 +1,4 @@
/* $NetBSD: dwlpx.c,v 1.19 1999/11/04 19:15:22 thorpej Exp $ */
/* $NetBSD: dwlpx.c,v 1.20 2000/06/04 19:14:19 cgd Exp $ */
/*
* Copyright (c) 1997 by Matthew Jacob
@ -32,7 +32,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: dwlpx.c,v 1.19 1999/11/04 19:15:22 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: dwlpx.c,v 1.20 2000/06/04 19:14:19 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -159,7 +159,8 @@ dwlpxattach(parent, self, aux)
*/
pci_kn8ae_pickintr(&sc->dwlpx_cc, 1);
#ifdef EVCNT_COUNTERS
evcnt_attach(self, "intr", kn8ae_intr_evcnt);
evcnt_attach_dynamic(kn8ae_intr_evcnt, EVCNT_TYPE_INTR, NULL,
self->dv_xname, "intr");
#endif
once++;
} else {

View File

@ -1,4 +1,4 @@
/* $NetBSD: mcpcia.c,v 1.7 1999/11/16 18:33:11 mjacob Exp $ */
/* $NetBSD: mcpcia.c,v 1.8 2000/06/04 19:14:20 cgd Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -74,7 +74,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: mcpcia.c,v 1.7 1999/11/16 18:33:11 mjacob Exp $");
__KERNEL_RCSID(0, "$NetBSD: mcpcia.c,v 1.8 2000/06/04 19:14:20 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -202,7 +202,8 @@ mcpciaattach(parent, self, aux)
pci_kn300_pickintr(ccp, first);
#ifdef EVCNT_COUNTERS
if (first == 1) {
evcnt_attach(self, "intr", kn300_intr_evcnt);
evcnt_attach_dynamic(kn300_intr_evcnt, EVCNT_TYPE_INTR, NULL,
self->dv_xname, "intr");
first = 0;
}
#else

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_1000.c,v 1.7 1999/12/15 22:30:40 thorpej Exp $ */
/* $NetBSD: pci_1000.c,v 1.8 2000/06/04 19:14:20 cgd Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -67,7 +67,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_1000.c,v 1.7 1999/12/15 22:30:40 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_1000.c,v 1.8 2000/06/04 19:14:20 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -99,6 +99,7 @@ static bus_space_handle_t another_mystery_icu_ioh;
int dec_1000_intr_map __P((void *, pcitag_t, int, int, pci_intr_handle_t *));
const char *dec_1000_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_1000_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_1000_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_1000_intr_disestablish __P((void *, void *));
@ -129,6 +130,7 @@ pci_1000_pickintr(core, iot, memt, pc)
pc->pc_intr_v = core;
pc->pc_intr_map = dec_1000_intr_map;
pc->pc_intr_string = dec_1000_intr_string;
pc->pc_intr_evcnt = dec_1000_intr_evcnt;
pc->pc_intr_establish = dec_1000_intr_establish;
pc->pc_intr_disestablish = dec_1000_intr_disestablish;
@ -194,6 +196,16 @@ dec_1000_intr_string(ccv, ih)
return (irqstr);
}
const struct evcnt *
dec_1000_intr_evcnt(ccv, ih)
void *ccv;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_1000_intr_establish(ccv, ih, level, func, arg)
void *ccv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_1000a.c,v 1.9 1999/12/15 22:31:04 thorpej Exp $ */
/* $NetBSD: pci_1000a.c,v 1.10 2000/06/04 19:14:20 cgd Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -67,7 +67,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_1000a.c,v 1.9 1999/12/15 22:31:04 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_1000a.c,v 1.10 2000/06/04 19:14:20 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -105,6 +105,7 @@ static bus_space_handle_t mystery_icu_ioh[2];
int dec_1000a_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_1000a_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_1000a_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_1000a_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_1000a_intr_disestablish __P((void *, void *));
@ -134,6 +135,7 @@ pci_1000a_pickintr(core, iot, memt, pc)
pc->pc_intr_v = core;
pc->pc_intr_map = dec_1000a_intr_map;
pc->pc_intr_string = dec_1000a_intr_string;
pc->pc_intr_evcnt = dec_1000a_intr_evcnt;
pc->pc_intr_establish = dec_1000a_intr_establish;
pc->pc_intr_disestablish = dec_1000a_intr_disestablish;
@ -216,6 +218,16 @@ dec_1000a_intr_string(ccv, ih)
return (irqstr);
}
const struct evcnt *
dec_1000a_intr_evcnt(ccv, ih)
void *ccv;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_1000a_intr_establish(ccv, ih, level, func, arg)
void *ccv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_2100_a50.c,v 1.25 1998/11/19 02:35:39 ross Exp $ */
/* $NetBSD: pci_2100_a50.c,v 1.26 2000/06/04 19:14:21 cgd Exp $ */
/*
* Copyright (c) 1995, 1996 Carnegie-Mellon University.
@ -29,7 +29,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_2100_a50.c,v 1.25 1998/11/19 02:35:39 ross Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_2100_a50.c,v 1.26 2000/06/04 19:14:21 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -59,6 +59,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_2100_a50.c,v 1.25 1998/11/19 02:35:39 ross Exp $
int dec_2100_a50_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_2100_a50_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_2100_a50_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_2100_a50_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_2100_a50_intr_disestablish __P((void *, void *));
@ -84,6 +85,7 @@ pci_2100_a50_pickintr(acp)
pc->pc_intr_v = acp;
pc->pc_intr_map = dec_2100_a50_intr_map;
pc->pc_intr_string = dec_2100_a50_intr_string;
pc->pc_intr_evcnt = dec_2100_a50_intr_evcnt;
pc->pc_intr_establish = dec_2100_a50_intr_establish;
pc->pc_intr_disestablish = dec_2100_a50_intr_disestablish;
@ -231,6 +233,18 @@ dec_2100_a50_intr_string(acv, ih)
return sio_intr_string(NULL /*XXX*/, ih);
}
const struct evcnt *
dec_2100_a50_intr_evcnt(acv, ih)
void *acv;
pci_intr_handle_t ih;
{
#if 0
struct apecs_config *acp = acv;
#endif
return sio_intr_evcnt(NULL /*XXX*/, ih);
}
void *
dec_2100_a50_intr_establish(acv, ih, level, func, arg)
void *acv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_550.c,v 1.14 2000/03/19 02:25:29 thorpej Exp $ */
/* $NetBSD: pci_550.c,v 1.15 2000/06/04 19:14:21 cgd Exp $ */
/*-
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@ -66,7 +66,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_550.c,v 1.14 2000/03/19 02:25:29 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_550.c,v 1.15 2000/06/04 19:14:21 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -104,6 +104,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_550.c,v 1.14 2000/03/19 02:25:29 thorpej Exp $")
int dec_550_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_550_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_550_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_550_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_550_intr_disestablish __P((void *, void *));
@ -150,6 +151,7 @@ pci_550_pickintr(ccp)
pc->pc_intr_v = ccp;
pc->pc_intr_map = dec_550_intr_map;
pc->pc_intr_string = dec_550_intr_string;
pc->pc_intr_evcnt = dec_550_intr_evcnt;
pc->pc_intr_establish = dec_550_intr_establish;
pc->pc_intr_disestablish = dec_550_intr_disestablish;
@ -281,6 +283,25 @@ dec_550_intr_string(ccv, ih)
return (irqstr);
}
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
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_550_intr_establish(ccv, ih, level, func, arg)
void *ccv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_6600.c,v 1.2 2000/03/19 02:25:29 thorpej Exp $ */
/* $NetBSD: pci_6600.c,v 1.3 2000/06/04 19:14:21 cgd Exp $ */
/*-
* Copyright (c) 1999 by Ross Harvey. All rights reserved.
@ -33,7 +33,7 @@
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pci_6600.c,v 1.2 2000/03/19 02:25:29 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_6600.c,v 1.3 2000/06/04 19:14:21 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -84,6 +84,7 @@ void dec_6600_intr_disestablish __P((void *, void *));
void *dec_6600_intr_establish __P((
void *, pci_intr_handle_t, int, int (*func)(void *), void *));
const char *dec_6600_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_6600_intr_evcnt __P((void *, pci_intr_handle_t));
int dec_6600_intr_map __P((void *, pcitag_t, int, int, pci_intr_handle_t *));
void *dec_6600_pciide_compat_intr_establish __P((void *, struct device *,
struct pci_attach_args *, int, int (*)(void *), void *));
@ -105,6 +106,7 @@ pci_6600_pickintr(pcp)
pc->pc_intr_v = pcp;
pc->pc_intr_map = dec_6600_intr_map;
pc->pc_intr_string = dec_6600_intr_string;
pc->pc_intr_evcnt = dec_6600_intr_evcnt;
pc->pc_intr_establish = dec_6600_intr_establish;
pc->pc_intr_disestablish = dec_6600_intr_disestablish;
pc->pc_pciide_compat_intr_establish = NULL;
@ -198,6 +200,22 @@ dec_6600_intr_string(acv, ih)
return (irqstr);
}
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
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_6600_intr_establish(acv, ih, level, func, arg)
void *acv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_a12.c,v 1.4 1998/04/24 01:25:18 mjacob Exp $ */
/* $NetBSD: pci_a12.c,v 1.5 2000/06/04 19:14:22 cgd Exp $ */
/* [Notice revision 2.0]
* Copyright (c) 1997, 1998 Avalon Computer Systems, Inc.
@ -38,7 +38,7 @@
#include "opt_avalon_a12.h" /* Config options headers */
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_a12.c,v 1.4 1998/04/24 01:25:18 mjacob Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_a12.c,v 1.5 2000/06/04 19:14:22 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -110,6 +110,7 @@ struct evcnt a12_intr_evcnt;
int avalon_a12_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *avalon_a12_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *avalon_a12_intr_evcnt __P((void *, pci_intr_handle_t));
void *avalon_a12_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void avalon_a12_intr_disestablish __P((void *, void *));
@ -128,6 +129,7 @@ pci_a12_pickintr(ccp)
pc->pc_intr_v = ccp;
pc->pc_intr_map = avalon_a12_intr_map;
pc->pc_intr_string = avalon_a12_intr_string;
pc->pc_intr_evcnt = avalon_a12_intr_evcnt;
pc->pc_intr_establish = avalon_a12_intr_establish;
pc->pc_intr_disestablish = avalon_a12_intr_disestablish;
@ -157,6 +159,16 @@ avalon_a12_intr_string(ccv, ih)
return "a12 pci irq"; /* see "only one" note above */
}
const struct evcnt *
avalon_a12_intr_evcnt(ccv, ih)
void *ccv;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
avalon_a12_intr_establish(ccv, ih, level, func, arg)
void *ccv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_alphabook1.c,v 1.2 1998/11/19 02:35:39 ross Exp $ */
/* $NetBSD: pci_alphabook1.c,v 1.3 2000/06/04 19:14:22 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -66,7 +66,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_alphabook1.c,v 1.2 1998/11/19 02:35:39 ross Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_alphabook1.c,v 1.3 2000/06/04 19:14:22 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -96,6 +96,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_alphabook1.c,v 1.2 1998/11/19 02:35:39 ross Exp
int dec_alphabook1_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_alphabook1_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_alphabook1_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_alphabook1_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_alphabook1_intr_disestablish __P((void *, void *));
@ -122,6 +123,7 @@ pci_alphabook1_pickintr(lcp)
pc->pc_intr_v = lcp;
pc->pc_intr_map = dec_alphabook1_intr_map;
pc->pc_intr_string = dec_alphabook1_intr_string;
pc->pc_intr_evcnt = dec_alphabook1_intr_evcnt;
pc->pc_intr_establish = dec_alphabook1_intr_establish;
pc->pc_intr_disestablish = dec_alphabook1_intr_disestablish;
@ -197,6 +199,18 @@ dec_alphabook1_intr_string(lcv, ih)
return sio_intr_string(NULL /*XXX*/, ih);
}
const struct evcnt *
dec_alphabook1_intr_evcnt(lcv, ih)
void *lcv;
pci_intr_handle_t ih;
{
#if 0
struct lca_config *lcp = lcv;
#endif
return sio_intr_evcnt(NULL /*XXX*/, ih);
}
void *
dec_alphabook1_intr_establish(lcv, ih, level, func, arg)
void *lcv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_axppci_33.c,v 1.22 1998/11/19 02:35:39 ross Exp $ */
/* $NetBSD: pci_axppci_33.c,v 1.23 2000/06/04 19:14:22 cgd Exp $ */
/*
* Copyright (c) 1995, 1996 Carnegie-Mellon University.
@ -29,7 +29,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_axppci_33.c,v 1.22 1998/11/19 02:35:39 ross Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_axppci_33.c,v 1.23 2000/06/04 19:14:22 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -59,6 +59,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_axppci_33.c,v 1.22 1998/11/19 02:35:39 ross Exp
int dec_axppci_33_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_axppci_33_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_axppci_33_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_axppci_33_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_axppci_33_intr_disestablish __P((void *, void *));
@ -85,6 +86,7 @@ pci_axppci_33_pickintr(lcp)
pc->pc_intr_v = lcp;
pc->pc_intr_map = dec_axppci_33_intr_map;
pc->pc_intr_string = dec_axppci_33_intr_string;
pc->pc_intr_evcnt = dec_axppci_33_intr_evcnt;
pc->pc_intr_establish = dec_axppci_33_intr_establish;
pc->pc_intr_disestablish = dec_axppci_33_intr_disestablish;
@ -231,6 +233,18 @@ dec_axppci_33_intr_string(lcv, ih)
return sio_intr_string(NULL /*XXX*/, ih);
}
const struct evcnt *
dec_axppci_33_intr_evcnt(lcv, ih)
void *lcv;
pci_intr_handle_t ih;
{
#if 0
struct lca_config *lcp = lcv;
#endif
return sio_intr_evcnt(NULL /*XXX*/, ih);
}
void *
dec_axppci_33_intr_establish(lcv, ih, level, func, arg)
void *lcv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_eb164.c,v 1.24 1999/02/12 06:25:13 thorpej Exp $ */
/* $NetBSD: pci_eb164.c,v 1.25 2000/06/04 19:14:23 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -66,7 +66,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_eb164.c,v 1.24 1999/02/12 06:25:13 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_eb164.c,v 1.25 2000/06/04 19:14:23 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -104,6 +104,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_eb164.c,v 1.24 1999/02/12 06:25:13 thorpej Exp $
int dec_eb164_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_eb164_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_eb164_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_eb164_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_eb164_intr_disestablish __P((void *, void *));
@ -138,6 +139,7 @@ pci_eb164_pickintr(ccp)
pc->pc_intr_v = ccp;
pc->pc_intr_map = dec_eb164_intr_map;
pc->pc_intr_string = dec_eb164_intr_string;
pc->pc_intr_evcnt = dec_eb164_intr_evcnt;
pc->pc_intr_establish = dec_eb164_intr_establish;
pc->pc_intr_disestablish = dec_eb164_intr_disestablish;
@ -261,6 +263,19 @@ dec_eb164_intr_string(ccv, ih)
return (irqstr);
}
const struct evcnt *
dec_eb164_intr_evcnt(ccv, ih)
void *ccv;
pci_intr_handle_t ih;
{
#if 0
struct cia_config *ccp = ccv;
#endif
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_eb164_intr_establish(ccv, ih, level, func, arg)
void *ccv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_eb64plus.c,v 1.5 1999/02/12 06:25:13 thorpej Exp $ */
/* $NetBSD: pci_eb64plus.c,v 1.6 2000/06/04 19:14:23 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -66,7 +66,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_eb64plus.c,v 1.5 1999/02/12 06:25:13 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_eb64plus.c,v 1.6 2000/06/04 19:14:23 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -101,6 +101,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_eb64plus.c,v 1.5 1999/02/12 06:25:13 thorpej Exp
int dec_eb64plus_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_eb64plus_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_eb64plus_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_eb64plus_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_eb64plus_intr_disestablish __P((void *, void *));
@ -131,6 +132,7 @@ pci_eb64plus_pickintr(acp)
pc->pc_intr_v = acp;
pc->pc_intr_map = dec_eb64plus_intr_map;
pc->pc_intr_string = dec_eb64plus_intr_string;
pc->pc_intr_evcnt = dec_eb64plus_intr_evcnt;
pc->pc_intr_establish = dec_eb64plus_intr_establish;
pc->pc_intr_disestablish = dec_eb64plus_intr_disestablish;
@ -209,6 +211,16 @@ dec_eb64plus_intr_string(acv, ih)
return (irqstr);
}
const struct evcnt *
dec_eb64plus_intr_evcnt(acv, ih)
void *acv;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_eb64plus_intr_establish(acv, ih, level, func, arg)
void *acv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_eb66.c,v 1.5 1999/02/12 06:25:13 thorpej Exp $ */
/* $NetBSD: pci_eb66.c,v 1.6 2000/06/04 19:14:24 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -66,7 +66,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_eb66.c,v 1.5 1999/02/12 06:25:13 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_eb66.c,v 1.6 2000/06/04 19:14:24 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -99,6 +99,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_eb66.c,v 1.5 1999/02/12 06:25:13 thorpej Exp $")
int dec_eb66_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_eb66_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_eb66_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_eb66_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_eb66_intr_disestablish __P((void *, void *));
@ -126,6 +127,7 @@ pci_eb66_pickintr(lcp)
pc->pc_intr_v = lcp;
pc->pc_intr_map = dec_eb66_intr_map;
pc->pc_intr_string = dec_eb66_intr_string;
pc->pc_intr_evcnt = dec_eb66_intr_evcnt;
pc->pc_intr_establish = dec_eb66_intr_establish;
pc->pc_intr_disestablish = dec_eb66_intr_disestablish;
@ -204,6 +206,16 @@ dec_eb66_intr_string(lcv, ih)
return (irqstr);
}
const struct evcnt *
dec_eb66_intr_evcnt(lcv, ih)
void *lcv;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_eb66_intr_establish(lcv, ih, level, func, arg)
void *lcv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_kn20aa.c,v 1.37 1999/12/15 22:28:15 thorpej Exp $ */
/* $NetBSD: pci_kn20aa.c,v 1.38 2000/06/04 19:14:24 cgd Exp $ */
/*
* Copyright (c) 1995, 1996 Carnegie-Mellon University.
@ -29,7 +29,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_kn20aa.c,v 1.37 1999/12/15 22:28:15 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_kn20aa.c,v 1.38 2000/06/04 19:14:24 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -64,6 +64,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_kn20aa.c,v 1.37 1999/12/15 22:28:15 thorpej Exp
int dec_kn20aa_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_kn20aa_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_kn20aa_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_kn20aa_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_kn20aa_intr_disestablish __P((void *, void *));
@ -94,6 +95,7 @@ pci_kn20aa_pickintr(ccp)
pc->pc_intr_v = ccp;
pc->pc_intr_map = dec_kn20aa_intr_map;
pc->pc_intr_string = dec_kn20aa_intr_string;
pc->pc_intr_evcnt = dec_kn20aa_intr_evcnt;
pc->pc_intr_establish = dec_kn20aa_intr_establish;
pc->pc_intr_disestablish = dec_kn20aa_intr_disestablish;
@ -197,6 +199,19 @@ dec_kn20aa_intr_string(ccv, ih)
return (irqstr);
}
const struct evcnt *
dec_kn20aa_intr_evcnt(ccv, ih)
void *ccv;
pci_intr_handle_t ih;
{
#if 0
struct cia_config *ccp = ccv;
#endif
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_kn20aa_intr_establish(ccv, ih, level, func, arg)
void *ccv, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_kn300.c,v 1.18 2000/02/10 07:45:43 mjacob Exp $ */
/* $NetBSD: pci_kn300.c,v 1.19 2000/06/04 19:14:24 cgd Exp $ */
/*
* Copyright (c) 1998 by Matthew Jacob
@ -32,7 +32,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_kn300.c,v 1.18 2000/02/10 07:45:43 mjacob Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_kn300.c,v 1.19 2000/06/04 19:14:24 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -68,6 +68,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_kn300.c,v 1.18 2000/02/10 07:45:43 mjacob Exp $"
int dec_kn300_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_kn300_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_kn300_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_kn300_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_kn300_intr_disestablish __P((void *, void *));
@ -111,6 +112,7 @@ pci_kn300_pickintr(ccp, first)
pc->pc_intr_v = ccp;
pc->pc_intr_map = dec_kn300_intr_map;
pc->pc_intr_string = dec_kn300_intr_string;
pc->pc_intr_evcnt = dec_kn300_intr_evcnt;
pc->pc_intr_establish = dec_kn300_intr_establish;
pc->pc_intr_disestablish = dec_kn300_intr_disestablish;
@ -193,6 +195,16 @@ dec_kn300_intr_string(ccv, ih)
return (irqstr);
}
const struct evcnt *
dec_kn300_intr_evcnt(ccv, ih)
void *ccv;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_kn300_intr_establish(ccv, ih, level, func, arg)
void *ccv;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_kn8ae.c,v 1.14 1999/02/12 06:25:14 thorpej Exp $ */
/* $NetBSD: pci_kn8ae.c,v 1.15 2000/06/04 19:14:25 cgd Exp $ */
/*
* Copyright (c) 1997 by Matthew Jacob
@ -32,7 +32,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_kn8ae.c,v 1.14 1999/02/12 06:25:14 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_kn8ae.c,v 1.15 2000/06/04 19:14:25 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -61,6 +61,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_kn8ae.c,v 1.14 1999/02/12 06:25:14 thorpej Exp $
int dec_kn8ae_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *dec_kn8ae_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *dec_kn8ae_intr_evcnt __P((void *, pci_intr_handle_t));
void *dec_kn8ae_intr_establish __P((void *, pci_intr_handle_t,
int, int (*func)(void *), void *));
void dec_kn8ae_intr_disestablish __P((void *, void *));
@ -92,6 +93,7 @@ pci_kn8ae_pickintr(ccp, first)
pc->pc_intr_v = ccp;
pc->pc_intr_map = dec_kn8ae_intr_map;
pc->pc_intr_string = dec_kn8ae_intr_string;
pc->pc_intr_evcnt = dec_kn8ae_intr_evcnt;
pc->pc_intr_establish = dec_kn8ae_intr_establish;
pc->pc_intr_disestablish = dec_kn8ae_intr_disestablish;
@ -165,6 +167,16 @@ dec_kn8ae_intr_string(ccv, ih)
return (irqstr);
}
const struct evcnt *
dec_kn8ae_intr_evcnt(ccv, ih)
void *ccv;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
dec_kn8ae_intr_establish(ccv, ih, level, func, arg)
void *ccv;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_up1000.c,v 1.1 2000/06/01 20:30:31 thorpej Exp $ */
/* $NetBSD: pci_up1000.c,v 1.2 2000/06/04 19:14:25 cgd Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@ -38,7 +38,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_up1000.c,v 1.1 2000/06/01 20:30:31 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_up1000.c,v 1.2 2000/06/04 19:14:25 cgd Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -70,6 +70,7 @@ __KERNEL_RCSID(0, "$NetBSD: pci_up1000.c,v 1.1 2000/06/01 20:30:31 thorpej Exp $
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);
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 *);
void api_up1000_intr_disestablish(void *, void *);
@ -86,6 +87,7 @@ pci_up1000_pickintr(struct irongate_config *icp)
pc->pc_intr_v = icp;
pc->pc_intr_map = api_up1000_intr_map;
pc->pc_intr_string = api_up1000_intr_string;
pc->pc_intr_evcnt = api_up1000_intr_evcnt;
pc->pc_intr_establish = api_up1000_intr_establish;
pc->pc_intr_disestablish = api_up1000_intr_disestablish;
@ -155,6 +157,16 @@ api_up1000_intr_string(void *icv, pci_intr_handle_t ih)
return sio_intr_string(NULL /*XXX*/, ih);
}
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);
}
void *
api_up1000_intr_establish(void *icv, pci_intr_handle_t ih, int level,
int (*func)(void *), void *arg)

View File

@ -1,4 +1,4 @@
/* $NetBSD: sio.c,v 1.27 1999/11/12 22:07:28 lukem Exp $ */
/* $NetBSD: sio.c,v 1.28 2000/06/04 19:14:25 cgd Exp $ */
/*
* Copyright (c) 1995, 1996 Carnegie-Mellon University.
@ -29,7 +29,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: sio.c,v 1.27 1999/11/12 22:07:28 lukem Exp $");
__KERNEL_RCSID(0, "$NetBSD: sio.c,v 1.28 2000/06/04 19:14:25 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -155,7 +155,8 @@ sioattach(parent, self, aux)
PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_CONTAQ_82C693);
#ifdef EVCNT_COUNTERS
evcnt_attach(&sc->sc_dv, "intr", &sio_intr_evcnt);
evcnt_attach_dynamic(&sio_intr_evcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_dv.dv_xname, "intr");
#endif
config_defer(self, sio_bridge_callback);
@ -175,6 +176,7 @@ sio_bridge_callback(self)
ec.ec_maxslots = sio_eisa_maxslots;
ec.ec_intr_map = sio_eisa_intr_map;
ec.ec_intr_string = sio_intr_string;
ec.ec_intr_evcnt = sio_intr_evcnt;
ec.ec_intr_establish = sio_intr_establish;
ec.ec_intr_disestablish = sio_intr_disestablish;
@ -189,6 +191,7 @@ sio_bridge_callback(self)
sc->sc_isa_chipset.ic_v = NULL;
sc->sc_isa_chipset.ic_attach_hook = sio_isa_attach_hook;
sc->sc_isa_chipset.ic_intr_evcnt = sio_intr_evcnt;
sc->sc_isa_chipset.ic_intr_establish = sio_intr_establish;
sc->sc_isa_chipset.ic_intr_disestablish = sio_intr_disestablish;
sc->sc_isa_chipset.ic_intr_alloc = sio_intr_alloc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: sio_pic.c,v 1.25 2000/02/27 02:50:31 mycroft Exp $ */
/* $NetBSD: sio_pic.c,v 1.26 2000/06/04 19:14:26 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -66,7 +66,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: sio_pic.c,v 1.25 2000/02/27 02:50:31 mycroft Exp $");
__KERNEL_RCSID(0, "$NetBSD: sio_pic.c,v 1.26 2000/06/04 19:14:26 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -444,6 +444,16 @@ sio_intr_string(v, irq)
return (irqstr);
}
const struct evcnt *
sio_intr_evcnt(v, irq)
void *v;
int irq;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void *
sio_intr_establish(v, irq, type, level, fn, arg)
void *v, *arg;

View File

@ -1,4 +1,4 @@
/* $NetBSD: siovar.h,v 1.8 1998/05/23 21:36:33 ross Exp $ */
/* $NetBSD: siovar.h,v 1.9 2000/06/04 19:14:26 cgd Exp $ */
/*
* Copyright (c) 1995, 1996 Carnegie-Mellon University.
@ -31,6 +31,7 @@ void sio_intr_setup __P((pci_chipset_tag_t, bus_space_tag_t));
void sio_iointr __P((void *framep, unsigned long vec));
const char *sio_intr_string __P((void *, int));
const struct evcnt *sio_intr_evcnt __P((void *, int));
void *sio_intr_establish __P((void *, int, int, int, int (*)(void *),
void *));
void sio_intr_disestablish __P((void *, void *));

View File

@ -1,4 +1,4 @@
/* $NetBSD: tc_3000_300.c,v 1.23 2000/03/26 10:32:52 nisimura Exp $ */
/* $NetBSD: tc_3000_300.c,v 1.24 2000/06/04 19:14:28 cgd Exp $ */
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@ -29,7 +29,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tc_3000_300.c,v 1.23 2000/03/26 10:32:52 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: tc_3000_300.c,v 1.24 2000/06/04 19:14:28 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -112,6 +112,16 @@ tc_3000_300_intr_setup()
}
}
const struct evcnt *
tc_3000_300_intr_evcnt(tcadev, cookie)
struct device *tcadev;
void *cookie;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void
tc_3000_300_intr_establish(tcadev, cookie, level, func, arg)
struct device *tcadev;

View File

@ -1,4 +1,4 @@
/* $NetBSD: tc_3000_500.c,v 1.21 2000/03/26 10:32:52 nisimura Exp $ */
/* $NetBSD: tc_3000_500.c,v 1.22 2000/06/04 19:14:29 cgd Exp $ */
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@ -29,7 +29,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tc_3000_500.c,v 1.21 2000/03/26 10:32:52 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: tc_3000_500.c,v 1.22 2000/06/04 19:14:29 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -136,6 +136,16 @@ tc_3000_500_intr_setup()
}
}
const struct evcnt *
tc_3000_500_intr_evcnt(tcadev, cookie)
struct device *tcadev;
void *cookie;
{
/* XXX for now, no evcnt parent reported */
return (NULL);
}
void
tc_3000_500_intr_establish(tcadev, cookie, level, func, arg)
struct device *tcadev;

View File

@ -1,4 +1,4 @@
/* $NetBSD: tc_conf.h,v 1.9 1998/10/22 01:03:09 briggs Exp $ */
/* $NetBSD: tc_conf.h,v 1.10 2000/06/04 19:14:29 cgd Exp $ */
/*
* Copyright (c) 1995 Carnegie-Mellon University.
@ -40,6 +40,8 @@
extern void tc_3000_500_intr_setup __P((void));
extern void tc_3000_500_iointr __P((void *, unsigned long));
extern const struct evcnt *
tc_3000_500_intr_evcnt __P((struct device *, void *));
extern void tc_3000_500_intr_establish __P((struct device *, void *,
tc_intrlevel_t, int (*)(void *), void *));
extern void tc_3000_500_intr_disestablish __P((struct device *, void *));
@ -58,6 +60,8 @@ extern struct tc_builtin tc_3000_500_nographics_builtins[];
extern void tc_3000_300_intr_setup __P((void));
extern void tc_3000_300_iointr __P((void *, unsigned long));
extern const struct evcnt *
tc_3000_300_intr_evcnt __P((struct device *, void *));
extern void tc_3000_300_intr_establish __P((struct device *, void *,
tc_intrlevel_t, int (*)(void *), void *));
extern void tc_3000_300_intr_disestablish __P((struct device *, void *));

View File

@ -1,4 +1,4 @@
/* $NetBSD: tcasic.c,v 1.28 2000/03/26 10:32:52 nisimura Exp $ */
/* $NetBSD: tcasic.c,v 1.29 2000/06/04 19:14:30 cgd Exp $ */
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@ -32,7 +32,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tcasic.c,v 1.28 2000/03/26 10:32:52 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: tcasic.c,v 1.29 2000/06/04 19:14:30 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -113,6 +113,7 @@ 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;
@ -133,6 +134,7 @@ 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;

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.h,v 1.3 2000/06/01 00:04:52 cgd Exp $ */
/* $NetBSD: isa_machdep.h,v 1.4 2000/06/04 19:14:30 cgd Exp $ */
/* $OpenBSD: isa_machdep.h,v 1.5 1997/04/19 17:20:00 pefo Exp $ */
/*
@ -49,6 +49,7 @@ struct arc_isa_bus {
void (*ic_attach_hook)(struct device *, struct device *,
struct isabus_attach_args *);
const struct evcnt *(*ic_intr_evcnt)(void *, int);
void *(*ic_intr_establish)(isa_chipset_tag_t, int, int, int,
int (*)(void *), void *);
void (*ic_intr_disestablish)(isa_chipset_tag_t, void *);
@ -60,6 +61,8 @@ struct arc_isa_bus {
*/
#define isa_attach_hook(p, s, a) /* \
(*(a)->iba_ic->ic_attach_hook)((p), (s), (a)) */
#define isa_intr_evcnt(c, i) \
(*(c)->ic_intr_evcnt)((c)->ic_v, (i))
#define isa_intr_establish(c, i, t, l, f, a) \
(*(c)->ic_intr_establish)((c)->ic_data, (i), (t), (l), (f), (a))
#define isa_intr_disestablish(c, h) \

View File

@ -1,4 +1,4 @@
/* $NetBSD: isabus.c,v 1.8 2000/03/23 06:34:25 thorpej Exp $ */
/* $NetBSD: isabus.c,v 1.9 2000/06/04 19:14:31 cgd Exp $ */
/* $OpenBSD: isabus.c,v 1.15 1998/03/16 09:38:46 pefo Exp $ */
/* NetBSD: isa.c,v 1.33 1995/06/28 04:30:51 cgd Exp */
@ -136,6 +136,7 @@ struct cfattach isabr_ca = {
};
extern struct cfdriver isabr_cd;
const struct evcnt *isabr_intr_evcnt __P((isa_chipset_tag_t, int));
void *isabr_intr_establish __P((isa_chipset_tag_t, int, int, int,
int (*)(void *), void *));
void isabr_intr_disestablish __P((isa_chipset_tag_t, void*));
@ -194,6 +195,7 @@ isabrattach(parent, self, aux)
sc->sc_bus.ab_dv = (struct device *)sc;
sc->sc_bus.ab_type = BUS_ISABR;
sc->arc_isa_cs.ic_intr_evcnt = isabr_intr_evcnt;
sc->arc_isa_cs.ic_intr_establish = isabr_intr_establish;
sc->arc_isa_cs.ic_intr_disestablish = isabr_intr_disestablish;
@ -305,6 +307,16 @@ intr_calculatemasks()
}
}
const struct evcnt *
isabr_intr_establish(ic, irq, type, level, ih_fun, ih_arg)
isa_chipset_tag_t ic;
int irq;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
/*
* Establish a ISA bus interrupt.
*/

View File

@ -1,4 +1,4 @@
/* $NetBSD: footbridge_pci.c,v 1.3 2000/03/06 03:15:48 mark Exp $ */
/* $NetBSD: footbridge_pci.c,v 1.4 2000/06/04 19:14:31 cgd Exp $ */
/*
* Copyright (c) 1997,1998 Mark Brinicombe.
@ -69,6 +69,7 @@ void footbridge_pci_conf_write __P((void *, pcitag_t, int,
int footbridge_pci_intr_map __P((void *, pcitag_t, int, int,
pci_intr_handle_t *));
const char *footbridge_pci_intr_string __P((void *, pci_intr_handle_t));
const struct evcnt *footbridge_pci_intr_evcnt __P((void *, pci_intr_handle_t));
void *footbridge_pci_intr_establish __P((void *, pci_intr_handle_t,
int, int (*)(void *), void *));
void footbridge_pci_intr_disestablish __P((void *, void *));
@ -85,6 +86,7 @@ struct arm32_pci_chipset footbridge_pci_chipset = {
NULL, /* intr_v */
footbridge_pci_intr_map,
footbridge_pci_intr_string,
footbridge_pci_intr_evcnt,
footbridge_pci_intr_establish,
footbridge_pci_intr_disestablish
};
@ -345,6 +347,16 @@ footbridge_pci_intr_string(pcv, ih)
return(irqstr);
}
const struct evcnt *
footbridge_pci_intr_evcnt(pcv, ih)
void *pcv;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
footbridge_pci_intr_establish(pcv, ih, level, func, arg)
void *pcv;

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.h,v 1.7 2000/06/01 00:04:52 cgd Exp $ */
/* $NetBSD: isa_machdep.h,v 1.8 2000/06/04 19:14:32 cgd Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@ -60,6 +60,7 @@ struct isabus_attach_args; /* XXX */
*/
void isa_attach_hook(struct device *, struct device *,
struct isabus_attach_args *);
const struct evcnt *isa_intr_evcnt(isa_chipset_tag_t ic, int irq);
void *isa_intr_establish(isa_chipset_tag_t ic, int irq, int type,
int level, int (*ih_fun)(void *), void *ih_arg);
void isa_intr_disestablish(isa_chipset_tag_t ic, void *handler);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.3 2000/06/01 00:04:52 cgd Exp $ */
/* $NetBSD: pci_machdep.h,v 1.4 2000/06/04 19:14:32 cgd Exp $ */
/*
* Modified for arm32 by Mark Brinicombe
@ -66,6 +66,7 @@ struct arm32_pci_chipset {
int (*pc_intr_map)(void *, pcitag_t, int, int,
pci_intr_handle_t *);
const char *(*pc_intr_string)(void *, pci_intr_handle_t);
const struct evcnt *(*pc_intr_string)(void *, pci_intr_handle_t);
void *(*pc_intr_establish)(void *, pci_intr_handle_t,
int, int (*)(void *), void *);
void (*pc_intr_disestablish)(void *, void *);
@ -90,6 +91,8 @@ struct arm32_pci_chipset {
(*(c)->pc_intr_map)((c)->pc_intr_v, (it), (ip), (il), (ihp))
#define pci_intr_string(c, ih) \
(*(c)->pc_intr_string)((c)->pc_intr_v, (ih))
#define pci_intr_evcnt(c, ih) \
(*(c)->pc_intr_evcnt)((c)->pc_intr_v, (ih))
#define pci_intr_establish(c, ih, l, h, a) \
(*(c)->pc_intr_establish)((c)->pc_intr_v, (ih), (l), (h), (a))
#define pci_intr_disestablish(c, iv) \

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_cats_machdep.c,v 1.3 1999/03/19 04:58:45 cgd Exp $ */
/* $NetBSD: isa_cats_machdep.c,v 1.4 2000/06/04 19:14:32 cgd Exp $ */
/*-
* Copyright (c) 1996-1998 The NetBSD Foundation, Inc.
@ -360,6 +360,14 @@ isa_intr_alloc(ic, mask, type, irq)
return (0);
}
const struct evcnt *
isa_intr_evcnt(isa_chipset_tag_t ic, int irq)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
/*
* Set up an interrupt handler to start being called.
* XXX PRONE TO RACE CONDITIONS, UGLY, 'INTERESTING' INSERTION ALGORITHM.

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_shark_machdep.c,v 1.5 1999/09/17 19:59:39 thorpej Exp $ */
/* $NetBSD: isa_shark_machdep.c,v 1.6 2000/06/04 19:14:33 cgd Exp $ */
/*
* Copyright 1997
@ -135,6 +135,15 @@ isa_init8259s()
}
#define LEGAL_IRQ(x) ((x) >= 0 && (x) < ICU_LEN && (x) != 2)
const struct evcnt *
isa_intr_evcnt(isa_chipset_tag_t ic, int irq)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
/*
* Set up an interrupt handler to start being called.
*/

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.h,v 1.8 2000/06/01 00:04:53 cgd Exp $ */
/* $NetBSD: isa_machdep.h,v 1.9 2000/06/04 19:14:33 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -96,6 +96,7 @@ typedef struct {
void isa_attach_hook(struct device *, struct device *,
struct isabus_attach_args *);
int isa_intr_alloc(isa_chipset_tag_t, int, int, int *);
const struct evcnt *isa_intr_evcnt(isa_chipset_tag_t ic, int irq);
void *isa_intr_establish(isa_chipset_tag_t ic, int irq, int type,
int level, int (*)(void *), void *ih_arg);
void isa_intr_disestablish(isa_chipset_tag_t ic, void *handler);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.5 2000/06/01 00:04:53 cgd Exp $ */
/* $NetBSD: pci_machdep.h,v 1.6 2000/06/04 19:14:33 cgd Exp $ */
/*
* Copyright (c) 1996 Leo Weppelman. All rights reserved.
@ -63,6 +63,7 @@ void pci_conf_write(pci_chipset_tag_t, pcitag_t, int, pcireg_t);
int pci_intr_map(pci_chipset_tag_t, pcitag_t, int, int,
pci_intr_handle_t *);
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
const struct evcnt *pci_intr_evcnt(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,
int, int (*)(void *), void *);
void pci_intr_disestablish(pci_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.c,v 1.16 2000/01/19 13:13:14 leo Exp $ */
/* $NetBSD: isa_machdep.c,v 1.17 2000/06/04 19:14:34 cgd Exp $ */
/*
* Copyright (c) 1997 Leo Weppelman. All rights reserved.
@ -224,6 +224,14 @@ isa_intr_alloc(ic, mask, type, irq)
return (1);
}
const struct evcnt *
isa_intr_evcnt(isa_chipset_tag_t ic, int irq)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
isa_intr_establish(ic, irq, type, level, ih_fun, ih_arg)
isa_chipset_tag_t ic;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.c,v 1.21 2000/01/19 13:13:16 leo Exp $ */
/* $NetBSD: pci_machdep.c,v 1.22 2000/06/04 19:14:35 cgd Exp $ */
/*
* Copyright (c) 1996 Leo Weppelman. All rights reserved.
@ -642,6 +642,16 @@ pci_intr_string(pc, ih)
}
const struct evcnt *
pci_intr_evcnt(pc, ih)
pci_chipset_tag_t pc;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
/*
* The interrupt stuff is rather ugly. On the Hades, all interrupt lines
* for a slot are wired together and connected to IO 0,1,2 or 5 (slots:

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.h,v 1.10 2000/06/01 00:04:53 cgd Exp $ */
/* $NetBSD: isa_machdep.h,v 1.11 2000/06/04 19:14:36 cgd Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@ -111,6 +111,7 @@ struct isabus_attach_args; /* XXX */
*/
void isa_attach_hook(struct device *, struct device *,
struct isabus_attach_args *);
const struct evcnt *isa_intr_evcnt(isa_chipset_tag_t ic, int irq);
void *isa_intr_establish(isa_chipset_tag_t ic, int irq, int type,
int level, int (*ih_fun)(void *), void *ih_arg);
void isa_intr_disestablish(isa_chipset_tag_t ic, void *handler);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.5 2000/06/01 00:04:53 cgd Exp $ */
/* $NetBSD: pci_machdep.h,v 1.6 2000/06/04 19:14:36 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -66,6 +66,7 @@ void pci_conf_write(pci_chipset_tag_t, pcitag_t, int,
int pci_intr_map(pci_chipset_tag_t, pcitag_t, int, int,
pci_intr_handle_t *);
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
const struct evcnt *pci_intr_evcnt(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,
int, int (*)(void *), void *);
void pci_intr_disestablish(pci_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.c,v 1.4 1999/03/19 04:58:46 cgd Exp $ */
/* $NetBSD: isa_machdep.c,v 1.5 2000/06/04 19:14:37 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -86,6 +86,14 @@
#include <dev/isa/isavar.h>
#include <bebox/isa/icu.h>
const struct evcnt *
isa_intr_evcnt(isa_chipset_tag_t ic, int irq)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
/*
* Set up an interrupt handler to start being called.
* XXX PRONE TO RACE CONDITIONS, UGLY, 'INTERESTING' INSERTION ALGORITHM.

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.c,v 1.4 1998/08/15 03:02:37 mycroft Exp $ */
/* $NetBSD: pci_machdep.c,v 1.5 2000/06/04 19:14:37 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -213,6 +213,16 @@ pci_intr_string(pc, ih)
}
const struct evcnt *
pci_intr_evcnt(pc, ih)
pci_chipset_tag_t pc;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
pci_intr_establish(pc, ih, level, func, arg)
pci_chipset_tag_t pc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.1 2000/03/19 23:07:47 soren Exp $ */
/* $NetBSD: pci_machdep.h,v 1.2 2000/06/04 19:14:41 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -63,6 +63,7 @@ void pci_conf_write(pci_chipset_tag_t, pcitag_t, int,
int pci_intr_map(pci_chipset_tag_t, pcitag_t, int, int,
pci_intr_handle_t *);
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
const struct evcnt *pci_intr_evcnt(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,
int, int (*)(void *), void *);
void pci_intr_disestablish(pci_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.c,v 1.6 2000/05/29 15:45:15 soren Exp $ */
/* $NetBSD: pci_machdep.c,v 1.7 2000/06/04 19:14:41 cgd Exp $ */
/*
* Copyright (c) 2000 Soren S. Jorvang. All rights reserved.
@ -190,6 +190,16 @@ pci_intr_string(pc, ih)
return irqstr;
}
const struct evcnt *
pci_intr_evcnt(pc, ih)
pci_chipset_tag_t pc;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
pci_intr_establish(pc, ih, level, func, arg)
pci_chipset_tag_t pc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: clock.c,v 1.7 2000/04/24 12:58:32 uch Exp $ */
/* $NetBSD: clock.c,v 1.8 2000/06/04 19:14:42 cgd Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -45,7 +45,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.7 2000/04/24 12:58:32 uch Exp $");
__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.8 2000/06/04 19:14:42 cgd Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@ -80,7 +80,8 @@ clockattach(dev, fns)
clockdev = dev;
clockfns = fns;
#ifdef EVCNT_COUNTERS
evcnt_attach(dev, "intr", &clock_intr_evcnt);
evcnt_attach_dynamic(&clock_intr_evcnt, EVCNT_TYPE_INTR, NULL,
dev->dv_xname, "intr");
#endif
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.h,v 1.3 2000/06/01 00:04:54 cgd Exp $ */
/* $NetBSD: isa_machdep.h,v 1.4 2000/06/04 19:14:42 cgd Exp $ */
/*
* Copyright (c) 1999, by UCHIYAMA Yasushi
@ -43,6 +43,7 @@ typedef struct hpcmips_isa_chipset *isa_chipset_tag_t;
*/
void isa_attach_hook(struct device*, struct device*, struct isabus_attach_args*);
int isa_intr_alloc(isa_chipset_tag_t, int, int, int*);
const struct evcnt *isa_intr_evcnt(isa_chipset_tag_t ic, int irq);
void *isa_intr_establish(isa_chipset_tag_t, int, int, int, int (*)(void *), void*);
void isa_intr_disestablish(isa_chipset_tag_t, void*);

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.c,v 1.5 2000/04/03 03:40:00 sato Exp $ */
/* $NetBSD: isa_machdep.c,v 1.6 2000/06/04 19:14:43 cgd Exp $ */
/*
* Copyright (c) 1999, by UCHIYAMA Yasushi
@ -171,6 +171,14 @@ isa_attach_hook(parent, self, iba)
{
}
const struct evcnt *
isa_intr_evcnt(isa_chipset_tag_t ic, int irq)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
isa_intr_establish(ic, intr, type, level, ih_fun, ih_arg)
isa_chipset_tag_t ic;

View File

@ -1,4 +1,4 @@
/* $NetBSD: eisa_machdep.c,v 1.10 1998/06/03 06:35:49 thorpej Exp $ */
/* $NetBSD: eisa_machdep.c,v 1.11 2000/06/04 19:14:43 cgd Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@ -171,6 +171,14 @@ eisa_intr_string(ec, ih)
}
const struct evcnt *
eisa_intr_evcnt(eisa_chipset_tag_t ec, eisa_intr_handle_t ih)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
eisa_intr_establish(ec, ih, type, level, func, arg)
eisa_chipset_tag_t ec;

View File

@ -1,4 +1,4 @@
/* $NetBSD: eisa_machdep.h,v 1.6 2000/06/01 00:04:51 cgd Exp $ */
/* $NetBSD: eisa_machdep.h,v 1.7 2000/06/04 19:14:44 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -59,6 +59,7 @@ int eisa_maxslots(eisa_chipset_tag_t);
int eisa_intr_map(eisa_chipset_tag_t, u_int,
eisa_intr_handle_t *);
const char *eisa_intr_string(eisa_chipset_tag_t, eisa_intr_handle_t);
const struct evcnt *eisa_intr_evcnt(eisa_chipset_tag_t, eisa_intr_handle_t);
void *eisa_intr_establish(eisa_chipset_tag_t,
eisa_intr_handle_t, int, int, int (*)(void *), void *);
void eisa_intr_disestablish(eisa_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.h,v 1.15 2000/06/01 00:04:51 cgd Exp $ */
/* $NetBSD: isa_machdep.h,v 1.16 2000/06/04 19:14:44 cgd Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@ -112,6 +112,7 @@ struct isabus_attach_args; /* XXX */
void isa_attach_hook(struct device *, struct device *,
struct isabus_attach_args *);
int isa_intr_alloc(isa_chipset_tag_t, int, int, int *);
const struct evcnt *isa_intr_evcnt(isa_chipset_tag_t ic, int irq);
void *isa_intr_establish(isa_chipset_tag_t ic, int irq, int type,
int level, int (*ih_fun)(void *), void *ih_arg);
void isa_intr_disestablish(isa_chipset_tag_t ic, void *handler);

View File

@ -1,4 +1,4 @@
/* $NetBSD: mca_machdep.h,v 1.2 2000/06/01 00:04:51 cgd Exp $ */
/* $NetBSD: mca_machdep.h,v 1.3 2000/06/04 19:14:45 cgd Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@ -58,6 +58,7 @@ struct mcabus_attach_args;
void mca_attach_hook(struct device *, struct device *,
struct mcabus_attach_args *);
const struct evcnt *mca_intr_evcnt(mca_chipset_tag_t, mca_intr_handle_t);
void *mca_intr_establish(mca_chipset_tag_t, mca_intr_handle_t,
int, int (*)(void *), void *);
void mca_intr_disestablish(mca_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.13 2000/06/01 00:04:51 cgd Exp $ */
/* $NetBSD: pci_machdep.h,v 1.14 2000/06/04 19:14:45 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -94,6 +94,7 @@ void pci_conf_write(pci_chipset_tag_t, pcitag_t, int,
int pci_intr_map(pci_chipset_tag_t, pcitag_t, int, int,
pci_intr_handle_t *);
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
const struct evcnt *pci_intr_evcnt(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,
int, int (*)(void *), void *);
void pci_intr_disestablish(pci_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.c,v 1.46 2000/05/11 16:38:13 jdolecek Exp $ */
/* $NetBSD: isa_machdep.c,v 1.47 2000/06/04 19:14:46 cgd Exp $ */
#define ISA_DMA_STATS
@ -440,6 +440,14 @@ isa_intr_alloc(ic, mask, type, irq)
return (0);
}
const struct evcnt *
isa_intr_evcnt(isa_chipset_tag_t ic, int irq)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
/*
* Set up an interrupt handler to start being called.
* XXX PRONE TO RACE CONDITIONS, UGLY, 'INTERESTING' INSERTION ALGORITHM.

View File

@ -1,4 +1,4 @@
/* $NetBSD: mca_machdep.c,v 1.1 2000/05/11 16:38:14 jdolecek Exp $ */
/* $NetBSD: mca_machdep.c,v 1.2 2000/06/04 19:14:47 cgd Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@ -140,6 +140,14 @@ mca_conf_write(mc, slot, reg, data)
#error mca_intr_(dis)establish: needs ISA to be configured into kernel
#endif
const struct evcnt *
mca_intr_establish(mca_chipset_tag_t mc, mca_intr_handle_t ih)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
mca_intr_establish(mc, ih, level, func, arg)
mca_chipset_tag_t mc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.c,v 1.35 1999/12/11 20:48:25 thorpej Exp $ */
/* $NetBSD: pci_machdep.c,v 1.36 2000/06/04 19:14:47 cgd Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@ -535,6 +535,16 @@ pci_intr_string(pc, ih)
}
const struct evcnt *
pci_intr_evcnt(pc, ih)
pci_chipset_tag_t pc;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
pci_intr_establish(pc, ih, level, func, arg)
pci_chipset_tag_t pc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.11 2000/06/01 00:04:55 cgd Exp $ */
/* $NetBSD: pci_machdep.h,v 1.12 2000/06/04 19:14:48 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -79,6 +79,7 @@ void pci_conf_write(pci_chipset_tag_t, pcitag_t, int,
int pci_intr_map(pci_chipset_tag_t, pcitag_t, int, int,
pci_intr_handle_t *);
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
const struct evcnt *pci_intr_evcnt(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,
int, int (*)(void *), void *);
void pci_intr_disestablish(pci_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.c,v 1.10 2000/02/03 19:27:46 tsubai Exp $ */
/* $NetBSD: pci_machdep.c,v 1.11 2000/06/04 19:14:49 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -245,6 +245,16 @@ pci_intr_string(pc, ih)
}
const struct evcnt *
pci_intr_evcnt(pc, ih)
pci_chipset_tag_t pc;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
extern void * intr_establish();
extern void intr_disestablish();

View File

@ -1,4 +1,4 @@
/* $NetBSD: vme_pcc.c,v 1.7 2000/03/18 22:33:04 scw Exp $ */
/* $NetBSD: vme_pcc.c,v 1.8 2000/06/04 19:14:49 cgd Exp $ */
/*-
* Copyright (c) 1996-2000 The NetBSD Foundation, Inc.
@ -182,6 +182,7 @@ vme_pcc_attach(parent, self, aux)
sc->sc_vct.vct_map = _vme_pcc_map;
sc->sc_vct.vct_unmap = _vme_pcc_unmap;
sc->sc_vct.vct_int_map = _vme_pcc_intmap;
sc->sc_vct.vct_int_evcnt = _vme_pcc_intr_evcnt;
sc->sc_vct.vct_int_establish = _vme_pcc_intr_establish;
sc->sc_vct.vct_int_disestablish = _vme_pcc_intr_disestablish;
sc->sc_vct.vct_dmamap_create = _vme_pcc_dmamap_create;
@ -383,6 +384,16 @@ _vme_pcc_intmap(vsc, level, vector, handlep)
return (0);
}
const struct evcnt *
_vme_pcc_intr_evcnt(vsc, handle)
void *vsc;
vme_intr_handle_t handle;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
_vme_pcc_intr_establish(vsc, handle, prior, func, arg)
void *vsc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: vme_pccvar.h,v 1.2 2000/03/18 22:33:04 scw Exp $ */
/* $NetBSD: vme_pccvar.h,v 1.3 2000/06/04 19:14:50 cgd Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -70,6 +70,8 @@ int _vme_pcc_probe __P((void *, vme_addr_t, vme_size_t, vme_am_t,vme_datasize_t,
int _vme_pcc_intmap __P((void *, int, int, vme_intr_handle_t *));
const struct evcnt *_vme_pcc_intr_evcnt __P((void *, vme_intr_handle_t));
void *_vme_pcc_intr_establish __P((void *, vme_intr_handle_t, int,
int (*)(void *), void *));

View File

@ -1,4 +1,4 @@
/* $NetBSD: vme_two.c,v 1.2 2000/03/18 22:33:04 scw Exp $ */
/* $NetBSD: vme_two.c,v 1.3 2000/06/04 19:14:50 cgd Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -89,6 +89,7 @@ static struct vmetwo_softc *vmetwo_sc;
void vmetwo_master_range __P((struct vmetwo_softc *, int,
struct vmetwo_range *));
int vmetwo_local_isr_trampoline __P((void *));
const struct evcnt *vmetwo_intr_evcnt __P((struct vmetwo_softc *, int));
void vmetwo_intr_establish __P((struct vmetwo_softc *, int, int,
int (*) (void *), void *));
void vmetwo_intr_disestablish __P((struct vmetwo_softc *, int, int));
@ -297,6 +298,7 @@ vmetwo_attach(parent, self, aux)
sc->sc_vct.vct_map = _vmetwo_map;
sc->sc_vct.vct_unmap = _vmetwo_unmap;
sc->sc_vct.vct_int_map = _vmetwo_intmap;
sc->sc_vct.vct_int_evcnt = _vmetwo_intr_evcnt;
sc->sc_vct.vct_int_establish = _vmetwo_intr_establish;
sc->sc_vct.vct_int_disestablish = _vmetwo_intr_disestablish;
sc->sc_vct.vct_dmamap_create = _vmetwo_dmamap_create;
@ -562,6 +564,16 @@ _vmetwo_intmap(vsc, level, vector, handlep)
return (0);
}
const struct evcnt *
_vmetwo_intr_establish(vsc, handle, prior, func, arg)
void *vsc;
vme_intr_handle_t handle;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
_vmetwo_intr_establish(vsc, handle, prior, func, arg)
void *vsc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: vme_twovar.h,v 1.2 2000/03/18 22:33:04 scw Exp $ */
/* $NetBSD: vme_twovar.h,v 1.3 2000/06/04 19:14:51 cgd Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -89,6 +89,8 @@ int _vmetwo_probe __P((void *, vme_addr_t, vme_size_t, vme_am_t,vme_datasize_t,
int _vmetwo_intmap __P((void *, int, int, vme_intr_handle_t *));
const struct evcnt *_vmetwo_intr_establish __P((void *, vme_intr_handle_t));
void *_vmetwo_intr_establish __P((void *, vme_intr_handle_t, int,
int (*)(void *), void *));

View File

@ -1,4 +1,4 @@
/* $NetBSD: clock.c,v 1.12 2000/03/18 22:33:06 scw Exp $ */
/* $NetBSD: clock.c,v 1.13 2000/06/04 19:14:52 cgd Exp $ */
/*
* Copyright (c) 1992, 1993
@ -106,8 +106,10 @@ clock_config(dev, ca)
/* Hook up that which we need. */
clock_args = ca;
evcnt_attach(dev, "profint", &clock_profcnt);
evcnt_attach(dev, "statint", &clock_statcnt);
evcnt_attach_dynamic(&clock_profcnt, EVCNT_TYPE_INTR, NULL,
dev->dv_xname, "profint");
evcnt_attach_dynamic(&clock_statcnt, EVCNT_TYPE_INTR, NULL,
dev->dv_xname, "statint");
/* Print info about the clock. */
printf(": delay_divisor %d\n", delay_divisor);

View File

@ -1,4 +1,4 @@
/* $NetBSD: esp.c,v 1.25 1999/08/28 09:19:04 dbj Exp $ */
/* $NetBSD: esp.c,v 1.26 2000/06/04 19:14:53 cgd Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@ -402,7 +402,8 @@ espattach_intio(parent, self, aux)
INTR_ENABLE(NEXT_I_SCSI);
/* register interrupt stats */
evcnt_attach(&sc->sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_dev.dv_xname, "intr");
/* Do the common parts of attachment. */
sc->sc_adapter.scsipi_cmd = ncr53c9x_scsi_cmd;

View File

@ -1,4 +1,4 @@
/* $NetBSD: clock.c,v 1.30 2000/01/10 03:24:36 simonb Exp $ */
/* $NetBSD: clock.c,v 1.31 2000/06/04 19:14:54 cgd Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -44,7 +44,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.30 2000/01/10 03:24:36 simonb Exp $");
__KERNEL_RCSID(0, "$NetBSD: clock.c,v 1.31 2000/06/04 19:14:54 cgd Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@ -84,7 +84,8 @@ clockattach(dev, fns)
clockdev = dev;
clockfns = fns;
#ifdef EVCNT_COUNTERS
evcnt_attach(dev, "intr", &clock_intr_evcnt);
evcnt_attach_dynamic(&clock_intr_evcnt, EVCNT_TYPE_INTR, NULL,
dev->dv_xname, "intr");
#endif
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: ioasic.c,v 1.12 2000/03/15 03:07:47 nisimura Exp $ */
/* $NetBSD: ioasic.c,v 1.13 2000/06/04 19:14:55 cgd Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: ioasic.c,v 1.12 2000/03/15 03:07:47 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: ioasic.c,v 1.13 2000/06/04 19:14:55 cgd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -191,6 +191,16 @@ ioasicattach(parent, self, aux)
ioasic_attach_devs(sc, ioasic_devs, builtin_ndevs);
}
const struct evcnt *
ioasic_intr_evcnt(dev, cookie)
struct device *dev;
void *cookie;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
#if 1 /* XXX for now XXX */
void
ioasic_intr_establish(dev, cookie, level, handler, val)

View File

@ -1,4 +1,4 @@
/* $NetBSD: tc_3max.c,v 1.6 2000/02/29 07:20:21 nisimura Exp $ */
/* $NetBSD: tc_3max.c,v 1.7 2000/06/04 19:14:55 cgd Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tc_3max.c,v 1.6 2000/02/29 07:20:21 nisimura Exp $ ");
__KERNEL_RCSID(0, "$NetBSD: tc_3max.c,v 1.7 2000/06/04 19:14:55 cgd Exp $ ");
#include <sys/param.h>
#include <sys/systm.h>
@ -69,6 +69,6 @@ struct tcbus_attach_args kn02_tc_desc = {
TC_SPEED_25_MHZ,
KN02_TC_NSLOTS, tc_kn02_slots,
3, tc_kn02_builtins,
NULL, NULL,
NULL, NULL, NULL,
NULL,
};

View File

@ -1,4 +1,4 @@
/* $NetBSD: tc_3maxplus.c,v 1.5 2000/02/29 07:20:21 nisimura Exp $ */
/* $NetBSD: tc_3maxplus.c,v 1.6 2000/06/04 19:14:56 cgd Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tc_3maxplus.c,v 1.5 2000/02/29 07:20:21 nisimura Exp $ ");
__KERNEL_RCSID(0, "$NetBSD: tc_3maxplus.c,v 1.6 2000/06/04 19:14:56 cgd Exp $ ");
#include <sys/param.h>
#include <sys/systm.h>
@ -63,6 +63,6 @@ struct tcbus_attach_args kn03_tc_desc = {
TC_SPEED_25_MHZ,
KN03_TC_NSLOTS, tc_kn03_slots,
1, tc_kn03_builtins,
NULL, NULL,
NULL, NULL, NULL,
NULL,
};

View File

@ -1,4 +1,4 @@
/* $NetBSD: tc_3min.c,v 1.5 2000/02/29 07:20:21 nisimura Exp $ */
/* $NetBSD: tc_3min.c,v 1.6 2000/06/04 19:14:56 cgd Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tc_3min.c,v 1.5 2000/02/29 07:20:21 nisimura Exp $ ");
__KERNEL_RCSID(0, "$NetBSD: tc_3min.c,v 1.6 2000/06/04 19:14:56 cgd Exp $ ");
#include <sys/param.h>
#include <sys/systm.h>
@ -64,6 +64,6 @@ struct tcbus_attach_args kmin_tc_desc =
TC_SPEED_12_5_MHZ,
KMIN_TC_NSLOTS, tc_kmin_slots,
1, tc_kn02ba_builtins,
NULL, NULL,
NULL, NULL, NULL,
NULL,
};

View File

@ -1,4 +1,4 @@
/* $NetBSD: tc_maxine.c,v 1.5 2000/02/29 07:20:21 nisimura Exp $ */
/* $NetBSD: tc_maxine.c,v 1.6 2000/06/04 19:14:57 cgd Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tc_maxine.c,v 1.5 2000/02/29 07:20:21 nisimura Exp $ ");
__KERNEL_RCSID(0, "$NetBSD: tc_maxine.c,v 1.6 2000/06/04 19:14:57 cgd Exp $ ");
#include <sys/param.h>
#include <sys/systm.h>
@ -66,6 +66,6 @@ struct tcbus_attach_args xine_tc_desc = {
TC_SPEED_12_5_MHZ,
XINE_TC_NSLOTS, tc_xine_slots,
2, tc_xine_builtins,
NULL, NULL,
NULL, NULL, NULL,
NULL,
};

View File

@ -1,4 +1,4 @@
/* $NetBSD: tcbus.c,v 1.10 2000/02/29 09:03:30 nisimura Exp $ */
/* $NetBSD: tcbus.c,v 1.11 2000/06/04 19:14:57 cgd Exp $ */
/*
* Copyright (c) 1999, 2000 Tohru Nishimura. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tcbus.c,v 1.10 2000/02/29 09:03:30 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: tcbus.c,v 1.11 2000/06/04 19:14:57 cgd Exp $");
/*
* Which system models were configured?
@ -54,6 +54,7 @@ __KERNEL_RCSID(0, "$NetBSD: tcbus.c,v 1.10 2000/02/29 09:03:30 nisimura Exp $");
#include <dev/tc/tcvar.h>
#include <pmax/pmax/pmaxtype.h>
static const struct evcnt *tc_ds_intr_evcnt __P((struct device *, void *);
static void tc_ds_intr_establish __P((struct device *, void *,
int, int (*)(void *), void *));
static void tc_ds_intr_disestablish __P((struct device *, void *));
@ -119,6 +120,7 @@ tcbus_attach(parent, self, aux)
tba->tba_busname = "tc";
tba->tba_memt = 0;
tba->tba_intr_evcnt = tc_ds_intr_evcnt;
tba->tba_intr_establish = tc_ds_intr_establish;
tba->tba_intr_disestablish = tc_ds_intr_disestablish;
tba->tba_get_dma_tag = tc_ds_get_dma_tag;
@ -126,6 +128,19 @@ tcbus_attach(parent, self, aux)
tcattach(parent, self, tba);
}
/*
* Dispatch to model specific interrupt line evcnt fetch rontine
*/
static void
tc_ds_intr_evcnt(dev, cookie)
struct device *dev;
void *cookie;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
/*
* Dispatch to model specific interrupt establishing routine
*/

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.h,v 1.2 2000/06/01 00:04:54 cgd Exp $ */
/* $NetBSD: isa_machdep.h,v 1.3 2000/06/04 19:14:58 cgd Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@ -111,6 +111,7 @@ struct isabus_attach_args; /* XXX */
*/
void isa_attach_hook(struct device *, struct device *,
struct isabus_attach_args *);
const struct evcnt *isa_intr_evcnt(isa_chipset_tag_t ic, int irq);
void *isa_intr_establish(isa_chipset_tag_t ic, int irq, int type,
int level, int (*ih_fun)(void *), void *ih_arg);
void isa_intr_disestablish(isa_chipset_tag_t ic, void *handler);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.2 2000/06/01 00:04:54 cgd Exp $ */
/* $NetBSD: pci_machdep.h,v 1.3 2000/06/04 19:14:58 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -67,6 +67,7 @@ void pci_conf_write(pci_chipset_tag_t, pcitag_t, int, pcireg_t);
int pci_intr_map(pci_chipset_tag_t, pcitag_t, int, int,
pci_intr_handle_t *);
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
const struct evcnt *pci_intr_evcnt(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,
int, int (*)(void *), void *);
void pci_intr_disestablish(pci_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa_machdep.c,v 1.1 2000/02/29 15:21:42 nonaka Exp $ */
/* $NetBSD: isa_machdep.c,v 1.2 2000/06/04 19:14:59 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -88,6 +88,14 @@
#define IO_ELCR1 0x4d0
#define IO_ELCR2 0x4d1
const struct evcnt *
isa_intr_evcnt(isa_chipset_tag_t ic, int irq)
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
/*
* Set up an interrupt handler to start being called.
* XXX PRONE TO RACE CONDITIONS, UGLY, 'INTERESTING' INSERTION ALGORITHM.

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.c,v 1.2 2000/03/25 04:12:20 nonaka Exp $ */
/* $NetBSD: pci_machdep.c,v 1.3 2000/06/04 19:15:00 cgd Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -320,6 +320,16 @@ pci_intr_string(pc, ih)
}
const struct evcnt *
pci_intr_evcnt(pc, ih)
pci_chipset_tag_t pc;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
pci_intr_establish(pc, ih, level, func, arg)
pci_chipset_tag_t pc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: am7930_sparc.c,v 1.45 1999/11/21 15:23:01 pk Exp $ */
/* $NetBSD: am7930_sparc.c,v 1.46 2000/06/04 19:15:00 cgd Exp $ */
/*
* Copyright (c) 1995 Rolf Grossmann
@ -246,7 +246,8 @@ am7930_sparc_attach(sc, pri)
BUS_INTR_ESTABLISH_SOFTINTR,
am7930swintr, sc);
evcnt_attach(&sc->sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_dev.dv_xname, "intr");
audio_attach_mi(&sa_hw_if, sc, &sc->sc_dev);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: audioamd.c,v 1.3 2000/05/08 03:09:56 mycroft Exp $ */
/* $NetBSD: audioamd.c,v 1.4 2000/06/04 19:15:01 cgd Exp $ */
/* NetBSD: am7930_sparc.c,v 1.44 1999/03/14 22:29:00 jonathan Exp */
/*
@ -295,7 +295,8 @@ audioamd_attach(sc, pri)
BUS_INTR_ESTABLISH_SOFTINTR,
am7930swintr, sc);
evcnt_attach(&sc->sc_am7930.sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_am7930.sc_dev.dv_xname, "intr");
audio_attach_mi(&sa_hw_if, sc, &sc->sc_am7930.sc_dev);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: com_obio.c,v 1.4 1999/11/21 15:23:01 pk Exp $ */
/* $NetBSD: com_obio.c,v 1.5 2000/06/04 19:15:01 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -188,7 +188,8 @@ com_obio_attach(parent, self, aux)
if (sa->sa_nintr != 0) {
(void)bus_intr_establish(sc->sc_iot, sa->sa_pri,
0, comintr, sc);
evcnt_attach(&osc->osc_com.sc_dev, "intr", &osc->osc_intrcnt);
evcnt_attach_dynamic(&osc->osc_intrcnt, EVCNT_TYPE_INTR, NULL,
osc->osc_com.sc_dev.dv_xname, "intr");
}
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: esp_obio.c,v 1.5 2000/01/11 12:59:45 pk Exp $ */
/* $NetBSD: esp_obio.c,v 1.6 2000/06/04 19:15:01 cgd Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@ -266,7 +266,8 @@ espattach_obio(parent, self, aux)
(int(*)__P((void*)))ncr53c9x_intr, sc);
/* register interrupt stats */
evcnt_attach(&sc->sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_dev.dv_xname, "intr");
/* Do the common parts of attachment. */
sc->sc_adapter.scsipi_cmd = ncr53c9x_scsi_cmd;

View File

@ -1,4 +1,4 @@
/* $NetBSD: fd.c,v 1.81 2000/05/16 05:45:49 thorpej Exp $ */
/* $NetBSD: fd.c,v 1.82 2000/06/04 19:15:02 cgd Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@ -655,7 +655,8 @@ fdcattach(fdc, pri)
BUS_INTR_ESTABLISH_SOFTINTR,
fdcswintr, fdc);
evcnt_attach(&fdc->sc_dev, "intr", &fdc->sc_intrcnt);
evcnt_attach_dynamic(&fdc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
fdc->sc_dev.dv_xname, "intr");
/* physical limit: four drives per controller. */
drive_attached = 0;

View File

@ -1,4 +1,4 @@
/* $NetBSD: tctrl.c,v 1.9 2000/04/04 17:20:54 thorpej Exp $ */
/* $NetBSD: tctrl.c,v 1.10 2000/06/04 19:15:03 cgd Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -212,7 +212,8 @@ tctrl_attach(parent, self, aux)
if (sa->sa_nintr != 0) {
(void)bus_intr_establish(sc->sc_memt, sa->sa_pri,
0, tctrl_intr, sc);
evcnt_attach(&sc->sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_dev.dv_xname, "intr");
}
/* See what the external status is

View File

@ -1,4 +1,4 @@
/* $NetBSD: vme_machdep.c,v 1.23 2000/05/09 22:39:36 pk Exp $ */
/* $NetBSD: vme_machdep.c,v 1.24 2000/06/04 19:15:03 cgd Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@ -103,6 +103,8 @@ static int sparc_vme_map __P((void *, vme_addr_t, vme_size_t, vme_am_t,
vme_mapresc_t *));
static void sparc_vme_unmap __P((void *, vme_mapresc_t));
static int sparc_vme_intr_map __P((void *, int, int, vme_intr_handle_t *));
static const struct evcnt *sparc_vme_intr_evcnt __P((void *,
vme_intr_handle_t));
static void * sparc_vme_intr_establish __P((void *, vme_intr_handle_t, int,
int (*) __P((void *)), void *));
static void sparc_vme_intr_disestablish __P((void *, void *));
@ -193,6 +195,7 @@ struct vme_chipset_tag sparc_vme_chipset_tag = {
sparc_vme_unmap,
sparc_vme_probe,
sparc_vme_intr_map,
sparc_vme_intr_evcnt,
sparc_vme_intr_establish,
sparc_vme_intr_disestablish,
0, 0, 0 /* bus specific DMA stuff */
@ -737,6 +740,16 @@ sparc_vme_intr_map(cookie, level, vec, ihp)
return (0);
}
const struct evcnt *
sparc_vme_intr_evcnt(cookie, vih)
void *cookie;
vme_intr_handle_t vih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
sparc_vme_intr_establish(cookie, vih, pri, func, arg)
void *cookie;

View File

@ -1,4 +1,4 @@
/* $NetBSD: zs.c,v 1.78 2000/03/21 11:24:02 pk Exp $ */
/* $NetBSD: zs.c,v 1.79 2000/06/04 19:15:03 cgd Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -456,7 +456,8 @@ zs_attach(zsc, zsd, pri)
} else if (pri != prevpri)
panic("broken zs interrupt scheme");
evcnt_attach(&zsc->zsc_dev, "intr", &zsc->zsc_intrcnt);
evcnt_attach_dynamic(&zsc->zsc_intrcnt, EVCNT_TYPE_INTR, NULL,
zsc->zsc_dev.dv_xname, "intr");
/*
* Set the master interrupt enable and interrupt vector.

View File

@ -1,4 +1,4 @@
/* $NetBSD: cs4231_ebus.c,v 1.3 2000/04/15 03:08:13 mrg Exp $ */
/* $NetBSD: cs4231_ebus.c,v 1.4 2000/06/04 19:15:04 cgd Exp $ */
/*-
* Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@ -145,7 +145,8 @@ cs4231_attach_ebus(parent, self, aux)
ea->ea_intrs[i], 0,
cs4231_intr, sc);
evcnt_attach(&sc->sc_ad1848.sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_ad1848.sc_dev.dv_xname, "intr");
audio_attach_mi(&audiocs_hw_if, sc, &sc->sc_ad1848.sc_dev);
}
#endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: fd.c,v 1.16 2000/05/16 05:45:50 thorpej Exp $ */
/* $NetBSD: fd.c,v 1.17 2000/06/04 19:15:04 cgd Exp $ */
/*-
* Copyright (c) 1993, 1994, 1995 Charles M. Hannum.
@ -442,7 +442,8 @@ fdcattach(parent, self, aux)
printf(" CFGLOCK: unexpected response");
}
evcnt_attach(&fdc->sc_dev, "intr", &fdc->sc_intrcnt);
evcnt_attach_dynamic(&fdc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
fdc->sc_dev.dv_xname, "intr");
printf(" pri %d, softpri %d: chip 8207%c\n", pri, PIL_FDSOFT, code);

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.c,v 1.7 2000/05/24 20:27:52 eeh Exp $ */
/* $NetBSD: pci_machdep.c,v 1.8 2000/06/04 19:15:05 cgd Exp $ */
/*
* Copyright (c) 1999, 2000 Matthew R. Green
@ -410,6 +410,16 @@ pci_intr_string(pc, ih)
return (str);
}
const struct evcnt *
pci_intr_evcnt(pc, ih)
pci_chipset_tag_t pc;
pci_intr_handle_t ih;
{
/* XXX for now, no evcnt parent reported */
return NULL;
}
void *
pci_intr_establish(pc, ih, level, func, arg)
pci_chipset_tag_t pc;

View File

@ -1,4 +1,4 @@
/* $NetBSD: zs.c,v 1.20 2000/05/19 05:26:17 eeh Exp $ */
/* $NetBSD: zs.c,v 1.21 2000/06/04 19:15:05 cgd Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -371,7 +371,8 @@ zs_attach(zsc, zsd, pri)
} else if (pri != prevpri)
panic("broken zs interrupt scheme");
evcnt_attach(&zsc->zsc_dev, "intr", &zsc->zsc_intrcnt);
evcnt_attach_dynamic(&zsc->zsc_intrcnt, EVCNT_TYPE_INTR, NULL,
zsc->zsc_dev.dv_xname, "intr");
/*
* Set the master interrupt enable and interrupt vector.

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.h,v 1.3 2000/06/01 00:04:55 cgd Exp $ */
/* $NetBSD: pci_machdep.h,v 1.4 2000/06/04 19:15:06 cgd Exp $ */
/*
* Copyright (c) 1999 Matthew R. Green
@ -56,6 +56,7 @@ void pci_conf_write(pci_chipset_tag_t, pcitag_t, int,
int pci_intr_map(pci_chipset_tag_t, pcitag_t, int, int,
pci_intr_handle_t *);
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
const struct evcnt *pci_intr_evcnt(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,
int, int (*)(void *), void *);
void pci_intr_disestablish(pci_chipset_tag_t, void *);

View File

@ -1,4 +1,4 @@
/* $NetBSD: esp.c,v 1.10 1999/04/08 04:46:41 gwr Exp $ */
/* $NetBSD: esp.c,v 1.11 2000/06/04 19:15:06 cgd Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@ -243,7 +243,8 @@ espattach(parent, self, aux)
/* and the interuppts */
isr_add_autovect((void*)ncr53c9x_intr, sc, ca->ca_intpri);
evcnt_attach(&sc->sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_dev.dv_xname, "intr");
/* Do the common parts of attachment. */
sc->sc_adapter.scsipi_cmd = ncr53c9x_scsi_cmd;

View File

@ -1,4 +1,4 @@
/* $NetBSD: fd.c,v 1.19 2000/05/16 05:45:51 thorpej Exp $ */
/* $NetBSD: fd.c,v 1.20 2000/06/04 19:15:07 cgd Exp $ */
/*-
* Copyright (c) 1993, 1994, 1995 Charles M. Hannum.
@ -426,7 +426,8 @@ fdcattach(parent, self, aux)
fdc->sc_cfg = CFG_EIS|/*CFG_EFIFO|*/CFG_POLL|(8 & CFG_THRHLD_MASK);
fdconf(fdc);
evcnt_attach(&fdc->sc_dev, "intr", &fdc->sc_intrcnt);
evcnt_attach_dynamic(&fdc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
fdc->sc_dev.dv_xname, "intr");
/* physical limit: four drives per controller. */
for (fa.fa_drive = 0; fa.fa_drive < 4; fa.fa_drive++) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: xd.c,v 1.29 2000/05/27 04:52:31 thorpej Exp $ */
/* $NetBSD: xd.c,v 1.30 2000/06/04 19:15:07 cgd Exp $ */
/*
*
@ -480,7 +480,8 @@ xdcattach(parent, self, aux)
/* link in interrupt with higher level software */
isr_add_vectored(xdcintr, (void *)xdc,
ca->ca_intpri, ca->ca_intvec);
evcnt_attach(&xdc->sc_dev, "intr", &xdc->sc_intrcnt);
evcnt_attach_dynamic(&xdc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
xdc->sc_dev.dv_xname, "intr");
/* now we must look for disks using autoconfig */
xa.booting = 1;

View File

@ -1,4 +1,4 @@
/* $NetBSD: xy.c,v 1.30 2000/05/27 04:52:31 thorpej Exp $ */
/* $NetBSD: xy.c,v 1.31 2000/06/04 19:15:11 cgd Exp $ */
/*
*
@ -425,7 +425,8 @@ xycattach(parent, self, aux)
/* link in interrupt with higher level software */
isr_add_vectored(xycintr, (void *)xyc,
ca->ca_intpri, ca->ca_intvec);
evcnt_attach(&xyc->sc_dev, "intr", &xyc->sc_intrcnt);
evcnt_attach_dynamic(&xyc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
xyc->sc_dev.dv_xname, "intr");
callout_init(&xyc->sc_tick_ch);

View File

@ -1,4 +1,4 @@
/* $NetBSD: isavar.h,v 1.37 1999/03/19 05:13:18 cgd Exp $ */
/* $NetBSD: isavar.h,v 1.38 2000/06/04 19:15:12 cgd Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@ -165,6 +165,10 @@ struct isa_softc {
*
* To remove an interrupt handler, the driver calls isa_intr_disestablish()
* with the handle returned by isa_intr_establish() for that handler.
*
* The event counter (struct evcnt) associated with an interrupt line
* (to be used as 'parent' for an ISA device's interrupt handler's evcnt)
* can be obtained with isa_intr_evcnt().
*/
/* ISA interrupt sharing types */

View File

@ -1,4 +1,4 @@
/* $NetBSD: cs4231_sbus.c,v 1.13 2000/04/14 08:22:49 mrg Exp $ */
/* $NetBSD: cs4231_sbus.c,v 1.14 2000/06/04 19:15:12 cgd Exp $ */
/*-
* Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@ -137,7 +137,8 @@ cs4231_attach_sbus(parent, self, aux)
sa->sa_pri, 0,
cs4231_intr, sc);
evcnt_attach(&sc->sc_ad1848.sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_ad1848.sc_dev.dv_xname, "intr");
audio_attach_mi(&audiocs_hw_if, sc, &sc->sc_ad1848.sc_dev);
}
#endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: esp_sbus.c,v 1.8 2000/01/11 12:59:43 pk Exp $ */
/* $NetBSD: esp_sbus.c,v 1.9 2000/06/04 19:15:13 cgd Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@ -396,7 +396,8 @@ espattach(esc, gluep)
(int(*)__P((void*)))ncr53c9x_intr, sc);
/* register interrupt stats */
evcnt_attach(&sc->sc_dev, "intr", &sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->sc_dev.dv_xname, "intr");
/* Do the common parts of attachment. */
sc->sc_adapter.scsipi_cmd = ncr53c9x_scsi_cmd;

View File

@ -1,4 +1,4 @@
/* $NetBSD: magma.c,v 1.6 2000/03/23 07:01:43 thorpej Exp $ */
/* $NetBSD: magma.c,v 1.7 2000/06/04 19:15:13 cgd Exp $ */
/*
* magma.c
*
@ -443,7 +443,8 @@ magma_attach(parent, self, aux)
(void)bus_intr_establish(sa->sa_bustag, PIL_TTY,
BUS_INTR_ESTABLISH_SOFTINTR,
magma_soft, sc);
evcnt_attach(&sc->ms_dev, "intr", &sc->ms_intrcnt);
evcnt_attach_dynamic(&sc->ms_intrcnt, EVCNT_TYPE_INTR, NULL,
sc->ms_dev.dv_xname, "intr");
}
/*

Some files were not shown because too many files have changed in this diff Show More