FreeBSD/sys/contrib/dev/acpica/components/events/evsci.c
/*******************************************************************************
 *
 * FUNCTION:    AcpiEvSciDispatch
 *
 * PARAMETERS:  None
 *
 * RETURN:      Status code indicates whether interrupt was handled.
 *
 * DESCRIPTION: Dispatch the SCI to all host-installed SCI handlers.
 *
 ******************************************************************************/


Status code indicates whether interrupt was handled.

Dispatch the SCI to all host-installed SCI handlers.
Status code indicates whether interrupt was handled . Dispatch the SCI to all host - installed SCI handlers .
UINT32
AcpiEvSciDispatch (
    void)
{
    ACPI_SCI_HANDLER_INFO   *SciHandler;
    ACPI_CPU_FLAGS          Flags;
    UINT32                  IntStatus = ACPI_INTERRUPT_NOT_HANDLED;
    ACPI_FUNCTION_NAME (EvSciDispatch);
    if (!AcpiGbl_SciHandlerList)
    {
        return (IntStatus);
    }
    Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
    SciHandler = AcpiGbl_SciHandlerList;
    while (SciHandler)
    {
        IntStatus |= SciHandler->Address (
            SciHandler->Context);
        SciHandler = SciHandler->Next;
    }
    AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
    return (IntStatus);
}
UINT32 AcpiEvSciDispatch ( void ) { ACPI_SCI_HANDLER_INFO * SciHandler ; ACPI_CPU_FLAGS Flags ; UINT32 IntStatus = ACPI_INTERRUPT_NOT_HANDLED ; ACPI_FUNCTION_NAME ( EvSciDispatch ) ; if ( ! AcpiGbl_SciHandlerList ) { return ( IntStatus ) ; } Flags = AcpiOsAcquireLock ( AcpiGbl_GpeLock ) ; SciHandler = AcpiGbl_SciHandlerList ; while ( SciHandler ) { IntStatus |= SciHandler -> Address ( SciHandler -> Context ) ; SciHandler = SciHandler -> Next ; } AcpiOsReleaseLock ( AcpiGbl_GpeLock , Flags ) ; return ( IntStatus ) ; }
FUNCTION:    AcpiEvSciDispatch
 PARAMETERS:  None
FUNCTION : AcpiEvSciDispatch PARAMETERS : None
/* Are there any host-installed SCI handlers? */ /* Invoke all host-installed SCI handlers */ /* Invoke the installed handler (at interrupt level) */