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