⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hwgpe.c

📁 acpi tools for linux include acpiexec and acpixtract
💻 C
📖 第 1 页 / 共 2 页
字号:
    if (RegisterBit & InByte)    {        LocalEventStatus |= ACPI_EVENT_FLAG_SET;    }    /* Set return value */    (*EventStatus) = LocalEventStatus;UnlockAndExit:    return (Status);}/****************************************************************************** * * FUNCTION:    AcpiHwDisableGpeBlock * * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info *              GpeBlock            - Gpe Block info * * RETURN:      Status * * DESCRIPTION: Disable all GPEs within a single GPE block * ******************************************************************************/ACPI_STATUSAcpiHwDisableGpeBlock (    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,    ACPI_GPE_BLOCK_INFO     *GpeBlock){    UINT32                  i;    ACPI_STATUS             Status;    /* Examine each GPE Register within the block */    for (i = 0; i < GpeBlock->RegisterCount; i++)    {        /* Disable all GPEs in this register */        Status = AcpiHwLowLevelWrite (8, 0x00,                    &GpeBlock->RegisterInfo[i].EnableAddress);        if (ACPI_FAILURE (Status))        {            return (Status);        }    }    return (AE_OK);}/****************************************************************************** * * FUNCTION:    AcpiHwClearGpeBlock * * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info *              GpeBlock            - Gpe Block info * * RETURN:      Status * * DESCRIPTION: Clear status bits for all GPEs within a single GPE block * ******************************************************************************/ACPI_STATUSAcpiHwClearGpeBlock (    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,    ACPI_GPE_BLOCK_INFO     *GpeBlock){    UINT32                  i;    ACPI_STATUS             Status;    /* Examine each GPE Register within the block */    for (i = 0; i < GpeBlock->RegisterCount; i++)    {        /* Clear status on all GPEs in this register */        Status = AcpiHwLowLevelWrite (8, 0xFF,                    &GpeBlock->RegisterInfo[i].StatusAddress);        if (ACPI_FAILURE (Status))        {            return (Status);        }    }    return (AE_OK);}/****************************************************************************** * * FUNCTION:    AcpiHwEnableRuntimeGpeBlock * * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info *              GpeBlock            - Gpe Block info * * RETURN:      Status * * DESCRIPTION: Enable all "runtime" GPEs within a single GPE block. Includes *              combination wake/run GPEs. * ******************************************************************************/ACPI_STATUSAcpiHwEnableRuntimeGpeBlock (    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,    ACPI_GPE_BLOCK_INFO     *GpeBlock){    UINT32                  i;    ACPI_STATUS             Status;    /* NOTE: assumes that all GPEs are currently disabled */    /* Examine each GPE Register within the block */    for (i = 0; i < GpeBlock->RegisterCount; i++)    {        if (!GpeBlock->RegisterInfo[i].EnableForRun)        {            continue;        }        /* Enable all "runtime" GPEs in this register */        Status = AcpiHwLowLevelWrite (8, GpeBlock->RegisterInfo[i].EnableForRun,                    &GpeBlock->RegisterInfo[i].EnableAddress);        if (ACPI_FAILURE (Status))        {            return (Status);        }    }    return (AE_OK);}/****************************************************************************** * * FUNCTION:    AcpiHwEnableWakeupGpeBlock * * PARAMETERS:  GpeXruptInfo        - GPE Interrupt info *              GpeBlock            - Gpe Block info * * RETURN:      Status * * DESCRIPTION: Enable all "wake" GPEs within a single GPE block. Includes *              combination wake/run GPEs. * ******************************************************************************/static ACPI_STATUSAcpiHwEnableWakeupGpeBlock (    ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,    ACPI_GPE_BLOCK_INFO     *GpeBlock){    UINT32                  i;    ACPI_STATUS             Status;    /* Examine each GPE Register within the block */    for (i = 0; i < GpeBlock->RegisterCount; i++)    {        if (!GpeBlock->RegisterInfo[i].EnableForWake)        {            continue;        }        /* Enable all "wake" GPEs in this register */        Status = AcpiHwLowLevelWrite (8,                    GpeBlock->RegisterInfo[i].EnableForWake,                    &GpeBlock->RegisterInfo[i].EnableAddress);        if (ACPI_FAILURE (Status))        {            return (Status);        }    }    return (AE_OK);}/****************************************************************************** * * FUNCTION:    AcpiHwDisableAllGpes * * PARAMETERS:  None * * RETURN:      Status * * DESCRIPTION: Disable and clear all GPEs in all GPE blocks * ******************************************************************************/ACPI_STATUSAcpiHwDisableAllGpes (    void){    ACPI_STATUS             Status;    ACPI_FUNCTION_TRACE (HwDisableAllGpes);    Status = AcpiEvWalkGpeList (AcpiHwDisableGpeBlock);    Status = AcpiEvWalkGpeList (AcpiHwClearGpeBlock);    return_ACPI_STATUS (Status);}/****************************************************************************** * * FUNCTION:    AcpiHwEnableAllRuntimeGpes * * PARAMETERS:  None * * RETURN:      Status * * DESCRIPTION: Enable all "runtime" GPEs, in all GPE blocks * ******************************************************************************/ACPI_STATUSAcpiHwEnableAllRuntimeGpes (    void){    ACPI_STATUS             Status;    ACPI_FUNCTION_TRACE (HwEnableAllRuntimeGpes);    Status = AcpiEvWalkGpeList (AcpiHwEnableRuntimeGpeBlock);    return_ACPI_STATUS (Status);}/****************************************************************************** * * FUNCTION:    AcpiHwEnableAllWakeupGpes * * PARAMETERS:  None * * RETURN:      Status * * DESCRIPTION: Enable all "wakeup" GPEs, in all GPE blocks * ******************************************************************************/ACPI_STATUSAcpiHwEnableAllWakeupGpes (    void){    ACPI_STATUS             Status;    ACPI_FUNCTION_TRACE (HwEnableAllWakeupGpes);    Status = AcpiEvWalkGpeList (AcpiHwEnableWakeupGpeBlock);    return_ACPI_STATUS (Status);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -