]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/DxeCis.h
Minor code enhancement.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / DxeCis.h
index 9c5a28ea51247048bf98352d073e5daa155c63ab..83e2055ac61c0a2947a42563b12a15580e6abb86 100644 (file)
@@ -1,11 +1,8 @@
 /** @file\r
-  Include file that supportes Framework extension to the EFI 1.10 spec.\r
+  Include file for definitions in the Intel Platform Innovation Framework for EFI\r
+  Driver Execution Environment Core Interface Specification (DXE CIS) Version 0.9.\r
 \r
-  This include file must only contain things defined in the Framework\r
-  specifications. If a code construct is defined in the Framework specification\r
-  it must be included by this include file.\r
-\r
-  Copyright (c) 2007, Intel Corporation\r
+  Copyright (c) 2007 - 2009, Intel Corporation\r
   All rights reserved. This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-  Module Name:    FrameworkDxeCis.h\r
-\r
 **/\r
 \r
-#ifndef _FRAMEWORK_DXE_CIS_H_\r
-#define _FRAMEWORK_DXE_CIS_H_\r
+#ifndef _DXECIS_H_\r
+#define _DXECIS_H_\r
 \r
-#include <PiDxe.h>\r
-#include <Framework/StatusCode.h>\r
 #include <Protocol/StatusCode.h>\r
 \r
-//\r
-// Function prototype for invoking a function on an Application Processor\r
-// Used by both the SMM infrastructure and the MP Services Protocol\r
-//\r
+/**\r
+  Functions of this type are used with the Framework MP Services Protocol and\r
+  the  SMM Services Table to execute a procedure on enabled APs.  The context \r
+  the AP should use durng execution is specified by Buffer.\r
+  \r
+  @param[in]  Buffer   Pointer to the procedure's argument.\r
+\r
+**/\r
 typedef\r
 VOID\r
-(EFIAPI *EFI_AP_PROCEDURE) (\r
-  IN  VOID                              *Buffer\r
+(EFIAPI *FRAMEWORK_EFI_AP_PROCEDURE)(\r
+  IN  VOID  *Buffer\r
   );\r
 \r
+///\r
+/// Framework EFI Runtime Services Table as extension to EFI 1.10 Runtime Services Table\r
+///\r
 typedef struct {\r
-  EFI_TABLE_HEADER              Hdr;\r
-\r
+  //\r
+  // Table header for the Framework EFI Runtime Services Table\r
+  //\r
+  EFI_TABLE_HEADER                  Hdr;\r
   //\r
   // Time services\r
   //\r
-  EFI_GET_TIME                  GetTime;\r
-  EFI_SET_TIME                  SetTime;\r
-  EFI_GET_WAKEUP_TIME           GetWakeupTime;\r
-  EFI_SET_WAKEUP_TIME           SetWakeupTime;\r
-\r
+  EFI_GET_TIME                      GetTime;\r
+  EFI_SET_TIME                      SetTime;\r
+  EFI_GET_WAKEUP_TIME               GetWakeupTime;\r
+  EFI_SET_WAKEUP_TIME               SetWakeupTime;\r
   //\r
   // Virtual memory services\r
   //\r
-  EFI_SET_VIRTUAL_ADDRESS_MAP   SetVirtualAddressMap;\r
-  EFI_CONVERT_POINTER           ConvertPointer;\r
-\r
+  EFI_SET_VIRTUAL_ADDRESS_MAP       SetVirtualAddressMap;\r
+  EFI_CONVERT_POINTER               ConvertPointer;\r
   //\r
   // Variable services\r
   //\r
-  EFI_GET_VARIABLE              GetVariable;\r
-  EFI_GET_NEXT_VARIABLE_NAME    GetNextVariableName;\r
-  EFI_SET_VARIABLE              SetVariable;\r
-\r
+  EFI_GET_VARIABLE                  GetVariable;\r
+  EFI_GET_NEXT_VARIABLE_NAME        GetNextVariableName;\r
+  EFI_SET_VARIABLE                  SetVariable;\r
   //\r
   // Misc\r
   //\r
-  EFI_GET_NEXT_HIGH_MONO_COUNT  GetNextHighMonotonicCount;\r
-  EFI_RESET_SYSTEM              ResetSystem;\r
+  EFI_GET_NEXT_HIGH_MONO_COUNT      GetNextHighMonotonicCount;\r
+  EFI_RESET_SYSTEM                  ResetSystem;\r
+  ///\r
+  /// Framework extension to EFI 1.10 runtime table\r
+  /// It was moved to a protocol to not conflict with UEFI 2.0\r
+  ///\r
+  EFI_REPORT_STATUS_CODE            ReportStatusCode;\r
+} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
+\r
+///\r
+/// Framework EFI Boot Services Table which comply with DxeCis spec.\r
+///\r
+typedef struct {\r
+  ///\r
+  /// The table header for the EFI Boot Services Table.\r
+  ///\r
+  EFI_TABLE_HEADER                Hdr;\r
 \r
   //\r
-  // Framework extension to EFI 1.10 runtime table\r
-  // It was moved to a protocol to not conflict with UEFI 2.0\r
+  // Task Priority Services\r
   //\r
-  EFI_REPORT_STATUS_CODE        ReportStatusCode;\r
-} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
+  EFI_RAISE_TPL                   RaiseTPL;\r
+  EFI_RESTORE_TPL                 RestoreTPL;\r
 \r
-#define EFI_EVENT_RUNTIME_CONTEXT       0x20000000\r
-#define EFI_EVENT_NOTIFY_SIGNAL_ALL     0x00000400\r
-#define EFI_EVENT_SIGNAL_READY_TO_BOOT  0x00000203\r
-#define EFI_EVENT_SIGNAL_LEGACY_BOOT    0x00000204\r
+  //\r
+  // Memory Services\r
+  //\r
+  EFI_ALLOCATE_PAGES              AllocatePages;\r
+  EFI_FREE_PAGES                  FreePages;\r
+  EFI_GET_MEMORY_MAP              GetMemoryMap;\r
+  EFI_ALLOCATE_POOL               AllocatePool;\r
+  EFI_FREE_POOL                   FreePool;\r
 \r
+  //\r
+  // Event & Timer Services\r
+  //\r
+  EFI_CREATE_EVENT                  CreateEvent;\r
+  EFI_SET_TIMER                     SetTimer;\r
+  EFI_WAIT_FOR_EVENT                WaitForEvent;\r
+  EFI_SIGNAL_EVENT                  SignalEvent;\r
+  EFI_CLOSE_EVENT                   CloseEvent;\r
+  EFI_CHECK_EVENT                   CheckEvent;\r
 \r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL  Header;\r
-  EFI_GUID                  TianoSpecificDevicePath;\r
-  UINT32                    Type;\r
-} TIANO_DEVICE_PATH;\r
+  //\r
+  // Protocol Handler Services\r
+  //\r
+  EFI_INSTALL_PROTOCOL_INTERFACE    InstallProtocolInterface;\r
+  EFI_REINSTALL_PROTOCOL_INTERFACE  ReinstallProtocolInterface;\r
+  EFI_UNINSTALL_PROTOCOL_INTERFACE  UninstallProtocolInterface;\r
+  EFI_HANDLE_PROTOCOL               HandleProtocol;\r
+  EFI_HANDLE_PROTOCOL               PcHandleProtocol;\r
+  EFI_REGISTER_PROTOCOL_NOTIFY      RegisterProtocolNotify;\r
+  EFI_LOCATE_HANDLE                 LocateHandle;\r
+  EFI_LOCATE_DEVICE_PATH            LocateDevicePath;\r
+  EFI_INSTALL_CONFIGURATION_TABLE   InstallConfigurationTable;\r
 \r
