]>
Commit | Line | Data |
---|---|---|
6022e28c JJ |
1 | /** @file\r |
2 | CPU DXE MP support\r | |
3 | \r | |
4 | Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r | |
5 | This program and the accompanying materials\r | |
6 | are licensed and made available under the terms and conditions of the BSD License\r | |
7 | which accompanies this distribution. The full text of the license may be found at\r | |
8 | http://opensource.org/licenses/bsd-license.php\r | |
9 | \r | |
10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r | |
11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
12 | \r | |
13 | **/\r | |
14 | \r | |
15 | #ifndef _CPU_MP_H_\r | |
16 | #define _CPU_MP_H_\r | |
17 | \r | |
003973d9 CF |
18 | #include <Protocol/MpService.h>\r |
19 | \r | |
6022e28c JJ |
20 | /**\r |
21 | Initialize Multi-processor support.\r | |
22 | \r | |
23 | **/\r | |
24 | VOID\r | |
25 | InitializeMpSupport (\r | |
26 | VOID\r | |
27 | );\r | |
28 | \r | |
533263ee JJ |
29 | typedef\r |
30 | VOID\r | |
31 | (EFIAPI *STACKLESS_AP_ENTRY_POINT)(\r | |
32 | VOID\r | |
33 | );\r | |
34 | \r | |
35 | /**\r | |
36 | Starts the Application Processors and directs them to jump to the\r | |
37 | specified routine.\r | |
38 | \r | |
39 | The processor jumps to this code in flat mode, but the processor's\r | |
40 | stack is not initialized.\r | |
41 | \r | |
42 | @param ApEntryPoint Pointer to the Entry Point routine\r | |
43 | \r | |
44 | @retval EFI_SUCCESS The APs were started\r | |
45 | @retval EFI_OUT_OF_RESOURCES Cannot allocate memory to start APs\r | |
46 | \r | |
47 | **/\r | |
48 | EFI_STATUS\r | |
49 | StartApsStackless (\r | |
50 | IN STACKLESS_AP_ENTRY_POINT ApEntryPoint\r | |
51 | );\r | |
52 | \r | |
fab82c18 JJ |
53 | /**\r |
54 | The AP entry point that the Startup-IPI target code will jump to.\r | |
55 | \r | |
56 | The processor jumps to this code in flat mode, but the processor's\r | |
57 | stack is not initialized.\r | |
58 | \r | |
59 | **/\r | |
60 | VOID\r | |
61 | EFIAPI\r | |
62 | AsmApEntryPoint (\r | |
63 | VOID\r | |
64 | );\r | |
65 | \r | |
66 | /**\r | |
67 | Releases the lock preventing other APs from using the shared AP\r | |
68 | stack.\r | |
69 | \r | |
70 | Once the AP has transitioned to using a new stack, it can call this\r | |
71 | function to allow another AP to proceed with using the shared stack.\r | |
72 | \r | |
73 | **/\r | |
74 | VOID\r | |
75 | EFIAPI\r | |
76 | AsmApDoneWithCommonStack (\r | |
77 | VOID\r | |
78 | );\r | |
79 | \r | |
6022e28c JJ |
80 | #endif // _CPU_MP_H_\r |
81 | \r |