Home | History | Annotate | Download | only in ExtendedSalBootService
      1 /*++
      2 
      3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
      4 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 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 };
    115 
    116 extern EFI_GUID   gEfiExtendedSalBootServiceProtocolGuid;
    117 
    118 #endif
    119