]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseLib/Ebc/CpuBreakpoint.c
2849d9617252b733b34575976004c9273be7ac12
[mirror_edk2.git] / MdePkg / Library / BaseLib / Ebc / CpuBreakpoint.c
1 /** @file
2 Base Library CPU Functions for EBC
3
4 Copyright (c) 2006, Intel Corporation<BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14 //
15 // Include common header file for this module.
16 //
17 #include <BaseLibInternals.h>
18
19 extern
20 UINT64
21 _break (
22 CHAR8 BreakCode
23 );
24
25 /**
26 Generates a breakpoint on the CPU.
27
28 Generates a breakpoint on the CPU. The breakpoint must be implemented such
29 that code can resume normal execution after the breakpoint.
30
31 **/
32 VOID
33 EFIAPI
34 CpuBreakpoint (
35 VOID
36 )
37 {
38 _break (3);
39 }
40
41 /**
42 Used to serialize load and store operations.
43
44 All loads and stores that proceed calls to this function are guaranteed to be
45 globally visible when this function returns.
46
47 **/
48 VOID
49 EFIAPI
50 MemoryFence (
51 VOID
52 )
53 {
54 }
55
56 /**
57 Disables CPU interrupts.
58
59 Disables CPU interrupts.
60
61 **/
62 VOID
63 EFIAPI
64 DisableInterrupts (
65 VOID
66 )
67 {
68 ASSERT (FALSE);
69 }
70
71 /**
72 Enables CPU interrupts.
73
74 Enables CPU interrupts.
75
76 **/
77 VOID
78 EFIAPI
79 EnableInterrupts (
80 VOID
81 )
82 {
83 ASSERT (FALSE);
84 }
85
86 /**
87 Retrieves the current CPU interrupt state.
88
89 Retrieves the current CPU interrupt state. Returns TRUE is interrupts are
90 currently enabled. Otherwise returns FALSE.
91
92 @retval TRUE CPU interrupts are enabled.
93 @retval FALSE CPU interrupts are disabled.
94
95 **/
96 BOOLEAN
97 EFIAPI
98 GetInterruptState (
99 VOID
100 )
101 {
102 ASSERT (FALSE);
103 return FALSE;
104 }
105
106 /**
107 Enables CPU interrupts for the smallest window required to capture any
108 pending interrupts.
109
110 Enables CPU interrupts for the smallest window required to capture any
111 pending interrupts.
112
113 **/
114 VOID
115 EFIAPI
116 EnableDisableInterrupts (
117 VOID
118 )
119 {
120 EnableInterrupts ();
121 DisableInterrupts ();
122 }
123
124 /**
125 Requests CPU to pause for a short period of time.
126
127 Requests CPU to pause for a short period of time. Typically used in MP
128 systems to prevent memory starvation while waiting for a spin lock.
129
130 **/
131 VOID
132 EFIAPI
133 CpuPause (
134 VOID
135 )
136 {
137 }
138