]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Include/Library/QemuFwCfgLib.h
OvmfPkg: Apply uncrustify changes
[mirror_edk2.git] / OvmfPkg / Include / Library / QemuFwCfgLib.h
index 5a3db7e8099c135a475a6b720b66decece0123b4..2ad96c02979d4a5e540474a3a4d47ff126126e45 100644 (file)
@@ -1,60 +1,24 @@
 /** @file\r
   QEMU/KVM Firmware Configuration access\r
 \r
-  Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR>\r
-  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
-  http://opensource.org/licenses/bsd-license.php\r
+  Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (C) 2013, Red Hat, Inc.\r
 \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
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #ifndef __FW_CFG_LIB__\r
 #define __FW_CFG_LIB__\r
 \r
-typedef enum {\r
-  QemuFwCfgItemSignature            = 0x0000,\r
-  QemuFwCfgItemInterfaceVersion     = 0x0001,\r
-  QemuFwCfgItemSystemUuid           = 0x0002,\r
-  QemuFwCfgItemRamSize              = 0x0003,\r
-  QemuFwCfgItemGraphicsEnabled      = 0x0004,\r
-  QemuFwCfgItemSmpCpuCount          = 0x0005,\r
-  QemuFwCfgItemMachineId            = 0x0006,\r
-  QemuFwCfgItemKernelAddress        = 0x0007,\r
-  QemuFwCfgItemKernelSize           = 0x0008,\r
-  QemuFwCfgItemKernelCommandLine    = 0x0009,\r
-  QemuFwCfgItemInitrdAddress        = 0x000a,\r
-  QemuFwCfgItemInitrdSize           = 0x000b,\r
-  QemuFwCfgItemBootDevice           = 0x000c,\r
-  QemuFwCfgItemNumaData             = 0x000d,\r
-  QemuFwCfgItemBootMenu             = 0x000e,\r
-  QemuFwCfgItemMaximumCpuCount      = 0x000f,\r
-  QemuFwCfgItemKernelEntry          = 0x0010,\r
-  QemuFwCfgItemKernelData           = 0x0011,\r
-  QemuFwCfgItemInitrdData           = 0x0012,\r
-  QemuFwCfgItemCommandLineAddress   = 0x0013,\r
-  QemuFwCfgItemCommandLineSize      = 0x0014,\r
-  QemuFwCfgItemCommandLineData      = 0x0015,\r
-  QemuFwCfgItemKernelSetupAddress   = 0x0016,\r
-  QemuFwCfgItemKernelSetupSize      = 0x0017,\r
-  QemuFwCfgItemKernelSetupData      = 0x0018,\r
-\r
-  QemuFwCfgItemX86AcpiTables        = 0x8000,\r
-  QemuFwCfgItemX86SmbiosTables      = 0x8001,\r
-  QemuFwCfgItemX86Irq0Override      = 0x8002,\r
-  QemuFwCfgItemX86E820Table         = 0x8003,\r
-  QemuFwCfgItemX86HpetData          = 0x8004,\r
-\r
-} FIRMWARE_CONFIG_ITEM;\r
-\r
+#include <IndustryStandard/QemuFwCfg.h>\r
 \r
 /**\r
   Returns a boolean indicating if the firmware configuration interface\r
   is available or not.\r
 \r
+  This function may change fw_cfg state.\r
+\r
   @retval    TRUE   The interface is available\r
   @retval    FALSE  The interface is not available\r
 \r
@@ -65,7 +29,6 @@ QemuFwCfgIsAvailable (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Selects a firmware configuration item for reading.\r
 \r
@@ -78,10 +41,9 @@ QemuFwCfgIsAvailable (
 VOID\r
 EFIAPI\r
 QemuFwCfgSelectItem (\r
-  IN FIRMWARE_CONFIG_ITEM   QemuFwCfgItem\r
+  IN FIRMWARE_CONFIG_ITEM  QemuFwCfgItem\r
   );\r
 \r
-\r
 /**\r
   Reads firmware configuration bytes into a buffer\r
 \r
@@ -96,10 +58,42 @@ QemuFwCfgSelectItem (
 VOID\r
 EFIAPI\r
 QemuFwCfgReadBytes (\r
-  IN UINTN                  Size,\r
-  IN VOID                   *Buffer  OPTIONAL\r
+  IN UINTN  Size,\r
+  IN VOID   *Buffer  OPTIONAL\r
+  );\r
+\r
+/**\r
+  Writes firmware configuration bytes from a buffer\r
+\r
+  If called multiple times, then the data written will\r
+  continue at the offset of the firmware configuration\r
+  item where the previous write ended.\r
+\r
+  @param[in] Size - Size in bytes to write\r
+  @param[in] Buffer - Buffer to read data from\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+QemuFwCfgWriteBytes (\r
+  IN UINTN  Size,\r
+  IN VOID   *Buffer\r
   );\r
 \r
+/**\r
+  Skip bytes in the firmware configuration item.\r
+\r
+  Increase the offset of the firmware configuration item without transferring\r
+  bytes between the item and a caller-provided buffer. Subsequent read, write\r
+  or skip operations will commence at the increased offset.\r
+\r
+  @param[in] Size  Number of bytes to skip.\r
+**/\r
+VOID\r
+EFIAPI\r
+QemuFwCfgSkipBytes (\r
+  IN UINTN  Size\r
+  );\r
 \r
 /**\r
   Reads a UINT8 firmware configuration value\r
@@ -113,7 +107,6 @@ QemuFwCfgRead8 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads a UINT16 firmware configuration value\r
 \r
@@ -126,7 +119,6 @@ QemuFwCfgRead16 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads a UINT32 firmware configuration value\r
 \r
@@ -139,7 +131,6 @@ QemuFwCfgRead32 (
   VOID\r
   );\r
 \r
-\r
 /**\r
   Reads a UINT64 firmware configuration value\r
 \r
@@ -152,6 +143,25 @@ QemuFwCfgRead64 (
   VOID\r
   );\r
 \r
+/**\r
+  Find the configuration item corresponding to the firmware configuration file.\r
 \r
-#endif\r
+  @param[in]  Name - Name of file to look up.\r
+  @param[out] Item - Configuration item corresponding to the file, to be passed\r
+                     to QemuFwCfgSelectItem ().\r
+  @param[out] Size - Number of bytes in the file.\r
+\r
+  @return    RETURN_SUCCESS       If file is found.\r
+             RETURN_NOT_FOUND     If file is not found.\r
+             RETURN_UNSUPPORTED   If firmware configuration is unavailable.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+QemuFwCfgFindFile (\r
+  IN   CONST CHAR8           *Name,\r
+  OUT  FIRMWARE_CONFIG_ITEM  *Item,\r
+  OUT  UINTN                 *Size\r
+  );\r
 \r
+#endif\r