]> git.proxmox.com Git - mirror_edk2.git/blob - EdkModulePkg/Include/Protocol/ExtendedSalBootService.h
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1452 6f19259b...
[mirror_edk2.git] / EdkModulePkg / Include / Protocol / ExtendedSalBootService.h
1 /*++
2
3 Copyright (c) 2006, 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 #define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID \
24 {0xde0ee9a4,0x3c7a,0x44f2, {0xb7,0x8b,0xe3,0xcc,0xd6,0x9c,0x3a,0xf7}}
25
26 #define EXTENDED_SAL_SIGNATURE EFI_SIGNATURE_32('e', 's', 'a', 'l')
27
28 #define SAL_MIN_STATE_SIZE 0x400 * 1
29 #define PAL_SCARTCH_SIZE 0x400 * 3
30 #define ALIGN_MINSTATE_SIZE 512
31 #define MAX_SAL_RECORD_SIZE 8*1024
32
33 #define SAL_RUNTIMESERVICE
34
35 typedef UINT16 EFI_SAL_PROCESSOR_ID;
36
37 typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL EXTENDED_SAL_BOOT_SERVICE_PROTOCOL;
38
39 typedef
40 SAL_RUNTIMESERVICE
41 SAL_RETURN_REGS
42 (EFIAPI *SAL_EXTENDED_SAL_PROC) (
43 IN EFI_GUID *ClassGuid,
44 IN UINT64 FunctionId,
45 IN UINT64 Arg2,
46 IN UINT64 Arg3,
47 IN UINT64 Arg4,
48 IN UINT64 Arg5,
49 IN UINT64 Arg6,
50 IN UINT64 Arg7,
51 IN UINT64 Arg8
52 );
53
54 typedef
55 SAL_RUNTIMESERVICE
56 SAL_RETURN_REGS
57 (EFIAPI *SAL_INTERNAL_EXTENDED_SAL_PROC) (
58 IN UINT64 FunctionId,
59 IN UINT64 Arg2,
60 IN UINT64 Arg3,
61 IN UINT64 Arg4,
62 IN UINT64 Arg5,
63 IN UINT64 Arg6,
64 IN UINT64 Arg7,
65 IN UINT64 Arg8,
66 IN SAL_EXTENDED_SAL_PROC ExtendedSalProc,
67 IN BOOLEAN VirtualMode,
68 IN VOID *ModuleGlobal
69 );
70
71 typedef
72 EFI_STATUS
73 (EFIAPI *EXTENDED_SAL_ADD_SST_INFO) (
74 IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
75 IN UINT16 SalAVersion,
76 IN UINT16 SalBVersion,
77 IN CHAR8 *OemId,
78 IN CHAR8 *ProductId
79 );
80
81 typedef
82 EFI_STATUS
83 (EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY) (
84 IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
85 IN UINT8 EntryType,
86 IN UINT8 *TableEntry,
87 IN UINTN EntrySize
88 );
89
90 typedef
91 EFI_STATUS
92 (EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC) (
93 IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This,
94 IN EFI_GUID *ClassGuid,
95 IN UINT64 FunctionId,
96 IN SAL_INTERNAL_EXTENDED_SAL_PROC InternalSalProc,
97 IN VOID *PhysicalModuleGlobal
98 );
99
100 //
101 // Extended Sal Boot Service Protocol Interface
102 //
103 struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL{
104 EXTENDED_SAL_ADD_SST_INFO AddSalSystemTableInfo;
105 EXTENDED_SAL_ADD_SST_ENTRY AddSalSystemTableEntry;
106 EXTENDED_SAL_REGISTER_INTERNAL_PROC AddExtendedSalProc;
107 SAL_EXTENDED_SAL_PROC ExtendedSalProc;
108 SAL_PROC SalProc;
109 };
110
111 extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid;
112
113 #endif