Home | History | Annotate | Download | only in Framework
      1 /** @file
      2   Include file for definitions in the Intel Platform Innovation Framework for EFI
      3   Driver Execution Environment Core Interface Specification (DXE CIS) Version 0.91.
      4 
      5 Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
      6 This program and the accompanying materials are licensed and made available under
      7 the terms and conditions of the BSD License that accompanies this distribution.
      8 The full text of the license may be found at
      9 http://opensource.org/licenses/bsd-license.php.
     10 
     11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14 **/
     15 
     16 #ifndef _DXECIS_H_
     17 #define _DXECIS_H_
     18 
     19 #include <Protocol/StatusCode.h>
     20 
     21 /**
     22   Functions of this type are used with the Framework MP Services Protocol and
     23   the  SMM Services Table to execute a procedure on enabled APs.  The context
     24   the AP should use durng execution is specified by Buffer.
     25 
     26   @param[in]  Buffer   The pointer to the procedure's argument.
     27 
     28 **/
     29 typedef
     30 VOID
     31 (EFIAPI *FRAMEWORK_EFI_AP_PROCEDURE)(
     32   IN  VOID  *Buffer
     33   );
     34 
     35 ///
     36 /// The Framework EFI Runtime Services Table as an extension to the EFI 1.10 Runtime Services Table.
     37 ///
     38 typedef struct {
     39   //
     40   // Table header for the Framework EFI Runtime Services Table
     41   //
     42   EFI_TABLE_HEADER                  Hdr;
     43   //
     44   // Time services
     45   //
     46   EFI_GET_TIME                      GetTime;
     47   EFI_SET_TIME                      SetTime;
     48   EFI_GET_WAKEUP_TIME               GetWakeupTime;
     49   EFI_SET_WAKEUP_TIME               SetWakeupTime;
     50   //
     51   // Virtual memory services
     52   //
     53   EFI_SET_VIRTUAL_ADDRESS_MAP       SetVirtualAddressMap;
     54   EFI_CONVERT_POINTER               ConvertPointer;
     55   //
     56   // Variable services
     57   //
     58   EFI_GET_VARIABLE                  GetVariable;
     59   EFI_GET_NEXT_VARIABLE_NAME        GetNextVariableName;
     60   EFI_SET_VARIABLE                  SetVariable;
     61   //
     62   // Misc
     63   //
     64   EFI_GET_NEXT_HIGH_MONO_COUNT      GetNextHighMonotonicCount;
     65   EFI_RESET_SYSTEM                  ResetSystem;
     66   ///
     67   /// A Framework extension to the EFI 1.10 runtime table.
     68   /// It was moved to a protocol to avoid conflict with UEFI 2.0.
     69   ///
     70   EFI_REPORT_STATUS_CODE            ReportStatusCode;
     71 } FRAMEWORK_EFI_RUNTIME_SERVICES;
     72 
     73 ///
     74 /// The Framework EFI Boot Services Table. Complies with the DxeCis specification.
     75 ///
     76 typedef struct {
     77   ///
     78   /// The table header for the EFI Boot Services Table.
     79   ///
     80   EFI_TABLE_HEADER                Hdr;
     81 
     82   //
     83   // Task Priority Services
     84   //
     85   EFI_RAISE_TPL                   RaiseTPL;
     86   EFI_RESTORE_TPL                 RestoreTPL;
     87 
     88   //
     89   // Memory Services
     90   //
     91   EFI_ALLOCATE_PAGES              AllocatePages;
     92   EFI_FREE_PAGES                  FreePages;
     93   EFI_GET_MEMORY_MAP              GetMemoryMap;
     94   EFI_ALLOCATE_POOL               AllocatePool;
     95   EFI_FREE_POOL                   FreePool;
     96 
     97   //
     98   // Event & Timer Services
     99   //
    100   EFI_CREATE_EVENT                  CreateEvent;
    101   EFI_SET_TIMER                     SetTimer;
    102   EFI_WAIT_FOR_EVENT                WaitForEvent;
    103   EFI_SIGNAL_EVENT                  SignalEvent;
    104   EFI_CLOSE_EVENT                   CloseEvent;
    105   EFI_CHECK_EVENT                   CheckEvent;
    106 
    107   //
    108   // Protocol Handler Services
    109   //
    110   EFI_INSTALL_PROTOCOL_INTERFACE    InstallProtocolInterface;
    111   EFI_REINSTALL_PROTOCOL_INTERFACE  ReinstallProtocolInterface;
    112   EFI_UNINSTALL_PROTOCOL_INTERFACE  UninstallProtocolInterface;
    113   EFI_HANDLE_PROTOCOL               HandleProtocol;
    114   EFI_HANDLE_PROTOCOL               PcHandleProtocol;
    115   EFI_REGISTER_PROTOCOL_NOTIFY      RegisterProtocolNotify;
    116   EFI_LOCATE_HANDLE                 LocateHandle;
    117   EFI_LOCATE_DEVICE_PATH            LocateDevicePath;
    118   EFI_INSTALL_CONFIGURATION_TABLE   InstallConfigurationTable;
    119 
    120   //
    121   // Image Services
    122   //
    123   EFI_IMAGE_LOAD                    LoadImage;
    124   EFI_IMAGE_START                   StartImage;
    125   EFI_EXIT                          Exit;
    126   EFI_IMAGE_UNLOAD                  UnloadImage;
    127   EFI_EXIT_BOOT_SERVICES            ExitBootServices;
    128 
    129   //
    130   // Miscellaneous Services
    131   //
    132   EFI_GET_NEXT_MONOTONIC_COUNT      GetNextMonotonicCount;
    133   EFI_STALL                         Stall;
    134   EFI_SET_WATCHDOG_TIMER            SetWatchdogTimer;
    135 
    136   //
    137   // DriverSupport Services
    138   //
    139   EFI_CONNECT_CONTROLLER            ConnectController;
    140   EFI_DISCONNECT_CONTROLLER         DisconnectController;
    141 
    142   //
    143   // Open and Close Protocol Services
    144   //
    145   EFI_OPEN_PROTOCOL                 OpenProtocol;
    146   EFI_CLOSE_PROTOCOL                CloseProtocol;
    147   EFI_OPEN_PROTOCOL_INFORMATION     OpenProtocolInformation;
    148 
    149   //
    150   // Library Services
    151   //
    152   EFI_PROTOCOLS_PER_HANDLE          ProtocolsPerHandle;
    153   EFI_LOCATE_HANDLE_BUFFER          LocateHandleBuffer;
    154   EFI_LOCATE_PROTOCOL               LocateProtocol;
    155   EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES    InstallMultipleProtocolInterfaces;
    156   EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES  UninstallMultipleProtocolInterfaces;
    157 
    158   //
    159   // 32-bit CRC Services
    160   //
    161   EFI_CALCULATE_CRC32               CalculateCrc32;
    162 
    163   //
    164   // Miscellaneous Services
    165   //
    166   EFI_COPY_MEM                      CopyMem;
    167   EFI_SET_MEM                       SetMem;
    168 } FRAMEWORK_EFI_BOOT_SERVICES;
    169 
    170 #define EFI_EVENT_RUNTIME_CONTEXT       0x20000000
    171 #define EFI_EVENT_NOTIFY_SIGNAL_ALL     0x00000400
    172 #define EFI_EVENT_SIGNAL_READY_TO_BOOT  0x00000203
    173 #define EFI_EVENT_SIGNAL_LEGACY_BOOT    0x00000204
    174 
    175 #endif
    176 
    177