From ecc7f77e91ab5b262b47aa7a9b8447e38280784e Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Wed, 21 May 2008 01:04:28 +0000 Subject: Change the file name case to follow coding style: The first character should be capital. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5250 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Core/Dxe/Event/Tpl.c | 163 ++++++++++++++++++++++++++++++++++++++ MdeModulePkg/Core/Dxe/Event/tpl.c | 163 -------------------------------------- 2 files changed, 163 insertions(+), 163 deletions(-) create mode 100644 MdeModulePkg/Core/Dxe/Event/Tpl.c delete mode 100644 MdeModulePkg/Core/Dxe/Event/tpl.c diff --git a/MdeModulePkg/Core/Dxe/Event/Tpl.c b/MdeModulePkg/Core/Dxe/Event/Tpl.c new file mode 100644 index 0000000..02597f3 --- /dev/null +++ b/MdeModulePkg/Core/Dxe/Event/Tpl.c @@ -0,0 +1,163 @@ +/** @file + + Task priority (TPL) function + +Copyright (c) 2006 - 2008, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include + + +/** + Set Interrupt State. + + @param Enable The state of enable or disable interrupt + +**/ +STATIC +VOID +CoreSetInterruptState ( + IN BOOLEAN Enable + ) +{ + if (gCpu != NULL) { + if (Enable) { + gCpu->EnableInterrupt(gCpu); + } else { + gCpu->DisableInterrupt(gCpu); + } + } +} + +// +// Return the highest set bit +// + +/** + Return the highest set bit. + + @param Number The value to check + + @return Bit position of the highest set bit + +**/ +UINTN +CoreHighestSetBit ( + IN UINTN Number + ) +{ + UINTN msb; + + msb = 31; + while ((msb > 0) && ((Number & (UINTN)(1 << msb)) == 0)) { + msb--; + } + + return msb; +} + + + + +/** + Raise the task priority level to the new level. + High level is implemented by disabling processor interrupts. + + @param NewTpl New task priority level + + @return The previous task priority level + +**/ +EFI_TPL +EFIAPI +CoreRaiseTpl ( + IN EFI_TPL NewTpl + ) +{ + EFI_TPL OldTpl; + + OldTpl = gEfiCurrentTpl; + ASSERT (OldTpl <= NewTpl); + ASSERT (VALID_TPL (NewTpl)); + + // + // If raising to high level, disable interrupts + // + if (NewTpl >= TPL_HIGH_LEVEL && OldTpl < TPL_HIGH_LEVEL) { + CoreSetInterruptState (FALSE); + } + + // + // Set the new value + // + gEfiCurrentTpl = NewTpl; + + return OldTpl; +} + + + + +/** + Lowers the task priority to the previous value. If the new + priority unmasks events at a higher priority, they are dispatched. + + @param NewTpl New, lower, task priority + +**/ +VOID +EFIAPI +CoreRestoreTpl ( + IN EFI_TPL NewTpl + ) +{ + EFI_TPL OldTpl; + + OldTpl = gEfiCurrentTpl; + ASSERT (NewTpl <= OldTpl); + ASSERT (VALID_TPL (NewTpl)); + + // + // If lowering below HIGH_LEVEL, make sure + // interrupts are enabled + // + + if (OldTpl >= TPL_HIGH_LEVEL && NewTpl < TPL_HIGH_LEVEL) { + gEfiCurrentTpl = TPL_HIGH_LEVEL; + } + + // + // Dispatch any pending events + // + + while ((-2 << NewTpl) & gEventPending) { + gEfiCurrentTpl = CoreHighestSetBit (gEventPending); + if (gEfiCurrentTpl < TPL_HIGH_LEVEL) { + CoreSetInterruptState (TRUE); + } + CoreDispatchEventNotifies (gEfiCurrentTpl); + } + + // + // Set the new value + // + + gEfiCurrentTpl = NewTpl; + + // + // If lowering below HIGH_LEVEL, make sure + // interrupts are enabled + // + if (gEfiCurrentTpl < TPL_HIGH_LEVEL) { + CoreSetInterruptState (TRUE); + } + +} diff --git a/MdeModulePkg/Core/Dxe/Event/tpl.c b/MdeModulePkg/Core/Dxe/Event/tpl.c deleted file mode 100644 index 02597f3..0000000 --- a/MdeModulePkg/Core/Dxe/Event/tpl.c +++ /dev/null @@ -1,163 +0,0 @@ -/** @file - - Task priority (TPL) function - -Copyright (c) 2006 - 2008, Intel Corporation -All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include - - -/** - Set Interrupt State. - - @param Enable The state of enable or disable interrupt - -**/ -STATIC -VOID -CoreSetInterruptState ( - IN BOOLEAN Enable - ) -{ - if (gCpu != NULL) { - if (Enable) { - gCpu->EnableInterrupt(gCpu); - } else { - gCpu->DisableInterrupt(gCpu); - } - } -} - -// -// Return the highest set bit -// - -/** - Return the highest set bit. - - @param Number The value to check - - @return Bit position of the highest set bit - -**/ -UINTN -CoreHighestSetBit ( - IN UINTN Number - ) -{ - UINTN msb; - - msb = 31; - while ((msb > 0) && ((Number & (UINTN)(1 << msb)) == 0)) { - msb--; - } - - return msb; -} - - - - -/** - Raise the task priority level to the new level. - High level is implemented by disabling processor interrupts. - - @param NewTpl New task priority level - - @return The previous task priority level - -**/ -EFI_TPL -EFIAPI -CoreRaiseTpl ( - IN EFI_TPL NewTpl - ) -{ - EFI_TPL OldTpl; - - OldTpl = gEfiCurrentTpl; - ASSERT (OldTpl <= NewTpl); - ASSERT (VALID_TPL (NewTpl)); - - // - // If raising to high level, disable interrupts - // - if (NewTpl >= TPL_HIGH_LEVEL && OldTpl < TPL_HIGH_LEVEL) { - CoreSetInterruptState (FALSE); - } - - // - // Set the new value - // - gEfiCurrentTpl = NewTpl; - - return OldTpl; -} - - - - -/** - Lowers the task priority to the previous value. If the new - priority unmasks events at a higher priority, they are dispatched. - - @param NewTpl New, lower, task priority - -**/ -VOID -EFIAPI -CoreRestoreTpl ( - IN EFI_TPL NewTpl - ) -{ - EFI_TPL OldTpl; - - OldTpl = gEfiCurrentTpl; - ASSERT (NewTpl <= OldTpl); - ASSERT (VALID_TPL (NewTpl)); - - // - // If lowering below HIGH_LEVEL, make sure - // interrupts are enabled - // - - if (OldTpl >= TPL_HIGH_LEVEL && NewTpl < TPL_HIGH_LEVEL) { - gEfiCurrentTpl = TPL_HIGH_LEVEL; - } - - // - // Dispatch any pending events - // - - while ((-2 << NewTpl) & gEventPending) { - gEfiCurrentTpl = CoreHighestSetBit (gEventPending); - if (gEfiCurrentTpl < TPL_HIGH_LEVEL) { - CoreSetInterruptState (TRUE); - } - CoreDispatchEventNotifies (gEfiCurrentTpl); - } - - // - // Set the new value - // - - gEfiCurrentTpl = NewTpl; - - // - // If lowering below HIGH_LEVEL, make sure - // interrupts are enabled - // - if (gEfiCurrentTpl < TPL_HIGH_LEVEL) { - CoreSetInterruptState (TRUE); - } - -} -- cgit v1.1