1*7ff178cdSJimmy Vetayases /*
2*7ff178cdSJimmy Vetayases  * CDDL HEADER START
3*7ff178cdSJimmy Vetayases  *
4*7ff178cdSJimmy Vetayases  * The contents of this file are subject to the terms of the
5*7ff178cdSJimmy Vetayases  * Common Development and Distribution License (the "License").
6*7ff178cdSJimmy Vetayases  * You may not use this file except in compliance with the License.
7*7ff178cdSJimmy Vetayases  *
8*7ff178cdSJimmy Vetayases  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*7ff178cdSJimmy Vetayases  * or http://www.opensolaris.org/os/licensing.
10*7ff178cdSJimmy Vetayases  * See the License for the specific language governing permissions
11*7ff178cdSJimmy Vetayases  * and limitations under the License.
12*7ff178cdSJimmy Vetayases  *
13*7ff178cdSJimmy Vetayases  * When distributing Covered Code, include this CDDL HEADER in each
14*7ff178cdSJimmy Vetayases  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*7ff178cdSJimmy Vetayases  * If applicable, add the following below this CDDL HEADER, with the
16*7ff178cdSJimmy Vetayases  * fields enclosed by brackets "[]" replaced with your own identifying
17*7ff178cdSJimmy Vetayases  * information: Portions Copyright [yyyy] [name of copyright owner]
18*7ff178cdSJimmy Vetayases  *
19*7ff178cdSJimmy Vetayases  * CDDL HEADER END
20*7ff178cdSJimmy Vetayases  */
21*7ff178cdSJimmy Vetayases 
22*7ff178cdSJimmy Vetayases /*
23*7ff178cdSJimmy Vetayases  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
24*7ff178cdSJimmy Vetayases  */
25*7ff178cdSJimmy Vetayases 
26*7ff178cdSJimmy Vetayases #ifndef	_APIX_IRM_IMPL_H
27*7ff178cdSJimmy Vetayases #define	_APIX_IRM_IMPL_H
28*7ff178cdSJimmy Vetayases 
29*7ff178cdSJimmy Vetayases #include <sys/types.h>
30*7ff178cdSJimmy Vetayases #include <sys/ddi_intr_impl.h>
31*7ff178cdSJimmy Vetayases #include <sys/psm_types.h>
32*7ff178cdSJimmy Vetayases #include <sys/apix.h>
33*7ff178cdSJimmy Vetayases 
34*7ff178cdSJimmy Vetayases #ifdef	__cplusplus
35*7ff178cdSJimmy Vetayases extern "C" {
36*7ff178cdSJimmy Vetayases #endif
37*7ff178cdSJimmy Vetayases 
38*7ff178cdSJimmy Vetayases #define	APIX_IRM_DEBUG(args)	DDI_INTR_IRMDBG(args)
39*7ff178cdSJimmy Vetayases 
40*7ff178cdSJimmy Vetayases typedef struct apix_irm_info {
41*7ff178cdSJimmy Vetayases 	int	apix_ncpus;		/* # of available CPUs (boot time) */
42*7ff178cdSJimmy Vetayases 	int	apix_per_cpu_vectors;	/* # of available vectors per CPU */
43*7ff178cdSJimmy Vetayases 	int	apix_ioapic_max_vectors; /* max # of vectors used by IOAPICs */
44*7ff178cdSJimmy Vetayases 	int	apix_vectors_allocated; /* # of vectors (pre) allocated */
45*7ff178cdSJimmy Vetayases } apix_irm_info_t;
46*7ff178cdSJimmy Vetayases 
47*7ff178cdSJimmy Vetayases extern apix_irm_info_t apix_irminfo;
48*7ff178cdSJimmy Vetayases extern int apix_system_max_vectors;
49*7ff178cdSJimmy Vetayases extern int apix_irm_cpu_factor;
50*7ff178cdSJimmy Vetayases extern ddi_irm_pool_t *apix_irm_pool_p;
51*7ff178cdSJimmy Vetayases 
52*7ff178cdSJimmy Vetayases #ifdef	__cplusplus
53*7ff178cdSJimmy Vetayases }
54*7ff178cdSJimmy Vetayases #endif
55*7ff178cdSJimmy Vetayases 
56*7ff178cdSJimmy Vetayases #endif	/* _APIX_IRM_IMPL_H */
57