Print this page
PANKOVs restructure


   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  23  */
  24 
  25 #ifndef _HPET_ACPI_H
  26 #define _HPET_ACPI_H
  27 
  28 #if defined(_KERNEL)
  29 #include <sys/acpi/acpi.h>
  30 #include <sys/acpi/actbl1.h>
  31 #include <sys/acpica.h>
  32 #endif  /* defined(_KERNEL) */
  33 
  34 #ifdef __cplusplus
  35 extern "C" {
  36 #endif
  37 
  38 /*
  39  * Solaris uses an HPET Timer to generate interrupts for CPUs in Deep C-state
  40  * with stalled LAPIC Timers.  All CPUs use one HPET timer.  The timer's
  41  * interrupt targets one CPU (via the I/O APIC).  The one CPU that receives
  42  * the HPET's interrupt wakes up other CPUs as needed during the HPET Interrupt
  43  * Service Routing.  The HPET ISR uses poke_cpus to wake up other CPUs with an
  44  * Inter Processor Interrupt.
  45  *
  46  * Please see the Intel Programmer's guides.  Interrupts are disabled before
  47  * a CPU Halts into Deep C-state.  (This allows CPU-hardware-specific cleanup
  48  * before servicing interrupts.)  When a Deep C-state CPU wakes up (due to
  49  * an externally generated interrupt), it resume execution where it halted.
  50  * The CPU returning from Deep C-state must enable interrupts before it will




   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  23  */
  24 
  25 #ifndef _HPET_ACPI_H
  26 #define _HPET_ACPI_H
  27 
  28 #if defined(_KERNEL)
  29 #include <acpica/include/acpi.h>
  30 #include <acpica/include/actbl1.h>
  31 #include <sys/acpica.h>
  32 #endif  /* defined(_KERNEL) */
  33 
  34 #ifdef __cplusplus
  35 extern "C" {
  36 #endif
  37 
  38 /*
  39  * Solaris uses an HPET Timer to generate interrupts for CPUs in Deep C-state
  40  * with stalled LAPIC Timers.  All CPUs use one HPET timer.  The timer's
  41  * interrupt targets one CPU (via the I/O APIC).  The one CPU that receives
  42  * the HPET's interrupt wakes up other CPUs as needed during the HPET Interrupt
  43  * Service Routing.  The HPET ISR uses poke_cpus to wake up other CPUs with an
  44  * Inter Processor Interrupt.
  45  *
  46  * Please see the Intel Programmer's guides.  Interrupts are disabled before
  47  * a CPU Halts into Deep C-state.  (This allows CPU-hardware-specific cleanup
  48  * before servicing interrupts.)  When a Deep C-state CPU wakes up (due to
  49  * an externally generated interrupt), it resume execution where it halted.
  50  * The CPU returning from Deep C-state must enable interrupts before it will