Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
This commit is contained in:
parent
e2293f4ad0
commit
cffb580806
@ -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
|
||||
|
@ -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
316
share/man/man9/evcnt.9
Normal 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 .
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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) \
|
||||
|
@ -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) \
|
||||
|
@ -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) \
|
||||
|
@ -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? */
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 *));
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 *));
|
||||
|
@ -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;
|
||||
|
@ -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) \
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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) \
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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);
|
||||
|
@ -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 *);
|
||||
|
@ -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;
|
||||
|
@ -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:
|
||||
|
@ -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);
|
||||
|
@ -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 *);
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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 *);
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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*);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 *);
|
||||
|
@ -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);
|
||||
|
@ -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 *);
|
||||
|
@ -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 *);
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 *);
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 *));
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 *));
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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);
|
||||
|
@ -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 *);
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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 *);
|
||||
|
@ -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;
|
||||
|
@ -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++) {
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user