]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Protocol / ExtendedSalBootService / ExtendedSalBootService.h
1 /*++
2
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
8
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.
11
12 Module Name:
13
14 ExtendedSalBootService.h
15
16 Abstract:
17
18 --*/
19
20 #ifndef _EXTENDED_SAL_PROTOCOL_H_
21 #define _EXTENDED_SAL_PROTOCOL_H_
22
23 #include "SalApi.h"
24 #include "LinkedList.h"
25 #include EFI_PROTOCOL_CONSUMER (CpuIo)
26
27
28 #define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID \
29 {0xde0ee9a4,0x3c7a,0x44f2,0xb7,0x8b,0xe3,0xcc,0xd6,0x9c,0x3a,0xf7}
30
31 #define EXTENDED_SAL_SIGNATURE EFI_SIGNATURE_32('e', 's', 'a', 'l')
32
33 #define SAL_MIN_STATE_SIZE 0x400 * 1
34 #define PAL_SCARTCH_SIZE 0x400 * 3
35 #define ALIGN_MINSTATE_SIZE 512
36 #define MAX_SAL_RECORD_SIZE 8*1024
37
38 #define SAL_RUNTIMESERVICE
39
40 typedef UINT16 EFI_SAL_PROCESSOR_ID;
41
42 EFI_FORWARD_DECLARATION (EXTENDED_SAL_BOOT_SERVICE_PROTOCOL);
43
44 typedef
45 SAL_RUNTIMESERVICE
46 SAL_RETURN_REGS
47 (EFIAPI *SAL_EXTENDED_SAL_PROC) (
48 IN EFI_GUID *ClassGuid,
49 IN UINT64 FunctionId,
50 IN UINT64 Arg2,
51 IN UINT64 Arg3,
52 IN UINT64 Arg4,
53 IN UINT64 Arg5,
54 IN UINT64 Arg6,
55 IN UINT64 Arg7,
56 IN UINT64 Arg8
57 );
58
59 typedef
60 SAL_RUNTIMESERVICE
61 SAL_RETURN_REGS
62 (EFIAPI *SAL_INTERNAL_EXTENDED_SAL_PROC) (
63 IN UINT64 FunctionId,
64 IN UINT64 Arg2,
65 IN UINT64 Arg3,
66 IN UINT64 Arg4,
67 IN UINT64 Arg5,
68 IN UINT64 Arg6,
69 IN UINT64 Arg7,
70 IN UINT64 Arg8,
71 IN SAL_EXTENDED_SAL_PROC ExtendedSalProc,
72 IN BOOLEAN VirtualMode,
73 IN VOID *ModuleGlobal
74 );
75
76 typedef
77 EFI_STATUS
78 (EFIAPI *EXTENDED_SAL_ADD_SST_INFO) (
79 IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
80 IN UINT16 SalAVersion,
81 IN UINT16 SalBVersion,
82 IN CHAR8 *OemId,
83 IN CHAR8 *ProductId
84 );
85
86 typedef
87 EFI_STATUS
88 (EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY) (
89 IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
90 IN UINT8 EntryType,
91 IN UINT8 *TableEntry,
92 IN UINTN EntrySize
93 );
94
95 typedef
96 EFI_STATUS
97 (EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC) (
98 IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
99 IN EFI_GUID *ClassGuid,
100 IN UINT64 FunctionId,
101 IN SAL_INTERNAL_EXTENDED_SAL_PROC InternalSalProc,
102 IN VOID *PhysicalModuleGlobal
103 );
104
105 //
106 // Extended Sal Boot Service Protocol Interface
107 //
108 typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL{
109 EXTENDED_SAL_ADD_SST_INFO AddSalSystemTableInfo;
110 EXTENDED_SAL_ADD_SST_ENTRY AddSalSystemTableEntry;
111 EXTENDED_SAL_REGISTER_INTERNAL_PROC AddExtendedSalProc;
112 SAL_EXTENDED_SAL_PROC ExtendedSalProc;
113 SAL_PROC SalProc;
114 } EXTENDED_SAL_BOOT_SERVICE_PROTOCOL;
115
116 extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid;
117
118 #endif