-#define TIANO_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE         0x01\r
-typedef struct {\r
-  TIANO_DEVICE_PATH     Tiano;\r
-  EFI_GUID              NameGuid;\r
-} FRAMEWORK_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
+  //\r
+  // Image Services\r
+  //\r
+  EFI_IMAGE_LOAD                    LoadImage;\r
+  EFI_IMAGE_START                   StartImage;\r
+  EFI_EXIT                          Exit;\r
+  EFI_IMAGE_UNLOAD                  UnloadImage;\r
+  EFI_EXIT_BOOT_SERVICES            ExitBootServices;\r
 \r
+  //\r
+  // Miscellaneous Services\r
+  //\r
+  EFI_GET_NEXT_MONOTONIC_COUNT      GetNextMonotonicCount;\r
+  EFI_STALL                         Stall;\r
+  EFI_SET_WATCHDOG_TIMER            SetWatchdogTimer;\r
+\r
+  //\r
+  // DriverSupport Services\r
+  //\r
+  EFI_CONNECT_CONTROLLER            ConnectController;\r
+  EFI_DISCONNECT_CONTROLLER         DisconnectController;\r
+\r
+  //\r
+  // Open and Close Protocol Services\r
+  //\r
+  EFI_OPEN_PROTOCOL                 OpenProtocol;\r
+  EFI_CLOSE_PROTOCOL                CloseProtocol;\r
+  EFI_OPEN_PROTOCOL_INFORMATION     OpenProtocolInformation;\r
+\r
+  //\r
+  // Library Services\r
+  //\r
+  EFI_PROTOCOLS_PER_HANDLE          ProtocolsPerHandle;\r
+  EFI_LOCATE_HANDLE_BUFFER          LocateHandleBuffer;\r
+  EFI_LOCATE_PROTOCOL               LocateProtocol;\r
+  EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES    InstallMultipleProtocolInterfaces;\r
+  EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES  UninstallMultipleProtocolInterfaces;\r
+\r
+  //\r
+  // 32-bit CRC Services\r
+  //\r
+  EFI_CALCULATE_CRC32               CalculateCrc32;\r
+\r
+  //\r
+  // Miscellaneous Services\r
+  //\r
+  EFI_COPY_MEM                      CopyMem;\r
+  EFI_SET_MEM                       SetMem;\r
+} FRAMEWORK_EFI_BOOT_SERVICES;\r
+\r
+#define EFI_EVENT_RUNTIME_CONTEXT       0x20000000\r
+#define EFI_EVENT_NOTIFY_SIGNAL_ALL     0x00000400\r
+#define EFI_EVENT_SIGNAL_READY_TO_BOOT  0x00000203\r
+#define EFI_EVENT_SIGNAL_LEGACY_BOOT    0x00000204\r
 \r
 #endif\r
+\r