)]}'
{
  "commit": "4fa4052c7ebb59e4d4aa396f1563c89118623ec7",
  "tree": "e7a8c6faf2b93dcb0679cf63e195dda6d2e7b6e2",
  "parents": [
    "25a3d3acabeec97c4a4cb8ed8fb90853e8a195c3"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Fri Jun 09 14:03:48 2023 +0100"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Fri Jun 09 14:37:44 2023 +0100"
  },
  "message": "[efi] Provide read-only access to EFI variables via settings mechanism\n\nEFI variables do not map neatly to the iPXE settings mechanism, since\nthe EFI variable identifier includes a namespace GUID that cannot\ncleanly be supplied as part of a setting name.  Creating a new EFI\nvariable requires the variable\u0027s attributes to be specified, which\ndoes not fit within iPXE\u0027s settings concept.\n\nHowever, EFI variable names are generally unique even without the\nnamespace GUID, and EFI does provide a mechanism to iterate over all\nexistent variables.  We can therefore provide read-only access to EFI\nvariables by comparing only the names and ignoring the namespace\nGUIDs.\n\nProvide an \"efi\" settings block that implements this mechanism using a\nsyntax such as:\n\n  echo Platform language is ${efi/PlatformLang:string}\n\n  show efi/SecureBoot:int8\n\nSettings are returned as raw binary values by default since an EFI\nvariable may contain boolean flags, integer values, ASCII strings,\nUCS-2 strings, EFI device paths, X.509 certificates, or any other\narbitrary blob of data.\n\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "40f9c72c1bfbbb71281161e4dc802ed0372a0998",
      "old_mode": 33188,
      "old_path": "src/config/config.c",
      "new_id": "abb7d16a2681916b1893b6e6d982af38b62cb804",
      "new_mode": 33188,
      "new_path": "src/config/config.c"
    },
    {
      "type": "modify",
      "old_id": "8e53b9ab6a435cf958906007ca00e9d328aec700",
      "old_mode": 33188,
      "old_path": "src/config/defaults/efi.h",
      "new_id": "cb9e2348a0087bd0b63c7cb0959afb8fd5daa090",
      "new_mode": 33188,
      "new_path": "src/config/defaults/efi.h"
    },
    {
      "type": "modify",
      "old_id": "d9c86a384ca8ad9fdc554979a0c48369975a494c",
      "old_mode": 33188,
      "old_path": "src/config/settings.h",
      "new_id": "d7f787d38e762a387b57239f6bfab0e1da54ae6f",
      "new_mode": 33188,
      "new_path": "src/config/settings.h"
    },
    {
      "type": "modify",
      "old_id": "daa038c52b718d176284331a97df18f6f2a02aec",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/errfile.h",
      "new_id": "320835a3439d3eb611ce3b88583c9cf3b2400c39",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/errfile.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cde0ff8d12d1161988a5cb8c41c175687c64f948",
      "new_mode": 33188,
      "new_path": "src/interface/efi/efi_settings.c"
    }
  ]
}
