/** @file | |
Base Library CPU Functions for EBC | |
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#include "BaseLibInternals.h" | |
extern | |
UINT64 | |
_break ( | |
CHAR8 BreakCode | |
); | |
/** | |
Generates a breakpoint on the CPU. | |
Generates a breakpoint on the CPU. The breakpoint must be implemented such | |
that code can resume normal execution after the breakpoint. | |
**/ | |
VOID | |
EFIAPI | |
CpuBreakpoint ( | |
VOID | |
) | |
{ | |
_break (3); | |
} | |
/** | |
Used to serialize load and store operations. | |
All loads and stores that proceed calls to this function are guaranteed to be | |
globally visible when this function returns. | |
**/ | |
VOID | |
EFIAPI | |
MemoryFence ( | |
VOID | |
) | |
{ | |
} | |
/** | |
Disables CPU interrupts. | |
**/ | |
VOID | |
EFIAPI | |
DisableInterrupts ( | |
VOID | |
) | |
{ | |
ASSERT (FALSE); | |
} | |
/** | |
Enables CPU interrupts. | |
**/ | |
VOID | |
EFIAPI | |
EnableInterrupts ( | |
VOID | |
) | |
{ | |
ASSERT (FALSE); | |
} | |
/** | |
Retrieves the current CPU interrupt state. | |
Returns TRUE means interrupts are currently enabled. Otherwise, | |
returns FALSE. | |
@retval TRUE CPU interrupts are enabled. | |
@retval FALSE CPU interrupts are disabled. | |
**/ | |
BOOLEAN | |
EFIAPI | |
GetInterruptState ( | |
VOID | |
) | |
{ | |
ASSERT (FALSE); | |
return FALSE; | |
} | |
/** | |
Enables CPU interrupts for the smallest window required to capture any | |
pending interrupts. | |
**/ | |
VOID | |
EFIAPI | |
EnableDisableInterrupts ( | |
VOID | |
) | |
{ | |
EnableInterrupts (); | |
DisableInterrupts (); | |
} | |
/** | |
Requests CPU to pause for a short period of time. | |
Requests CPU to pause for a short period of time. Typically used in MP | |
systems to prevent memory starvation while waiting for a spin lock. | |
**/ | |
VOID | |
EFIAPI | |
CpuPause ( | |
VOID | |
) | |
{ | |
} | |