3 Copyright (c) 2004, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
23 #include EFI_GUID_DEFINITION (PeiFlushInstructionCache)
24 #include EFI_GUID_DEFINITION (PeiTransferControl)
27 WinNtFlushInstructionCacheFlush (
28 IN EFI_PEI_FLUSH_INSTRUCTION_CACHE_PROTOCOL
*This
,
29 IN EFI_PHYSICAL_ADDRESS Start
,
33 EFI_PEI_TRANSFER_CONTROL_PROTOCOL mTransferControl
= {
36 sizeof (EFI_JUMP_BUFFER
)
39 EFI_PEI_FLUSH_INSTRUCTION_CACHE_PROTOCOL mFlushInstructionCache
= {
40 WinNtFlushInstructionCacheFlush
44 InstallEfiPeiTransferControl (
45 IN OUT EFI_PEI_TRANSFER_CONTROL_PROTOCOL
**This
51 Installs the pointer to the transfer control mechanism
55 This - Pointer to transfer control mechanism.
59 EFI_SUCCESS - Successfully installed.
63 *This
= &mTransferControl
;
68 InstallEfiPeiFlushInstructionCache (
69 IN OUT EFI_PEI_FLUSH_INSTRUCTION_CACHE_PROTOCOL
**This
75 Installs the pointer to the flush instruction cache mechanism
79 This - Pointer to flush instruction cache mechanism.
83 EFI_SUCCESS - Successfully installed
87 *This
= &mFlushInstructionCache
;
92 WinNtFlushInstructionCacheFlush (
93 IN EFI_PEI_FLUSH_INSTRUCTION_CACHE_PROTOCOL
*This
,
94 IN EFI_PHYSICAL_ADDRESS Start
,
101 This routine would provide support for flushing the CPU instruction cache.
105 This - Pointer to CPU Architectural Protocol interface
106 Start - Start adddress in memory to flush
107 Length - Length of memory to flush
116 RtPioICacheFlush ((UINT8
*) Start
, (UINTN
) Length
);