From 677472aae4923fedd82249021e872219389542f5 Mon Sep 17 00:00:00 2001 From: xli24 Date: Sat, 25 Oct 2008 16:03:02 +0000 Subject: 1. Rename following library instances according to MDE Library Spec: 1) SerialPortLibNull => BaseSerialPortLibNull 2) DxeMemoryLib => UefiMemoryLib 3) DxeMemoryAllocationLib => UefiMemoryAllocationLib 4) CpuLib => BaseCpuLib 5) HiiLib => UefiHiiLib 6) IfrSupportLib => UefiIfrSupportLib 7) PeiPalCallLib => PeiPalLib 2. Add library instances to MDE package 1) DxePalLib 2) FvbServiceLib 3) GraphicsLib git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6221 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.S | 35 ++++++++++++++++++++++ MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.asm | 40 ++++++++++++++++++++++++++ MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.c | 32 +++++++++++++++++++++ MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.S | 34 ++++++++++++++++++++++ MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.asm | 39 +++++++++++++++++++++++++ MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.c | 34 ++++++++++++++++++++++ 6 files changed, 214 insertions(+) create mode 100644 MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.S create mode 100644 MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.asm create mode 100644 MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.c create mode 100644 MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.S create mode 100644 MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.asm create mode 100644 MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.c (limited to 'MdePkg/Library/BaseCpuLib/Ia32') diff --git a/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.S b/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.S new file mode 100644 index 0000000000..f8b1cdc7ee --- /dev/null +++ b/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.S @@ -0,0 +1,35 @@ +#------------------------------------------------------------------------------ ; +# Copyright (c) 2006, 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. +# +# Module Name: +# +# CpuFlushTlb.Asm +# +# Abstract: +# +# CpuFlushTlb function +# +# Notes: +# +#------------------------------------------------------------------------------ + +.globl ASM_PFX(CpuFlushTlb) + +#------------------------------------------------------------------------------ +# VOID +# EFIAPI +# CpuFlushTlb ( +# VOID +# ); +#------------------------------------------------------------------------------ +ASM_PFX(CpuFlushTlb): + movl %cr3, %eax + movl %eax, %cr3 + ret diff --git a/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.asm b/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.asm new file mode 100644 index 0000000000..4f0c4f9944 --- /dev/null +++ b/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.asm @@ -0,0 +1,40 @@ +;------------------------------------------------------------------------------ ; +; Copyright (c) 2006, 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. +; +; Module Name: +; +; CpuFlushTlb.Asm +; +; Abstract: +; +; CpuFlushTlb function +; +; Notes: +; +;------------------------------------------------------------------------------ + + .386p + .model flat,C + .code + +;------------------------------------------------------------------------------ +; VOID +; EFIAPI +; CpuFlushTlb ( +; VOID +; ); +;------------------------------------------------------------------------------ +CpuFlushTlb PROC + mov eax, cr3 + mov cr3, eax ; moving to CR3 flushes TLB + ret +CpuFlushTlb ENDP + + END diff --git a/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.c b/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.c new file mode 100644 index 0000000000..ff3cf82172 --- /dev/null +++ b/MdePkg/Library/BaseCpuLib/Ia32/CpuFlushTlb.c @@ -0,0 +1,32 @@ +/** @file + CpuFlushTlb function. + + Copyright (c) 2006 - 2007, 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. + +**/ + + + +/** + Flush TLB of current processor. + +**/ +VOID +EFIAPI +CpuFlushTlb ( + VOID + ) +{ + _asm { + mov eax, cr3 + mov cr3, eax + } +} + diff --git a/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.S b/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.S new file mode 100644 index 0000000000..ac39e8fcba --- /dev/null +++ b/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.S @@ -0,0 +1,34 @@ +#------------------------------------------------------------------------------ ; +# Copyright (c) 2006, 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. +# +# Module Name: +# +# CpuSleep.Asm +# +# Abstract: +# +# CpuSleep function +# +# Notes: +# +#------------------------------------------------------------------------------ + +.globl ASM_PFX(CpuSleep) + +#------------------------------------------------------------------------------ +# VOID +# EFIAPI +# CpuSleep ( +# VOID +# ); +#------------------------------------------------------------------------------ +ASM_PFX(CpuSleep): + hlt + ret diff --git a/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.asm b/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.asm new file mode 100644 index 0000000000..8a779f7017 --- /dev/null +++ b/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.asm @@ -0,0 +1,39 @@ +;------------------------------------------------------------------------------ ; +; Copyright (c) 2006, 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. +; +; Module Name: +; +; CpuSleep.Asm +; +; Abstract: +; +; CpuSleep function +; +; Notes: +; +;------------------------------------------------------------------------------ + + .386 + .model flat,C + .code + +;------------------------------------------------------------------------------ +; VOID +; EFIAPI +; CpuSleep ( +; VOID +; ); +;------------------------------------------------------------------------------ +CpuSleep PROC + hlt + ret +CpuSleep ENDP + + END diff --git a/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.c b/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.c new file mode 100644 index 0000000000..a39ad22064 --- /dev/null +++ b/MdePkg/Library/BaseCpuLib/Ia32/CpuSleep.c @@ -0,0 +1,34 @@ +/** @file + CpuSleep function. + + Copyright (c) 2006 - 2007, 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. + +**/ + + +/** + Places the CPU in a sleep state until an interrupt is received. + + Places the CPU in a sleep state until an interrupt is received. If interrupts + are disabled prior to calling this function, then the CPU will be placed in a + sleep state indefinitely. + +**/ +VOID +EFIAPI +CpuSleep ( + VOID + ) +{ + _asm { + hlt + } +} + -- cgit v1.2.3