├── docs ├── .gitignore ├── efi_append_variable.3 ├── efi_del_variable.3 ├── efi_guid_to_id_guid.3 ├── efi_guid_to_name.3 ├── efi_guid_to_str.3 ├── efi_guid_to_symbol.3 ├── efi_id_guid_to_guid.3 ├── efi_name_to_guid.3 ├── efi_set_variable.3 ├── efi_str_to_guid.3 ├── efi_symbol_to_guid.3 ├── efi_variable_alloc.3 ├── efi_variable_export.3 ├── efi_variable_free.3 ├── efi_variable_get_data.3 ├── efi_variable_get_guid.3 ├── efi_variable_get_name.3 ├── efi_variable_import.3 ├── efi_variable_realize.3 ├── efi_variable_set_data.3 ├── efi_variable_set_guid.3 ├── efi_variable_set_name.3 ├── efi_get_variable_size.3 ├── efi_variables_supported.3 ├── efi_get_next_variable_name.3 ├── efi_get_variable_attributes.3 ├── efi_variable_get_attributes.3 ├── efi_variable_set_attributes.3 ├── efivar.1 └── Makefile ├── src ├── test │ ├── .gitignore │ └── Makefile ├── include │ ├── version.mk │ ├── gcc.specs │ ├── deps.mk │ ├── scan-build.mk │ ├── efivar │ │ ├── efisec.h │ │ ├── efiboot.h │ │ ├── efivar-time.h │ │ ├── efiboot-creator.h │ │ ├── efiboot-loadopt.h │ │ ├── efisec-secdb.h │ │ └── efivar-types.h │ ├── deprecated.mk │ ├── coverity.mk │ └── rules.mk ├── .gitignore ├── efivar.pc.in ├── efiboot.pc.in ├── efisec.pc.in ├── sec.c ├── libefisec.map.in ├── efiboot.h ├── util.c ├── disk.h ├── efisec.h ├── efivar.h ├── libefiboot.map.in ├── path-helpers.h ├── crc32.h ├── linux-i2o.c ├── efivar_endian.h ├── lib.h ├── linux-soc-root.c ├── linux-virtblk.c ├── linux-md.c ├── Android.mk ├── x509.h ├── linux-virtual-root.c ├── abignore ├── diag.h ├── esl-iter.h ├── guids.txt ├── compiler.h ├── linux-acpi.c ├── linux-emmc.c ├── dp-hw.c ├── linux-pci-root.c ├── fix_coverity.h ├── libefivar.map.in └── hexdump.h ├── tests ├── machine1 │ └── data │ │ ├── SADS-42780dd5-9a7d-404c-80e4-7f7094360394 │ │ ├── SADS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea │ │ ├── SADS-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13 │ │ ├── WRDD-92daaf2f-c02b-455b-b2ec-f5a3594f4aea │ │ ├── WRDD-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13 │ │ ├── AWVC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13 │ │ ├── AssetTag-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── AuditMode-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── BRDS-42780dd5-9a7d-404c-80e4-7f7094360394 │ │ ├── BootList-65cbd9d9-ab77-4a61-b288-2763405d588a │ │ ├── CpuSmm-90d93e09-4e91-4b3d-8c77-c82ff10e3c81 │ │ ├── DellVar01-e224eaa0-4358-6ac8-3cce-daa44e54f638 │ │ ├── IsRTCBad-65cbd9d9-ab77-4a61-b288-2763405d588a │ │ ├── KvmActive-f7f70708-b3c0-4be0-b00c-ae91da4adc03 │ │ ├── SIDSUPPORT-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ServiceTag-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SolActive-f7f70708-b3c0-4be0-b00c-ae91da4adc03 │ │ ├── Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── WAND-92daaf2f-c02b-455b-b2ec-f5a3594f4aea │ │ ├── WRDS-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13 │ │ ├── AmtResetbyFlag-9482539b-7c17-44ed-b68c-2c8f7f33b7b2 │ │ ├── BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── CurrentPolicy-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── DeployedMode-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6 │ │ ├── GPC-42780dd5-9a7d-404c-80e4-7f7094360394 │ │ ├── GPC-92daaf2f-c02b-455b-b2ec-f5a3594f4aea │ │ ├── GPC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13 │ │ ├── InternalHddFlag-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── OsExtenedType-dd7f0389-ab93-4dbe-998b-c9c5ca8f97d8 │ │ ├── PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5 │ │ ├── RstOptaneConfig-4da4f952-2516-4d06-8975-65036403a8c7 │ │ ├── SPLC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13 │ │ ├── SimpleBootFlag-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── TPM_NVSelection-8e1a7a52-df0d-460d-a825-d08acf2bb44d │ │ ├── WRDS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea │ │ ├── BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53 │ │ ├── DellSecureBootMode-7b59104a-c00d-4158-87ff-f04d6396a915 │ │ ├── Kernel_ATPSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── Kernel_RvkSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── Kernel_SiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── Kernel_SkuSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── Kernel_WinSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── NBGopPlatformData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PreMonotoicCount-65cbd9d9-ab77-4a61-b288-2763405d588a │ │ ├── SOFTWAREGUARDSTATUS-9cb2e73f-7325-40f4-a484-659bb344c3cd │ │ ├── SetUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65 │ │ ├── SimpleBootFlagBackUp-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── ePSAVersion-66b36b33-8094-424d-ba45-e876d62c45c1 │ │ ├── DellBrightnessValue-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── Kernel_DriverSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── MeSetupStorage-5432122d-d034-49d2-a6de-65a829eb4c74 │ │ ├── NetworkStackVar-d1405d16-7afc-4695-bb12-41459d3695a2 │ │ ├── SMBIOS_ENTRY_ADDR-0a602c5b-05a0-40c4-9181-edcd891d0036 │ │ ├── TbtPresentStatusOnPost-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── UserBootOrderCount-65cbd9d9-ab77-4a61-b288-2763405d588a │ │ ├── Kernel_EntRevokeSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829 │ │ ├── OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e │ │ ├── EWRD-92daaf2f-c02b-455b-b2ec-f5a3594f4aea │ │ ├── MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292 │ │ ├── BiosGuardCapsuleVariable-368b3153-563d-4610-8d94-47a9fa8c4c16 │ │ ├── UserBootOrder-65cbd9d9-ab77-4a61-b288-2763405d588a │ │ ├── UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── GsetUefiIplDefaultValue-7f3301c7-2405-4765-aa2e-d9ed28aea950 │ │ ├── SetupCpuFeatures-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── GsetLegacyIplDefaultValue-3a21751e-bd32-4825-8754-82a47f01b09b │ │ ├── AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34 │ │ ├── Ep-73dad563-8f27-42af-918f-8651eb0a93ef │ │ ├── PK-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── db-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 │ │ ├── KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SPLC-92daaf2f-c02b-455b-b2ec-f5a3594f4aea │ │ ├── Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── WGDS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea │ │ ├── dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── EfiTime-9d0da369-540b-46f8-85a0-2b5f2c301e15 │ │ ├── ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── OsType-a66919d2-6c45-403e-b00a-9bce58e97315 │ │ ├── Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── BootFFF6-5990c250-676b-4ff7-8a0d-529319d0b254 │ │ ├── BootFFF7-5990c250-676b-4ff7-8a0d-529319d0b254 │ │ ├── BootFFF8-5990c250-676b-4ff7-8a0d-529319d0b254 │ │ ├── BootFFFB-5990c250-676b-4ff7-8a0d-529319d0b254 │ │ ├── BootFFFC-5990c250-676b-4ff7-8a0d-529319d0b254 │ │ ├── BootFFFD-5990c250-676b-4ff7-8a0d-529319d0b254 │ │ ├── BootFFFE-5990c250-676b-4ff7-8a0d-529319d0b254 │ │ ├── ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── GNVS_PTR-0a602c5b-05a0-40c4-9181-edcd891d0003 │ │ ├── KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824 │ │ ├── TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── UnlockIDCopy-eaec226f-c9a3-477a-a826-ddc716cdc0e3 │ │ ├── UserDefaults-c54906f9-eb09-4457-a007-4154652fcfa5 │ │ ├── AmiGopOutputDp-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── DDIAG_BHISTORY-1358e20b-0e48-4f06-8ddd-8809b8a74d6c │ │ ├── FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── FastBootOption-b540a530-6978-4da7-91cb-7207d764d262 │ │ ├── SataPortNumber-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── fwupd-ux-capsule-0abba7dc-e516-4167-bbf5-4d9d1c739416 │ │ ├── CpuSetupVolatileData-b08f97ff-e6e8-4193-a997-5e9e9b0adb32 │ │ ├── DellMonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── LastKnownGoodConfig-c54906f9-eb09-4457-a007-4154652fcfa5 │ │ ├── OfflineUniqueIDEKPub-eaec226f-c9a3-477a-a826-ddc716cdc0e3 │ │ ├── SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── TbtSetupVolatileData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── OfflineUniqueIDEKPubCRC-eaec226f-c9a3-477a-a826-ddc716cdc0e3 │ │ ├── BiosGuardRecoveryAddressVariable-368b3152-563d-4670-8d94-47a9fa8c4c16 │ │ ├── fwupd-ce945437-7358-49f1-95d8-6b694a10a755-0-0abba7dc-e516-4167-bbf5-4d9d1c739416 │ │ └── FWUPDATE_DEBUG_LOG-0abba7dc-e516-4167-bbf5-4d9d1c739416 ├── machine0 │ └── data │ │ ├── AuditMode-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── CpuSmm-90d93e09-4e91-4b3d-8c77-c82ff10e3c81 │ │ ├── SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Setup-80e1202e-2697-4264-9cc9-80762c3e5863 │ │ ├── SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── DeployedMode-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6 │ │ ├── NewOptionPolicy-69ecc1be-a981-446d-8eb6-af0e53d06ce8 │ │ ├── OcTurboRatio-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5 │ │ ├── PNP0501_0_NV-560bf58a-1e0d-4d7e-953f-2980a261e031 │ │ ├── RstOptaneConfig-4da4f952-2516-4d06-8975-65036403a8c7 │ │ ├── BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── NBGopPlatformData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── NetworkStackVar-d1405d16-7afc-4695-bb12-41459d3695a2 │ │ ├── OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SMCOcBiosSetting-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── SecureBootSetup-7b59104a-c00d-4158-87ff-f04d6396a915 │ │ ├── SetUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65 │ │ ├── TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── IntUcode-eda41d22-7729-5b91-b3ee-ba619921cefa │ │ ├── MeSetupStorage-5432122d-d034-49d2-a6de-65a829eb4c74 │ │ ├── PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829 │ │ ├── OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e │ │ ├── MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292 │ │ ├── UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34 │ │ ├── Ep-73dad563-8f27-42af-918f-8651eb0a93ef │ │ ├── PK-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── db-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 │ │ ├── KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── EfiTime-9d0da369-540b-46f8-85a0-2b5f2c301e15 │ │ ├── ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── AmdAcpiVar-79941ecd-ed36-49d0-8124-e4c31ac75cd4 │ │ ├── Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SMCOCXMP-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824 │ │ ├── UserDefaults-c4cc0de8-0687-4422-99c1-65351a5d5f95 │ │ ├── AmiEntryS3Addr-074e1e48-8132-47a1-8c2c-3f14ad9a66dc │ │ ├── FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── CpuSetupVolatileData-b08f97ff-e6e8-4193-a997-5e9e9b0adb32 │ │ ├── SOFTWAREGUARDSTATUS-9cb2e73f-7325-40f4-a484-659bb344c3cd │ │ ├── SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ └── FixedBoot-de8ab926-efda-4c23-bbc4-98fd29aa0069 ├── machine2 │ └── data │ │ ├── SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6 │ │ ├── AmiEmaIndications-eb41d646-f49f-4655-9165-21d1224e3932 │ │ ├── BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53 │ │ ├── MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── OldBootOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc │ │ ├── OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SmcBootOrder-1105d69f-5ec8-47e9-bb46-153e794e356c │ │ ├── TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── TotalNumberOfRootBridges-fb5703f5-f8a7-f401-18b4-3f108deb2612 │ │ ├── FboUefiSceOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc │ │ ├── MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829 │ │ ├── OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── UefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc │ │ ├── AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e │ │ ├── FboLegacyDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc │ │ ├── FboLegacySceOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc │ │ ├── MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292 │ │ ├── OriUefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc │ │ ├── DefaultLegacyDevOrder-3c4ead08-45ae-4315-8d15-a60eaa8caf69 │ │ ├── DefaultUefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc │ │ ├── OriFboLegacyDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc │ │ ├── AmiHardwareSignatureSetupUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65 │ │ ├── FixedBootGroup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── PK-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── db-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 │ │ ├── KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Boot0002-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Boot0003-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── AmdSetupSSP-3a997502-647a-4c82-998e-52ef9486a247 │ │ ├── TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── LegacyDevOrder-a56074db-65fe-45f7-bd21-2d2bdd8e9652 │ │ ├── OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── OldLegacyDevOrder-a56074db-65fe-45f7-bd21-2d2bdd8e9652 │ │ ├── SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── SmbiosEntryPointTableF000-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ └── FixedBoot-de8ab926-efda-4c23-bbc4-98fd29aa0069 ├── machine3 │ └── data │ │ ├── AsusNodePsu-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SIDSUPPORT-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── AMD_RAID-fe26a894-d199-47d4-8afa-070e3d54ba86 │ │ ├── AsusExtFancard-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── CMOSfailflag-c89dc9c7-5105-472c-a743-b1621e142b41 │ │ ├── CurrentPolicy-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6 │ │ ├── DownCoreStatus-29749bad-401b-4f6d-b124-cece8c590c48 │ │ ├── FTMActiveFlag-4034591c-48ea-4cdc-864f-e7cb61cfd0f2 │ │ ├── FirstBootFlag-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── HddSmartInfo-a6f44860-b2e8-4fda-bd45-78368994b6ae │ │ ├── PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5 │ │ ├── PcieSataModVar-5e9a565f-cdc0-413b-ad13-1fe8713ffdcd │ │ ├── SetupLedData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── AmdAcpiVar-79941ecd-ed36-49d0-8124-e4c31ac75cd4 │ │ ├── BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53 │ │ ├── Fail_FLAG_POST-e9f78597-5151-4a3c-b17a-cad106f334f6 │ │ ├── Kernel_ATPSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── Kernel_RvkSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── Kernel_SiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── Kernel_SkuSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── Kernel_WinSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b │ │ ├── OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── SecureBootSetup-7b59104a-c00d-4158-87ff-f04d6396a915 │ │ ├── TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── Test_AC_LOSS_FLAG-15965464-28a2-41df-8629-fe26cd257605 │ │ ├── AsusSetupDataBackup-1111b056-c5e9-40ca-aba3-ec172533d814 │ │ ├── FPLayoutOrder-4db88a62-6721-47a0-9082-280b00323594 │ │ ├── Kernel_DriverSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b │ │ ├── TotalNumberOfRootBridges-fb5703f5-f8a7-f401-18b4-3f108deb2612 │ │ ├── MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829 │ │ ├── OfflineUniqueIDRandomSeedCRC-eaec226f-c9a3-477a-a826-ddc716cdc0e3 │ │ ├── OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ResourceDistribution-0ce40a5f-153a-4462-a429-4098e0e13cac │ │ ├── SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e │ │ ├── AsusFanSetupFeatures-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292 │ │ ├── AmiHardwareSignatureSetupUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65 │ │ ├── LastBoot-b540a530-6978-4da7-91cb-7207d764d262 │ │ ├── AsusHwmSetupOneof-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34 │ │ ├── PK-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── db-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 │ │ ├── KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── MyFav-4034591c-48ea-4cdc-864f-e7cb61cfd0f2 │ │ ├── dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f │ │ ├── ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── AOD_SETUP-5ed15dc0-edef-4161-9151-6014c4cc630c │ │ ├── AmdSetup-3a997502-647a-4c82-998e-52ef9486a247 │ │ ├── AsbkpInfo-cb825795-feb1-4c0b-894f-cc70f8064395 │ │ ├── Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── EnWpData-cbab171f-f356-4009-baaa-6628353a0a29 │ │ ├── ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── PreVgaInfo-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── RsdpAddr-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── UIT_DATA-fe47349a-7f0d-4641-822b-34baa28ecdd0 │ │ ├── UIT_HEADER-fe47349a-7f0d-4641-822b-34baa28ecdd0 │ │ ├── WpBufAddr-cba83c4a-a5fc-48a8-b3a6-d33636166544 │ │ ├── dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── ApSyncFlagNv-ad3f6761-f0a3-46c8-a4cb-19b70ffdb305 │ │ ├── NVRAM_Verify-15a9dd61-e4f8-4a99-80db-353b13d76490 │ │ ├── StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824 │ │ ├── TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde │ │ ├── UnlockIDCopy-eaec226f-c9a3-477a-a826-ddc716cdc0e3 │ │ ├── AMD_PBS_SETUP-a339d746-f678-49b3-9fc7-54ce0f9df226 │ │ ├── AsusRomLayout-2e0585e9-2b5e-4f1e-bbeb-e632c5ef44b8 │ │ ├── AutoDetectData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── FastBootOption-b540a530-6978-4da7-91cb-7207d764d262 │ │ ├── AsusQFanSetupData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 │ │ ├── SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c │ │ ├── Record_CMOS_RTC_TIME-b2db8399-b883-46fe-8003-e54a4e60548b │ │ ├── SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1 │ │ ├── ResourceSizeForEachRb-542b8f2f-bd52-4233-8c3d-66530de8a369 │ │ ├── OfflineUniqueIDRandomSeed-eaec226f-c9a3-477a-a826-ddc716cdc0e3 │ │ ├── VARSTORE_OCMR_SETTINGS_NAME-c05fba7d-7a92-49e0-bcee-233b14dca803 │ │ ├── BiosEventLog-4034591c-48ea-4cdc-864f-e7cb61cfd0f2 │ │ └── Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 ├── test.parse.db.var ├── test.conin.var.goal.var ├── test.esl.annotation.esl ├── test.bootorder.var.goal.var ├── test.efivar.export.new.goal.var ├── test.efivar.export.old.goal.var ├── test.esl.cert.addition.cert.cer ├── test.esl.cert.addition.esl.goal ├── test.esl.cert.removal.esl.goal ├── test.grubenv.var.0.new.goal.var ├── test.grubenv.var.0.old.goal.var ├── test.grubenv.var.1.new.goal.var ├── test.grubenv.var.1.old.goal.var ├── test.grubenv.var.2.new.goal.var ├── test.grubenv.var.2.old.goal.var ├── test.grubenv.var.3.new.goal.var ├── test.grubenv.var.3.old.goal.var ├── test.dmpstore.export.new.goal.var ├── test.dmpstore.export.old.goal.var ├── test.esl.sha256.removal.esl.goal ├── test.esl.sha256.unsorted.esl.goal ├── test.esl.cert.addition.cert.esl.goal ├── test.esl.sha256.ascending.esl.goal ├── test.esl.sha256.addition.unsorted.esl.goal ├── test.esl.sha256.removal.descending.esl.goal ├── .gitignore ├── test-threading └── test.esl.annotation.esl.goal.txt ├── .gitignore ├── .github └── workflows │ └── ci.yml ├── TODO ├── README.md └── Makefile /docs/.gitignore: -------------------------------------------------------------------------------- 1 | efisecdb.1 2 | -------------------------------------------------------------------------------- /src/test/.gitignore: -------------------------------------------------------------------------------- 1 | tester 2 | -------------------------------------------------------------------------------- /src/include/version.mk: -------------------------------------------------------------------------------- 1 | VERSION=39 2 | -------------------------------------------------------------------------------- /docs/efi_append_variable.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_del_variable.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_guid_to_id_guid.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_guid_to_name.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_guid_to_str.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_guid_to_symbol.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_id_guid_to_guid.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_name_to_guid.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_set_variable.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_str_to_guid.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_symbol_to_guid.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_alloc.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_export.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_free.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_get_data.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_get_guid.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_get_name.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_import.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_realize.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_set_data.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_set_guid.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_set_name.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_get_variable_size.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_variables_supported.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_get_next_variable_name.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_get_variable_attributes.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_get_variable.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_get_attributes.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /docs/efi_variable_set_attributes.3: -------------------------------------------------------------------------------- 1 | .so man3/efi_variable_t.3 2 | -------------------------------------------------------------------------------- /tests/machine1/data/SADS-42780dd5-9a7d-404c-80e4-7f7094360394: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SADS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SADS-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/WRDD-92daaf2f-c02b-455b-b2ec-f5a3594f4aea: -------------------------------------------------------------------------------- 1 | PA -------------------------------------------------------------------------------- /tests/machine1/data/WRDD-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13: -------------------------------------------------------------------------------- 1 | PA -------------------------------------------------------------------------------- /tests/machine0/data/AuditMode-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/CpuSmm-90d93e09-4e91-4b3d-8c77-c82ff10e3c81: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/Setup-80e1202e-2697-4264-9cc9-80762c3e5863: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/AWVC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/AssetTag-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/AuditMode-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/BRDS-42780dd5-9a7d-404c-80e4-7f7094360394: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/BootList-65cbd9d9-ab77-4a61-b288-2763405d588a: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/CpuSmm-90d93e09-4e91-4b3d-8c77-c82ff10e3c81: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/DellVar01-e224eaa0-4358-6ac8-3cce-daa44e54f638: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/IsRTCBad-65cbd9d9-ab77-4a61-b288-2763405d588a: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/KvmActive-f7f70708-b3c0-4be0-b00c-ae91da4adc03: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SIDSUPPORT-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/ServiceTag-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SolActive-f7f70708-b3c0-4be0-b00c-ae91da4adc03: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/WAND-92daaf2f-c02b-455b-b2ec-f5a3594f4aea: -------------------------------------------------------------------------------- 1 | 2222 -------------------------------------------------------------------------------- /tests/machine1/data/WRDS-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/AsusNodePsu-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/SIDSUPPORT-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/DeployedMode-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/NewOptionPolicy-69ecc1be-a981-446d-8eb6-af0e53d06ce8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/OcTurboRatio-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 | ( -------------------------------------------------------------------------------- /tests/machine0/data/PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/PNP0501_0_NV-560bf58a-1e0d-4d7e-953f-2980a261e031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/RstOptaneConfig-4da4f952-2516-4d06-8975-65036403a8c7: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/AmtResetbyFlag-9482539b-7c17-44ed-b68c-2c8f7f33b7b2: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/CurrentPolicy-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 | ' -------------------------------------------------------------------------------- /tests/machine1/data/DeployedMode-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/GPC-42780dd5-9a7d-404c-80e4-7f7094360394: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/GPC-92daaf2f-c02b-455b-b2ec-f5a3594f4aea: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/GPC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/InternalHddFlag-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/OsExtenedType-dd7f0389-ab93-4dbe-998b-c9c5ca8f97d8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/RstOptaneConfig-4da4f952-2516-4d06-8975-65036403a8c7: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SPLC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13: -------------------------------------------------------------------------------- 1 | @0u -------------------------------------------------------------------------------- /tests/machine1/data/SimpleBootFlag-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/TPM_NVSelection-8e1a7a52-df0d-460d-a825-d08acf2bb44d: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/WRDS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/AMD_RAID-fe26a894-d199-47d4-8afa-070e3d54ba86: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/AsusExtFancard-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/CMOSfailflag-c89dc9c7-5105-472c-a743-b1621e142b41: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/CurrentPolicy-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 | ' -------------------------------------------------------------------------------- /tests/machine3/data/DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/DownCoreStatus-29749bad-401b-4f6d-b124-cece8c590c48: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/FTMActiveFlag-4034591c-48ea-4cdc-864f-e7cb61cfd0f2: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/FirstBootFlag-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/HddSmartInfo-a6f44860-b2e8-4fda-bd45-78368994b6ae: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/PcieSataModVar-5e9a565f-cdc0-413b-ad13-1fe8713ffdcd: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/SetupLedData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 | P -------------------------------------------------------------------------------- /tests/machine0/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- 1 | s -------------------------------------------------------------------------------- /tests/machine0/data/NBGopPlatformData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/NetworkStackVar-d1405d16-7afc-4695-bb12-41459d3695a2: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 | en-US -------------------------------------------------------------------------------- /tests/machine0/data/SMCOcBiosSetting-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/SecureBootSetup-7b59104a-c00d-4158-87ff-f04d6396a915: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/SetUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65: -------------------------------------------------------------------------------- 1 | ) -------------------------------------------------------------------------------- /tests/machine0/data/TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- 1 | -َ -------------------------------------------------------------------------------- /tests/machine1/data/BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/DellSecureBootMode-7b59104a-c00d-4158-87ff-f04d6396a915: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/Kernel_ATPSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/Kernel_RvkSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/Kernel_SiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/Kernel_SkuSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/Kernel_WinSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 | a -------------------------------------------------------------------------------- /tests/machine1/data/NBGopPlatformData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 | en-US -------------------------------------------------------------------------------- /tests/machine1/data/PreMonotoicCount-65cbd9d9-ab77-4a61-b288-2763405d588a: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SOFTWAREGUARDSTATUS-9cb2e73f-7325-40f4-a484-659bb344c3cd: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SetUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SimpleBootFlagBackUp-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- 1 | p -------------------------------------------------------------------------------- /tests/machine1/data/ePSAVersion-66b36b33-8094-424d-ba45-e876d62c45c1: -------------------------------------------------------------------------------- 1 | 4400.06 -------------------------------------------------------------------------------- /tests/machine2/data/AmiEmaIndications-eb41d646-f49f-4655-9165-21d1224e3932: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 | o% -------------------------------------------------------------------------------- /tests/machine2/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/OldBootOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 | en-US -------------------------------------------------------------------------------- /tests/machine2/data/SmcBootOrder-1105d69f-5ec8-47e9-bb46-153e794e356c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- 1 | x -------------------------------------------------------------------------------- /tests/machine3/data/AmdAcpiVar-79941ecd-ed36-49d0-8124-e4c31ac75cd4: -------------------------------------------------------------------------------- 1 |   -------------------------------------------------------------------------------- /tests/machine3/data/BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/Fail_FLAG_POST-e9f78597-5151-4a3c-b17a-cad106f334f6: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/Kernel_ATPSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/Kernel_RvkSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/Kernel_SiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/Kernel_SkuSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/Kernel_WinSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 | i -------------------------------------------------------------------------------- /tests/machine3/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 | en-US -------------------------------------------------------------------------------- /tests/machine3/data/SecureBootSetup-7b59104a-c00d-4158-87ff-f04d6396a915: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- 1 | x -------------------------------------------------------------------------------- /tests/machine3/data/Test_AC_LOSS_FLAG-15965464-28a2-41df-8629-fe26cd257605: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/IntUcode-eda41d22-7729-5b91-b3ee-ba619921cefa: -------------------------------------------------------------------------------- 1 | `ُ -------------------------------------------------------------------------------- /tests/machine0/data/MeSetupStorage-5432122d-d034-49d2-a6de-65a829eb4c74: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 | en-US -------------------------------------------------------------------------------- /tests/machine1/data/DellBrightnessValue-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /tests/machine1/data/Kernel_DriverSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/MeSetupStorage-5432122d-d034-49d2-a6de-65a829eb4c74: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/NetworkStackVar-d1405d16-7afc-4695-bb12-41459d3695a2: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SMBIOS_ENTRY_ADDR-0a602c5b-05a0-40c4-9181-edcd891d0036: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/TbtPresentStatusOnPost-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/UserBootOrderCount-65cbd9d9-ab77-4a61-b288-2763405d588a: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 | en-US -------------------------------------------------------------------------------- /tests/machine2/data/TotalNumberOfRootBridges-fb5703f5-f8a7-f401-18b4-3f108deb2612: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/AsusSetupDataBackup-1111b056-c5e9-40ca-aba3-ec172533d814: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/FPLayoutOrder-4db88a62-6721-47a0-9082-280b00323594: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/Kernel_DriverSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/TotalNumberOfRootBridges-fb5703f5-f8a7-f401-18b4-3f108deb2612: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/Kernel_EntRevokeSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 | en-US;x-UEFI -------------------------------------------------------------------------------- /tests/machine1/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 |   -------------------------------------------------------------------------------- /tests/machine2/data/FboUefiSceOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc: -------------------------------------------------------------------------------- 1 |   -------------------------------------------------------------------------------- /tests/machine2/data/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/UefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc: -------------------------------------------------------------------------------- 1 |   -------------------------------------------------------------------------------- /tests/machine3/data/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/OfflineUniqueIDRandomSeedCRC-eaec226f-c9a3-477a-a826-ddc716cdc0e3: -------------------------------------------------------------------------------- 1 | B`> -------------------------------------------------------------------------------- /tests/machine3/data/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/ResourceDistribution-0ce40a5f-153a-4462-a429-4098e0e13cac: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 | Ī -------------------------------------------------------------------------------- /tests/machine3/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 | Ī -------------------------------------------------------------------------------- /tests/machine0/data/AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/EWRD-92daaf2f-c02b-455b-b2ec-f5a3594f4aea: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/FboLegacyDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/FboLegacySceOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/OriUefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc: -------------------------------------------------------------------------------- 1 |   -------------------------------------------------------------------------------- /tests/machine3/data/AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/AsusFanSetupFeatures-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test.parse.db.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.parse.db.var -------------------------------------------------------------------------------- /tests/machine1/data/BiosGuardCapsuleVariable-368b3153-563d-4610-8d94-47a9fa8c4c16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/UserBootOrder-65cbd9d9-ab77-4a61-b288-2763405d588a: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/DefaultLegacyDevOrder-3c4ead08-45ae-4315-8d15-a60eaa8caf69: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/DefaultUefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc: -------------------------------------------------------------------------------- 1 |   -------------------------------------------------------------------------------- /tests/machine2/data/OriFboLegacyDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/AmiHardwareSignatureSetupUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/AmiHardwareSignatureSetupUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/LastBoot-b540a530-6978-4da7-91cb-7207d764d262: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test.conin.var.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.conin.var.goal.var -------------------------------------------------------------------------------- /tests/test.esl.annotation.esl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.annotation.esl -------------------------------------------------------------------------------- /tests/machine2/data/FixedBootGroup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/AsusHwmSetupOneof-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test.bootorder.var.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.bootorder.var.goal.var -------------------------------------------------------------------------------- /tests/machine3/data/UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test.efivar.export.new.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.efivar.export.new.goal.var -------------------------------------------------------------------------------- /tests/test.efivar.export.old.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.efivar.export.old.goal.var -------------------------------------------------------------------------------- /tests/test.esl.cert.addition.cert.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.cert.addition.cert.cer -------------------------------------------------------------------------------- /tests/test.esl.cert.addition.esl.goal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.cert.addition.esl.goal -------------------------------------------------------------------------------- /tests/test.esl.cert.removal.esl.goal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.cert.removal.esl.goal -------------------------------------------------------------------------------- /tests/test.grubenv.var.0.new.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.grubenv.var.0.new.goal.var -------------------------------------------------------------------------------- /tests/test.grubenv.var.0.old.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.grubenv.var.0.old.goal.var -------------------------------------------------------------------------------- /tests/test.grubenv.var.1.new.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.grubenv.var.1.new.goal.var -------------------------------------------------------------------------------- /tests/test.grubenv.var.1.old.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.grubenv.var.1.old.goal.var -------------------------------------------------------------------------------- /tests/test.grubenv.var.2.new.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.grubenv.var.2.new.goal.var -------------------------------------------------------------------------------- /tests/test.grubenv.var.2.old.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.grubenv.var.2.old.goal.var -------------------------------------------------------------------------------- /tests/test.grubenv.var.3.new.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.grubenv.var.3.new.goal.var -------------------------------------------------------------------------------- /tests/test.grubenv.var.3.old.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.grubenv.var.3.old.goal.var -------------------------------------------------------------------------------- /tests/machine1/data/GsetUefiIplDefaultValue-7f3301c7-2405-4765-aa2e-d9ed28aea950: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/SetupCpuFeatures-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- 1 |   -------------------------------------------------------------------------------- /tests/test.dmpstore.export.new.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.dmpstore.export.new.goal.var -------------------------------------------------------------------------------- /tests/test.dmpstore.export.old.goal.var: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.dmpstore.export.old.goal.var -------------------------------------------------------------------------------- /tests/test.esl.sha256.removal.esl.goal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.sha256.removal.esl.goal -------------------------------------------------------------------------------- /tests/test.esl.sha256.unsorted.esl.goal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.sha256.unsorted.esl.goal -------------------------------------------------------------------------------- /tests/machine1/data/GsetLegacyIplDefaultValue-3a21751e-bd32-4825-8754-82a47f01b09b: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test.esl.cert.addition.cert.esl.goal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.cert.addition.cert.esl.goal -------------------------------------------------------------------------------- /tests/test.esl.sha256.ascending.esl.goal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.sha256.ascending.esl.goal -------------------------------------------------------------------------------- /tests/machine3/data/PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- 1 | en-US;fr-FR;zh-cht;zh-chs;ja-JP;de-DE;es-ES;ru-RU;ko-KR -------------------------------------------------------------------------------- /tests/machine0/data/WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test.esl.sha256.addition.unsorted.esl.goal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.sha256.addition.unsorted.esl.goal -------------------------------------------------------------------------------- /tests/test.esl.sha256.removal.descending.esl.goal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/test.esl.sha256.removal.descending.esl.goal -------------------------------------------------------------------------------- /tests/machine0/data/AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine1/data/AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine3/data/AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine0/data/Ep-73dad563-8f27-42af-918f-8651eb0a93ef: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/Ep-73dad563-8f27-42af-918f-8651eb0a93ef -------------------------------------------------------------------------------- /tests/machine0/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine1/data/Ep-73dad563-8f27-42af-918f-8651eb0a93ef: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/Ep-73dad563-8f27-42af-918f-8651eb0a93ef -------------------------------------------------------------------------------- /tests/machine1/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine2/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine3/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine0/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 -------------------------------------------------------------------------------- /tests/machine0/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 -------------------------------------------------------------------------------- /tests/machine0/data/dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine0/data/dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine0/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine1/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 -------------------------------------------------------------------------------- /tests/machine1/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/SPLC-92daaf2f-c02b-455b-b2ec-f5a3594f4aea: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/SPLC-92daaf2f-c02b-455b-b2ec-f5a3594f4aea -------------------------------------------------------------------------------- /tests/machine1/data/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 -------------------------------------------------------------------------------- /tests/machine1/data/WGDS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/WGDS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea -------------------------------------------------------------------------------- /tests/machine1/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine2/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 -------------------------------------------------------------------------------- /tests/machine2/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine2/data/dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine2/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine3/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0 -------------------------------------------------------------------------------- /tests/machine3/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/MyFav-4034591c-48ea-4cdc-864f-e7cb61cfd0f2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/MyFav-4034591c-48ea-4cdc-864f-e7cb61cfd0f2 -------------------------------------------------------------------------------- /tests/machine3/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f -------------------------------------------------------------------------------- /tests/machine0/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/EfiTime-9d0da369-540b-46f8-85a0-2b5f2c301e15: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/EfiTime-9d0da369-540b-46f8-85a0-2b5f2c301e15 -------------------------------------------------------------------------------- /tests/machine0/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/EfiTime-9d0da369-540b-46f8-85a0-2b5f2c301e15: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/EfiTime-9d0da369-540b-46f8-85a0-2b5f2c301e15 -------------------------------------------------------------------------------- /tests/machine1/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/OsType-a66919d2-6c45-403e-b00a-9bce58e97315: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/OsType-a66919d2-6c45-403e-b00a-9bce58e97315 -------------------------------------------------------------------------------- /tests/machine2/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/AmdAcpiVar-79941ecd-ed36-49d0-8124-e4c31ac75cd4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/AmdAcpiVar-79941ecd-ed36-49d0-8124-e4c31ac75cd4 -------------------------------------------------------------------------------- /tests/machine0/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/SMCOCXMP-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/SMCOCXMP-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 -------------------------------------------------------------------------------- /tests/machine0/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/BootFFF6-5990c250-676b-4ff7-8a0d-529319d0b254: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/BootFFF6-5990c250-676b-4ff7-8a0d-529319d0b254 -------------------------------------------------------------------------------- /tests/machine1/data/BootFFF7-5990c250-676b-4ff7-8a0d-529319d0b254: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/BootFFF7-5990c250-676b-4ff7-8a0d-529319d0b254 -------------------------------------------------------------------------------- /tests/machine1/data/BootFFF8-5990c250-676b-4ff7-8a0d-529319d0b254: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/BootFFF8-5990c250-676b-4ff7-8a0d-529319d0b254 -------------------------------------------------------------------------------- /tests/machine1/data/BootFFFB-5990c250-676b-4ff7-8a0d-529319d0b254: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/BootFFFB-5990c250-676b-4ff7-8a0d-529319d0b254 -------------------------------------------------------------------------------- /tests/machine1/data/BootFFFC-5990c250-676b-4ff7-8a0d-529319d0b254: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/BootFFFC-5990c250-676b-4ff7-8a0d-529319d0b254 -------------------------------------------------------------------------------- /tests/machine1/data/BootFFFD-5990c250-676b-4ff7-8a0d-529319d0b254: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/BootFFFD-5990c250-676b-4ff7-8a0d-529319d0b254 -------------------------------------------------------------------------------- /tests/machine1/data/BootFFFE-5990c250-676b-4ff7-8a0d-529319d0b254: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/BootFFFE-5990c250-676b-4ff7-8a0d-529319d0b254 -------------------------------------------------------------------------------- /tests/machine1/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/GNVS_PTR-0a602c5b-05a0-40c4-9181-edcd891d0003: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/GNVS_PTR-0a602c5b-05a0-40c4-9181-edcd891d0003 -------------------------------------------------------------------------------- /tests/machine1/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/Boot0002-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/Boot0002-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/Boot0003-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/Boot0003-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine2/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/AOD_SETUP-5ed15dc0-edef-4161-9151-6014c4cc630c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/AOD_SETUP-5ed15dc0-edef-4161-9151-6014c4cc630c -------------------------------------------------------------------------------- /tests/machine3/data/AmdSetup-3a997502-647a-4c82-998e-52ef9486a247: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/AmdSetup-3a997502-647a-4c82-998e-52ef9486a247 -------------------------------------------------------------------------------- /tests/machine3/data/AsbkpInfo-cb825795-feb1-4c0b-894f-cc70f8064395: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/AsbkpInfo-cb825795-feb1-4c0b-894f-cc70f8064395 -------------------------------------------------------------------------------- /tests/machine3/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/EnWpData-cbab171f-f356-4009-baaa-6628353a0a29: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/EnWpData-cbab171f-f356-4009-baaa-6628353a0a29 -------------------------------------------------------------------------------- /tests/machine3/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/PreVgaInfo-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/PreVgaInfo-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 -------------------------------------------------------------------------------- /tests/machine3/data/RsdpAddr-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/RsdpAddr-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 -------------------------------------------------------------------------------- /tests/machine3/data/UIT_DATA-fe47349a-7f0d-4641-822b-34baa28ecdd0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/UIT_DATA-fe47349a-7f0d-4641-822b-34baa28ecdd0 -------------------------------------------------------------------------------- /tests/machine3/data/UIT_HEADER-fe47349a-7f0d-4641-822b-34baa28ecdd0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/UIT_HEADER-fe47349a-7f0d-4641-822b-34baa28ecdd0 -------------------------------------------------------------------------------- /tests/machine3/data/WpBufAddr-cba83c4a-a5fc-48a8-b3a6-d33636166544: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/WpBufAddr-cba83c4a-a5fc-48a8-b3a6-d33636166544 -------------------------------------------------------------------------------- /tests/machine3/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824 -------------------------------------------------------------------------------- /tests/machine0/data/UserDefaults-c4cc0de8-0687-4422-99c1-65351a5d5f95: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/UserDefaults-c4cc0de8-0687-4422-99c1-65351a5d5f95 -------------------------------------------------------------------------------- /tests/machine1/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824 -------------------------------------------------------------------------------- /tests/machine1/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde -------------------------------------------------------------------------------- /tests/machine1/data/UnlockIDCopy-eaec226f-c9a3-477a-a826-ddc716cdc0e3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/UnlockIDCopy-eaec226f-c9a3-477a-a826-ddc716cdc0e3 -------------------------------------------------------------------------------- /tests/machine1/data/UserDefaults-c54906f9-eb09-4457-a007-4154652fcfa5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/UserDefaults-c54906f9-eb09-4457-a007-4154652fcfa5 -------------------------------------------------------------------------------- /tests/machine2/data/AmdSetupSSP-3a997502-647a-4c82-998e-52ef9486a247: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/AmdSetupSSP-3a997502-647a-4c82-998e-52ef9486a247 -------------------------------------------------------------------------------- /tests/machine2/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde -------------------------------------------------------------------------------- /tests/machine3/data/ApSyncFlagNv-ad3f6761-f0a3-46c8-a4cb-19b70ffdb305: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/ApSyncFlagNv-ad3f6761-f0a3-46c8-a4cb-19b70ffdb305 -------------------------------------------------------------------------------- /tests/machine3/data/NVRAM_Verify-15a9dd61-e4f8-4a99-80db-353b13d76490: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/NVRAM_Verify-15a9dd61-e4f8-4a99-80db-353b13d76490 -------------------------------------------------------------------------------- /tests/machine3/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824 -------------------------------------------------------------------------------- /tests/machine3/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde -------------------------------------------------------------------------------- /tests/machine3/data/UnlockIDCopy-eaec226f-c9a3-477a-a826-ddc716cdc0e3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/UnlockIDCopy-eaec226f-c9a3-477a-a826-ddc716cdc0e3 -------------------------------------------------------------------------------- /tests/machine0/data/AmiEntryS3Addr-074e1e48-8132-47a1-8c2c-3f14ad9a66dc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/AmiEntryS3Addr-074e1e48-8132-47a1-8c2c-3f14ad9a66dc -------------------------------------------------------------------------------- /tests/machine0/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine0/data/OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine1/data/AmiGopOutputDp-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/AmiGopOutputDp-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine1/data/DDIAG_BHISTORY-1358e20b-0e48-4f06-8ddd-8809b8a74d6c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/DDIAG_BHISTORY-1358e20b-0e48-4f06-8ddd-8809b8a74d6c -------------------------------------------------------------------------------- /tests/machine1/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine1/data/FastBootOption-b540a530-6978-4da7-91cb-7207d764d262: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/FastBootOption-b540a530-6978-4da7-91cb-7207d764d262 -------------------------------------------------------------------------------- /tests/machine1/data/SataPortNumber-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/SataPortNumber-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine2/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine2/data/LegacyDevOrder-a56074db-65fe-45f7-bd21-2d2bdd8e9652: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/LegacyDevOrder-a56074db-65fe-45f7-bd21-2d2bdd8e9652 -------------------------------------------------------------------------------- /tests/machine2/data/OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine3/data/AMD_PBS_SETUP-a339d746-f678-49b3-9fc7-54ce0f9df226: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/AMD_PBS_SETUP-a339d746-f678-49b3-9fc7-54ce0f9df226 -------------------------------------------------------------------------------- /tests/machine3/data/AsusRomLayout-2e0585e9-2b5e-4f1e-bbeb-e632c5ef44b8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/AsusRomLayout-2e0585e9-2b5e-4f1e-bbeb-e632c5ef44b8 -------------------------------------------------------------------------------- /tests/machine3/data/AutoDetectData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/AutoDetectData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 -------------------------------------------------------------------------------- /tests/machine3/data/FastBootOption-b540a530-6978-4da7-91cb-7207d764d262: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/FastBootOption-b540a530-6978-4da7-91cb-7207d764d262 -------------------------------------------------------------------------------- /tests/machine0/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine1/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine1/data/fwupd-ux-capsule-0abba7dc-e516-4167-bbf5-4d9d1c739416: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/fwupd-ux-capsule-0abba7dc-e516-4167-bbf5-4d9d1c739416 -------------------------------------------------------------------------------- /tests/machine2/data/OldLegacyDevOrder-a56074db-65fe-45f7-bd21-2d2bdd8e9652: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/OldLegacyDevOrder-a56074db-65fe-45f7-bd21-2d2bdd8e9652 -------------------------------------------------------------------------------- /tests/machine2/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine3/data/AsusQFanSetupData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/AsusQFanSetupData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 -------------------------------------------------------------------------------- /tests/machine3/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c -------------------------------------------------------------------------------- /tests/machine0/data/CpuSetupVolatileData-b08f97ff-e6e8-4193-a997-5e9e9b0adb32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/CpuSetupVolatileData-b08f97ff-e6e8-4193-a997-5e9e9b0adb32 -------------------------------------------------------------------------------- /tests/machine0/data/SOFTWAREGUARDSTATUS-9cb2e73f-7325-40f4-a484-659bb344c3cd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/SOFTWAREGUARDSTATUS-9cb2e73f-7325-40f4-a484-659bb344c3cd -------------------------------------------------------------------------------- /tests/machine0/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine1/data/CpuSetupVolatileData-b08f97ff-e6e8-4193-a997-5e9e9b0adb32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/CpuSetupVolatileData-b08f97ff-e6e8-4193-a997-5e9e9b0adb32 -------------------------------------------------------------------------------- /tests/machine1/data/DellMonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/DellMonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b -------------------------------------------------------------------------------- /tests/machine1/data/LastKnownGoodConfig-c54906f9-eb09-4457-a007-4154652fcfa5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/LastKnownGoodConfig-c54906f9-eb09-4457-a007-4154652fcfa5 -------------------------------------------------------------------------------- /tests/machine1/data/OfflineUniqueIDEKPub-eaec226f-c9a3-477a-a826-ddc716cdc0e3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/OfflineUniqueIDEKPub-eaec226f-c9a3-477a-a826-ddc716cdc0e3 -------------------------------------------------------------------------------- /tests/machine1/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine1/data/TbtSetupVolatileData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/TbtSetupVolatileData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 -------------------------------------------------------------------------------- /tests/machine2/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine3/data/Record_CMOS_RTC_TIME-b2db8399-b883-46fe-8003-e54a4e60548b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/Record_CMOS_RTC_TIME-b2db8399-b883-46fe-8003-e54a4e60548b -------------------------------------------------------------------------------- /tests/machine3/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine0/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine2/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine3/data/ResourceSizeForEachRb-542b8f2f-bd52-4233-8c3d-66530de8a369: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/ResourceSizeForEachRb-542b8f2f-bd52-4233-8c3d-66530de8a369 -------------------------------------------------------------------------------- /tests/.gitignore: -------------------------------------------------------------------------------- 1 | !*.cer 2 | !*.esl 3 | *.esl.txt 4 | *.result.* 5 | !*.var 6 | *.export.var 7 | test.*.result.var 8 | test.*.esl.result 9 | test.*.esl.goal.txt 10 | !test.esl.annotation.esl.goal.txt 11 | -------------------------------------------------------------------------------- /tests/machine0/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine0/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine1/data/OfflineUniqueIDEKPubCRC-eaec226f-c9a3-477a-a826-ddc716cdc0e3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/OfflineUniqueIDEKPubCRC-eaec226f-c9a3-477a-a826-ddc716cdc0e3 -------------------------------------------------------------------------------- /tests/machine2/data/SmbiosEntryPointTableF000-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/SmbiosEntryPointTableF000-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine2/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine2/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1 -------------------------------------------------------------------------------- /tests/machine3/data/OfflineUniqueIDRandomSeed-eaec226f-c9a3-477a-a826-ddc716cdc0e3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/OfflineUniqueIDRandomSeed-eaec226f-c9a3-477a-a826-ddc716cdc0e3 -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | !guids.S 2 | *.bin 3 | /efivar 4 | efivar-guids.h 5 | efivar-static 6 | efisecdb 7 | efisecdb-static 8 | makeguids 9 | guid-symbols.c 10 | guids.lds 11 | thread-test 12 | util-makeguids.c 13 | -------------------------------------------------------------------------------- /tests/machine3/data/VARSTORE_OCMR_SETTINGS_NAME-c05fba7d-7a92-49e0-bcee-233b14dca803: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine3/data/VARSTORE_OCMR_SETTINGS_NAME-c05fba7d-7a92-49e0-bcee-233b14dca803 -------------------------------------------------------------------------------- /tests/machine1/data/BiosGuardRecoveryAddressVariable-368b3152-563d-4670-8d94-47a9fa8c4c16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/BiosGuardRecoveryAddressVariable-368b3152-563d-4670-8d94-47a9fa8c4c16 -------------------------------------------------------------------------------- /tests/machine1/data/fwupd-ce945437-7358-49f1-95d8-6b694a10a755-0-0abba7dc-e516-4167-bbf5-4d9d1c739416: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rhboot/efivar/HEAD/tests/machine1/data/fwupd-ce945437-7358-49f1-95d8-6b694a10a755-0-0abba7dc-e516-4167-bbf5-4d9d1c739416 -------------------------------------------------------------------------------- /src/efivar.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@@PREFIX@@ 2 | exec_prefix=@@EXEC_PREFIX@@ 3 | libdir=@@LIBDIR@@ 4 | includedir=@@INCLUDEDIR@@ 5 | 6 | Name: efivar 7 | Description: UEFI Variable Management 8 | Version: @@VERSION@@ 9 | Libs: -L${libdir} -lefivar 10 | Libs.private: -ldl 11 | Cflags: -I${includedir}/efivar 12 | -------------------------------------------------------------------------------- /src/efiboot.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@@PREFIX@@ 2 | exec_prefix=@@EXEC_PREFIX@@ 3 | libdir=@@LIBDIR@@ 4 | includedir=@@INCLUDEDIR@@ 5 | 6 | Name: efiboot 7 | Description: UEFI Boot variable support 8 | Version: @@VERSION@@ 9 | Requires.private: efivar 10 | Libs: -L${libdir} -lefiboot 11 | Cflags: -I${includedir}/efivar 12 | -------------------------------------------------------------------------------- /src/efisec.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@@PREFIX@@ 2 | exec_prefix=@@EXEC_PREFIX@@ 3 | libdir=@@LIBDIR@@ 4 | includedir=@@INCLUDEDIR@@ 5 | 6 | Name: efisec 7 | Description: UEFI Security Features 8 | Version: @@VERSION@@ 9 | Libs: -L${libdir} -lefivar -lefisec 10 | Libs.private: -ldl 11 | Cflags: -I${includedir}/efivar 12 | -------------------------------------------------------------------------------- /src/sec.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * sec.c 4 | * Copyright 2020 Peter Jones 5 | * 6 | */ 7 | 8 | #include "efivar.h" 9 | 10 | uint32_t PUBLIC 11 | efi_get_libefisec_version(void) 12 | { 13 | return LIBEFIVAR_VERSION; 14 | } 15 | 16 | // vim:fenc=utf-8:tw=75:noet 17 | -------------------------------------------------------------------------------- /tests/machine3/data/BiosEventLog-4034591c-48ea-4cdc-864f-e7cb61cfd0f2: -------------------------------------------------------------------------------- 1 | [2020/06/04 11:49:15]EPU Power Saving Mode [Disabled]->[Enabled]AMD CPU fTPM [Disable]->[Enable]OS Type [Other OS]->[Windows UEFI mode] -------------------------------------------------------------------------------- /src/libefisec.map.in: -------------------------------------------------------------------------------- 1 | libefisec.so.0 { 2 | local: *; 3 | }; 4 | 5 | LIBEFISEC_1.38 { 6 | global: efi_get_libefisec_version; 7 | efi_secdb_add_entry; 8 | efi_secdb_algs_; 9 | efi_secdb_del_entry; 10 | efi_secdb_free; 11 | efi_secdb_new; 12 | efi_secdb_parse; 13 | efi_secdb_realize; 14 | efi_secdb_set_bool; 15 | } libefisec.so.0; 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .*.c.P 2 | .*.h.P 3 | .*.d 4 | .*.sw? 5 | .gdb_history 6 | *~ 7 | *.a 8 | *.bin 9 | *.C 10 | /.cache/ 11 | *.cer 12 | *.E 13 | *.env 14 | *.esl 15 | *.o 16 | *.map 17 | *.pc 18 | *.S 19 | *.so 20 | *.so.* 21 | *.spec 22 | *.strace 23 | *.tar.* 24 | *.var 25 | compile_commands.json 26 | core.* 27 | cov-int 28 | vgcore.* 29 | scan-results/ 30 | -------------------------------------------------------------------------------- /src/efiboot.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * efiboot.h 4 | * Copyright 2018 Peter Jones 5 | */ 6 | 7 | #ifndef PRIVATE_EFIBOOT_H_ 8 | #define PRIVATE_EFIBOOT_H_ 9 | 10 | #include "efivar.h" 11 | #include 12 | 13 | #endif /* !PRIVATE_EFIBOOT_H_ */ 14 | 15 | // vim:fenc=utf-8:tw=75:noet 16 | -------------------------------------------------------------------------------- /src/util.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * util.c - utility functions and data that can't go in a header 4 | * Copyright Peter Jones 5 | */ 6 | 7 | #include "efivar.h" 8 | 9 | size_t HIDDEN page_size = 4096; 10 | 11 | void CONSTRUCTOR 12 | set_up_global_constants(void) 13 | { 14 | page_size = sysconf(_SC_PAGE_SIZE); 15 | } 16 | 17 | // vim:fenc=utf-8:tw=75:noet 18 | -------------------------------------------------------------------------------- /src/include/gcc.specs: -------------------------------------------------------------------------------- 1 | *cc1_options: 2 | + %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}} -grecord-gcc-switches 3 | 4 | *self_spec: 5 | + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now} -grecord-gcc-switches 6 | 7 | *link: 8 | + %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:% 6 | */ 7 | #ifndef _EFIBOOT_DISK_H 8 | #define _EFIBOOT_DISK_H 9 | 10 | extern bool HIDDEN is_partitioned(int fd); 11 | 12 | extern HIDDEN ssize_t make_hd_dn(uint8_t *buf, ssize_t size, int fd, 13 | int32_t partition, uint32_t options); 14 | 15 | #endif /* _EFIBOOT_DISK_H */ 16 | 17 | // vim:fenc=utf-8:tw=75:noet 18 | -------------------------------------------------------------------------------- /src/include/scan-build.mk: -------------------------------------------------------------------------------- 1 | SCAN_BUILD ?= $(shell x=$$(which --skip-alias --skip-functions scan-build 2>/dev/null) ; [ -n "$$x" ] && echo 1) 2 | ifeq ($(SCAN_BUILD),) 3 | SCAN_BUILD_ERROR = $(error scan-build not found) 4 | endif 5 | 6 | scan-test : ; $(SCAN_BUILD_ERROR) 7 | 8 | scan-clean : clean 9 | @if [[ -d scan-results ]]; then rm -rf scan-results && echo "removed 'scan-results'"; fi 10 | 11 | scan-build : | scan-test 12 | scan-build : clean 13 | $(MAKE) -C src makeguids 14 | scan-build -o scan-results make $(DASHJ) CC=clang all 15 | 16 | scan-build-all: | scan-build 17 | scan : | scan-build 18 | 19 | .PHONY : scan-build scan-clean scan-build-all scan 20 | 21 | # vim:ft=make 22 | -------------------------------------------------------------------------------- /tests/machine0/data/FixedBoot-de8ab926-efda-4c23-bbc4-98fd29aa0069: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/machine2/data/FixedBoot-de8ab926-efda-4c23-bbc4-98fd29aa0069: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/efisec.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * efisec.h 4 | * Copyright 2018 Peter Jones 5 | */ 6 | 7 | #ifndef PRIVATE_EFISEC_H_ 8 | #define PRIVATE_EFISEC_H_ 9 | 10 | #include "fix_coverity.h" 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | #include "efivar.h" 25 | #include "esl-iter.h" 26 | #include "secdb.h" 27 | #include "x509.h" 28 | 29 | #endif /* !PRIVATE_EFISEC_H_ */ 30 | 31 | // vim:fenc=utf-8:tw=75:noet 32 | -------------------------------------------------------------------------------- /src/include/efivar/efisec.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefisec - library for the manipulation of EFI boot variables 4 | * Copyright 2020 Peter M. Jones 5 | * Copyright 2020 Red Hat, Inc. 6 | */ 7 | #ifndef EFISEC_H 8 | #define EFISEC_H 1 9 | 10 | #include 11 | 12 | #include 13 | #include 14 | 15 | #ifdef __cplusplus 16 | extern "C" { 17 | #endif 18 | 19 | extern uint32_t efi_get_libefisec_version(void) 20 | __attribute__((__visibility__("default"))); 21 | 22 | #ifdef __cplusplus 23 | } /* extern "C" */ 24 | #endif 25 | 26 | #endif /* EFISEC_H */ 27 | 28 | // vim:fenc=utf-8:tw=75:noet 29 | -------------------------------------------------------------------------------- /tests/test-threading: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # SPDX-License-Identifier: LGPL-2.1-or-later 3 | # test (some) efivar thread safety 4 | # 5 | # Copyright Jonathan Marler 6 | 7 | set -e 8 | 9 | if [ "x$TOPDIR" = "x" ] ; then 10 | TOPDIR="$(realpath "$(dirname "$0")/../")" 11 | fi 12 | 13 | rm -rf scratch 14 | mkdir scratch 15 | 16 | EFIVARFS_PATH="" 17 | LD_LIBRARY_PATH="" 18 | LIBEFIVAR_OPS="" 19 | 20 | EFIVARFS_PATH=$(realpath scratch)/ 21 | LD_LIBRARY_PATH="${TOPDIR}/src/" 22 | LIBEFIVAR_OPS=efivarfs 23 | export EFIVARFS_PATH LD_LIBRARY_PATH LIBEFIVAR_OPS 24 | 25 | test() { 26 | echo -n "testing $1 thread..." 27 | "${TOPDIR}/src/thread-test" -t "$1" 28 | } 29 | 30 | test 1 31 | test 2 32 | test 4 33 | test 64 34 | -------------------------------------------------------------------------------- /src/efivar.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * efivar.h 4 | * Copyright 2018 Peter Jones 5 | */ 6 | 7 | #ifndef PRIVATE_EFIVAR_H_ 8 | #define PRIVATE_EFIVAR_H_ 9 | 10 | #pragma GCC diagnostic warning "-Wcpp" 11 | 12 | #include "fix_coverity.h" 13 | 14 | #include 15 | 16 | #include "compiler.h" 17 | #include "diag.h" 18 | #include "list.h" 19 | #include "util.h" 20 | #include "safemath.h" 21 | #include "efivar_endian.h" 22 | #include "lib.h" 23 | #include "guid.h" 24 | #include "generics.h" 25 | #include "dp.h" 26 | #include "gpt.h" 27 | #include "disk.h" 28 | #include "linux.h" 29 | #include "crc32.h" 30 | #include "hexdump.h" 31 | #include "path-helpers.h" 32 | #include "makeguids.h" 33 | 34 | #endif /* !PRIVATE_EFIVAR_H_ */ 35 | 36 | // vim:fenc=utf-8:tw=75:noet 37 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pull-request", 3 | "on": { 4 | "push": { "branches": "main" }, 5 | "pull_request": { "branches": "main" }, 6 | }, 7 | "jobs": { 8 | "linux": { 9 | "runs-on": "ubuntu-latest", 10 | "strategy": { 11 | "fail-fast": false, 12 | "matrix": { 13 | "container": [ 14 | "f38", "f39", "centos8", "centos9", 15 | ], 16 | }, 17 | }, 18 | "container": "vathpela/efi-ci:${{ matrix.container }}-x64", 19 | "steps": [ 20 | { "uses": "actions/checkout@v3" }, 21 | { "run": "make all test" }, 22 | { "run": "make abicheck" }, 23 | ], 24 | }, 25 | }, 26 | } 27 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | - lots of work still on device path generation and parsing in -lefiboot: 2 | - network paths of all kinds 3 | - fcoe - no idea 4 | - fc - no idea 5 | - iscsi - right now we write out HD paths that don't work because edk2 and 6 | similar don't put an HD() below iSCSI(), and there's no such thing as an 7 | "abbreviated iscsi device path" 8 | - but 9.3.5.21.2 actually /shows/ it having an HD() path. 9 | - so we need to write out: 10 | PciRoot(0x0)/Pci(0x3,0x0)/MAC(c0ffeec0ffee,1)/IPv4(192.168.100.182:0<->10.0.0.29:3260,6,0)/iSCSI(iqn.2012-07.lenovoemc:storage.pjones-iscsi.vol0,1,0x0,None,None,None,TCP) or something like that. 11 | - this is ugly :/ 12 | - not sure how to tell from the OS side what parts should be DHCP based 13 | - pretty ugly when ens3 changes addresses every time 14 | - would IPv4(0.0.0.0:0<->10.0.0.29:3260,6,0) be valid? 15 | - lots of man pages 16 | -------------------------------------------------------------------------------- /src/include/efivar/efiboot.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2015 Red Hat, Inc. 5 | * Copyright (C) 2001 Dell Computer Corporation 6 | */ 7 | #ifndef EFIBOOT_H 8 | #define EFIBOOT_H 1 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #include 19 | 20 | #include 21 | #include 22 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif 26 | 27 | extern uint32_t efi_get_libefiboot_version(void) 28 | __attribute__((__visibility__("default"))); 29 | 30 | #ifdef __cplusplus 31 | } /* extern "C" */ 32 | #endif 33 | 34 | #endif /* EFIBOOT_H */ 35 | 36 | // vim:fenc=utf-8:tw=75:noet 37 | -------------------------------------------------------------------------------- /src/libefiboot.map.in: -------------------------------------------------------------------------------- 1 | libefiboot.so.0 { 2 | global: efi_generate_file_device_path; 3 | efi_generate_file_device_path_from_esp; 4 | efi_generate_ipv4_device_path; 5 | efi_va_generate_file_device_path_from_esp; 6 | efi_loadopt_args_as_ucs2; 7 | efi_loadopt_args_as_utf8; 8 | efi_loadopt_args_from_file; 9 | efi_loadopt_attr_clear; 10 | efi_loadopt_attr_set; 11 | efi_loadopt_attrs; 12 | efi_loadopt_create; 13 | efi_loadopt_desc; 14 | efi_loadopt_is_valid; 15 | efi_loadopt_optional_data; 16 | efi_loadopt_optional_data_size; 17 | efi_loadopt_path; 18 | efi_loadopt_pathlen; 19 | local: *; 20 | }; 21 | 22 | LIBEFIBOOT_0.0 { 23 | } libefiboot.so.0; 24 | 25 | LIBEFIBOOT_0.24 { 26 | } LIBEFIBOOT_0.0; 27 | 28 | LIBEFIBOOT_1.28 { 29 | } LIBEFIBOOT_0.24; 30 | 31 | LIBEFIBOOT_1.29 { 32 | } LIBEFIBOOT_1.28; 33 | 34 | LIBEFIBOOT_1.30 { 35 | } LIBEFIBOOT_1.29; 36 | 37 | LIBEFIBOOT_1.31 { 38 | global: efi_get_libefiboot_version; 39 | } LIBEFIBOOT_1.30; 40 | -------------------------------------------------------------------------------- /src/path-helpers.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * path-helper.h 4 | * Copyright 2018 Peter Jones 5 | */ 6 | 7 | #ifndef PATH_HELPER_H_ 8 | #define PATH_HELPER_H_ 9 | 10 | void HIDDEN fill_spans(const char *str, const char *reject, void *spanbuf); 11 | unsigned int HIDDEN count_spans(const char *str, const char *reject, unsigned int *chars); 12 | int HIDDEN find_path_segment(const char *path, int segment, const char **pos, size_t *len); 13 | 14 | #define pathseg(path, seg) \ 15 | ({ \ 16 | const char *pos_ = NULL; \ 17 | char *ret_ = NULL; \ 18 | size_t len_ = 0; \ 19 | int rc_; \ 20 | \ 21 | rc_ = find_path_segment(path, seg, &pos_, &len_); \ 22 | if (rc_ >= 0) { \ 23 | ret_ = alloca(len_ + 1); \ 24 | if (ret_) { \ 25 | memcpy(ret_, pos_, len_); \ 26 | ret_[len_] = '\0'; \ 27 | } \ 28 | } \ 29 | ret_; \ 30 | }) 31 | 32 | 33 | 34 | #endif /* !PATH_HELPER_H_ */ 35 | 36 | // vim:fenc=utf-8:tw=75:noet 37 | -------------------------------------------------------------------------------- /src/crc32.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * crc32.h - headers for crc32 4 | * 5 | */ 6 | 7 | #ifndef _CRC32_H 8 | #define _CRC32_H 9 | 10 | #include 11 | 12 | /* 13 | * This computes a 32 bit CRC of the data in the buffer, and returns the CRC. 14 | * The polynomial used is 0xedb88320. 15 | */ 16 | 17 | extern uint32_t crc32 (const void *buf, unsigned long len, uint32_t seed); 18 | 19 | /** 20 | * efi_crc32() - EFI version of crc32 function 21 | * @buf: buffer to calculate crc32 of 22 | * @len - length of buf 23 | * 24 | * Description: Returns EFI-style CRC32 value for @buf 25 | * 26 | * This function uses the little endian Ethernet polynomial 27 | * but seeds the function with ~0, and xor's with ~0 at the end. 28 | * Note, the EFI Specification, v1.02, has a reference to 29 | * Dr. Dobbs Journal, May 1994 (actually it's in May 1992). 30 | */ 31 | static inline uint32_t 32 | efi_crc32(const void *buf, unsigned long len) 33 | { 34 | return (crc32(buf, len, ~0L) ^ ~0L); 35 | } 36 | 37 | 38 | #endif /* _CRC32_H */ 39 | 40 | // vim:fenc=utf-8:tw=75:noet 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | efivar 2 | ====== 3 | 4 | Tools and libraries to manipulate EFI variables 5 | --------------------------------------------- 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General Public License 18 | along with this library. If not, see [http://www.gnu.org/licenses/]. 19 | 20 | There is an ABI tracker for this project at [ABI Laboratory]. 21 | 22 | [http://www.gnu.org/licenses/]: http://www.gnu.org/licenses/ 23 | [ABI Laboratory]: https://abi-laboratory.pro/tracker/timeline/efivar/ 24 | 25 | WARNING 26 | ======= 27 | You should probably not run "make a brick" *ever*, unless you're already 28 | reasonably sure it won't permanently corrupt your firmware. This is not a 29 | joke. 30 | -------------------------------------------------------------------------------- /src/include/efivar/efivar-time.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1 2 | /* 3 | * efivar-time.h 4 | * Copyright 2020 Peter Jones 5 | */ 6 | 7 | #if defined(EFIVAR_NO_EFI_TIME_T) && EFIVAR_NO_EFI_TIME_T && \ 8 | !defined(EFIVAR_TIME_H_) 9 | #define EFIVAR_TIME_H_ 1 10 | #endif 11 | 12 | #ifndef EFIVAR_TIME_H_ 13 | #define EFIVAR_TIME_H_ 1 14 | 15 | #include 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | extern int tm_to_efi_time(const struct tm *const s, efi_time_t *d, bool tzadj); 22 | extern int efi_time_to_tm(const efi_time_t * const s, struct tm *d); 23 | 24 | extern char *efi_asctime(const efi_time_t *const time); 25 | extern char *efi_asctime_r(const efi_time_t *const time, char *buf); 26 | extern efi_time_t *efi_gmtime(const time_t *time); 27 | extern efi_time_t *efi_gmtime_r(const time_t *time, efi_time_t *result); 28 | extern efi_time_t *efi_localtime(const time_t *time); 29 | extern efi_time_t *efi_localtime_r(const time_t *time, efi_time_t *result); 30 | extern time_t efi_mktime(const efi_time_t *const time); 31 | 32 | extern char *efi_strptime(const char *s, const char *format, efi_time_t *time); 33 | extern size_t efi_strftime(char *s, size_t max, const char *format, 34 | const efi_time_t *time); 35 | 36 | #ifdef __cplusplus 37 | } /* extern "C" */ 38 | #endif 39 | 40 | #endif /* !EFIVAR_TIME_H_ */ 41 | // vim:fenc=utf-8:tw=75:noet 42 | -------------------------------------------------------------------------------- /src/linux-i2o.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2019 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "efiboot.h" 16 | 17 | /* 18 | * support for I2O devices 19 | * ... probably doesn't work. 20 | */ 21 | static ssize_t 22 | parse_i2o(struct device *dev, const char *current, const char *root UNUSED) 23 | { 24 | debug("entry"); 25 | /* I2O disks can have up to 16 partitions, or 4 bits worth. */ 26 | if (dev->major >= 80 && dev->major <= 87) { 27 | dev->interface_type = i2o; 28 | dev->disknum = 16*(dev->major-80) + (dev->minor >> 4); 29 | set_part(dev, dev->minor & 0xF); 30 | } else { 31 | /* If it isn't those majors, it's not an i2o dev */ 32 | return 0; 33 | } 34 | 35 | char *block = strstr(current, "/block/"); 36 | ssize_t sz = block ? block + 1 - current : -1; 37 | debug("current:'%s' sz:%zd", current, sz); 38 | return sz; 39 | } 40 | 41 | enum interface_type i2o_iftypes[] = { i2o, unknown }; 42 | 43 | struct dev_probe HIDDEN i2o_parser = { 44 | .name = "i2o", 45 | .iftypes = i2o_iftypes, 46 | .flags = DEV_PROVIDES_HD, 47 | .parse = parse_i2o, 48 | .create = NULL, 49 | }; 50 | 51 | // vim:fenc=utf-8:tw=75:noet 52 | -------------------------------------------------------------------------------- /src/efivar_endian.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * Copyright 2009-2015 Red Hat, Inc. 4 | * 5 | * Author: Peter Jones 6 | */ 7 | #ifndef _EFIVAR_ENDIAN_H 8 | #define _EFIVAR_ENDIAN_H 9 | 10 | #include 11 | 12 | #if __BYTE_ORDER == __LITTLE_ENDIAN 13 | #define cpu_to_le16(x) (x) 14 | #define cpu_to_le32(x) (x) 15 | #define cpu_to_le64(x) ((uint64_t)x) 16 | #define le16_to_cpu(x) (x) 17 | #define le32_to_cpu(x) (x) 18 | #define le64_to_cpu(x) ((uint64_t)x) 19 | #define cpu_to_be16(x) __builtin_bswap16(x) 20 | #define cpu_to_be32(x) __builtin_bswap32(x) 21 | #define cpu_to_be64(x) ((uint64_t)__builtin_bswap64(x)) 22 | #define be16_to_cpu(x) __builtin_bswap16(x) 23 | #define be32_to_cpu(x) __builtin_bswap32(x) 24 | #define be64_to_cpu(x) ((uint64_t)__builtin_bswap64(x)) 25 | #else 26 | #define cpu_to_be16(x) (x) 27 | #define cpu_to_be32(x) (x) 28 | #define cpu_to_be64(x) ((uint64_t)x) 29 | #define be16_to_cpu(x) (x) 30 | #define be32_to_cpu(x) (x) 31 | #define be64_to_cpu(x) ((uint64_t)x) 32 | #define cpu_to_le16(x) __builtin_bswap16(x) 33 | #define cpu_to_le32(x) __builtin_bswap32(x) 34 | #define cpu_to_le64(x) ((uint64_t)__builtin_bswap64(x)) 35 | #define le16_to_cpu(x) __builtin_bswap16(x) 36 | #define le32_to_cpu(x) __builtin_bswap32(x) 37 | #define le64_to_cpu(x) ((uint64_t)__builtin_bswap64(x)) 38 | #endif 39 | 40 | #endif /* _EFIVAR_ENDIAN_H */ 41 | 42 | // vim:fenc=utf-8:tw=75:noet 43 | -------------------------------------------------------------------------------- /docs/efivar.1: -------------------------------------------------------------------------------- 1 | .TH EFIVAR "1" "September 2019" "efivar 37" "User Commands" 2 | .SH NAME 3 | efivar \- Tool to manipulate UEFI variables 4 | .SH SYNOPSIS 5 | .B efivar 6 | [\fI\,OPTION\/\fR...] 7 | .SH DESCRIPTION 8 | .TP 9 | \fB\-A\fR, \fB\-\-attributes=\fR 10 | attributes to use on append 11 | .TP 12 | \fB\-l\fR, \fB\-\-list\fR 13 | list current variables 14 | .TP 15 | \fB\-p\fR, \fB\-\-print\fR 16 | print variable specified by \fB\-\-name\fR 17 | .TP 18 | \fB\-D\fR, \fB\-\-dmpstore\fR 19 | use DMPSTORE format when exporting 20 | .TP 21 | \fB\-d\fR, \fB\-\-print\-decimal\fR 22 | print variable in decimal format values specified by \fB\-\-name\fR 23 | .TP 24 | \fB\-n\fR, \fB\-\-name=\fR 25 | variable to manipulate, in the form 26 | 8be4df61\-93ca\-11d2\-aa0d\-00e098032b8c\-Boot0000 27 | .TP 28 | \fB\-a\fR, \fB\-\-append\fR 29 | append to variable specified by \fB\-\-name\fR 30 | .TP 31 | \fB\-f\fR, \fB\-\-datafile=\fR 32 | load or save variable contents from 33 | .TP 34 | \fB\-e\fR, \fB\-\-export=\fR 35 | export variable to 36 | .TP 37 | \fB\-i\fR, \fB\-\-import=\fR 38 | import variable from 39 | .TP 40 | \fB\-L\fR, \fB\-\-list\-guids\fR 41 | show internal guid list 42 | .TP 43 | \fB\-w\fR, \fB\-\-write\fR 44 | write to variable specified by \fB\-\-name\fR 45 | .SS "Help options:" 46 | .TP 47 | \-?, \fB\-\-help\fR 48 | Show this help message 49 | .TP 50 | \fB\-\-usage\fR 51 | Display brief usage message 52 | -------------------------------------------------------------------------------- /src/include/deprecated.mk: -------------------------------------------------------------------------------- 1 | # 2 | # This is all stuff pjones should not have done the way he did initially, and 3 | # it's deprecated and will eventually go away. 4 | # 5 | 6 | ifneq ($(origin prefix),undefined) 7 | ifeq ($(origin PREFIX),undefined) 8 | override PREFIX = $(prefix) 9 | endif 10 | endif 11 | ifneq ($(origin exec_prefix),undefined) 12 | ifeq ($(origin EXEC_PREFIX),undefined) 13 | override EXEC_PREFIX = $(exec_prefix) 14 | endif 15 | endif 16 | ifneq ($(origin libdir),undefined) 17 | ifeq ($(origin LIBDIR),undefined) 18 | override LIBDIR = $(libdir) 19 | endif 20 | endif 21 | ifneq ($(origin datadir),undefined) 22 | ifeq ($(origin DATADIR),undefined) 23 | override DATADIR = $(datadir) 24 | endif 25 | endif 26 | ifneq ($(origin mandir),undefined) 27 | ifeq ($(origin MANDIR),undefined) 28 | override MANDIR = $(mandir) 29 | endif 30 | endif 31 | ifneq ($(origin includedir),undefined) 32 | ifeq ($(origin INCLUDEDIR),undefined) 33 | override INCLUDEDIR = $(includedir) 34 | endif 35 | endif 36 | ifneq ($(origin bindir),undefined) 37 | ifeq ($(origin BINDIR),undefined) 38 | override BINDIR = $(bindir) 39 | endif 40 | endif 41 | ifneq ($(origin CC_FOR_BUILD),undefined) 42 | ifeq ($(origin HOSTCC),file) 43 | override HOSTCC = $(CC_FOR_BUILD) 44 | endif 45 | endif 46 | ifneq ($(origin CCLD_FOR_BUILD),undefined) 47 | ifeq ($(origin HOSTCCLD),file) 48 | override HOSTCCLD = $(CCLD_FOR_BUILD) 49 | endif 50 | endif 51 | 52 | # vim:ft=make 53 | -------------------------------------------------------------------------------- /src/include/coverity.mk: -------------------------------------------------------------------------------- 1 | COV_EMAIL=$(call get-config,coverity.email) 2 | COV_TOKEN=$(call get-config,coverity.token) 3 | COV_URL=$(call get-config,coverity.url) 4 | COV_FILE=$(NAME)-coverity-$(VERSION)-$(COMMIT_ID).tar.bz2 5 | 6 | cov-int : clean 7 | cov-build --dir cov-int make all 8 | 9 | cov-clean : 10 | @rm -vf $(NAME)-coverity-*.tar.* 11 | @if [[ -d cov-int ]]; then rm -rf cov-int && echo "removed 'cov-int'"; fi 12 | 13 | cov-file : | $(COV_FILE) 14 | 15 | $(COV_FILE) : cov-int 16 | tar caf $@ cov-int 17 | 18 | cov-upload : 19 | @if [[ -n "$(COV_URL)" ]] && \ 20 | [[ -n "$(COV_TOKEN)" ]] && \ 21 | [[ -n "$(COV_EMAIL)" ]] ; \ 22 | then \ 23 | echo curl --form token=$(COV_TOKEN) --form email="$(COV_EMAIL)" --form file=@"$(COV_FILE)" --form version=$(VERSION).1 --form description="$(COMMIT_ID)" "$(COV_URL)" ; \ 24 | curl --form token=$(COV_TOKEN) --form email="$(COV_EMAIL)" --form file=@"$(COV_FILE)" --form version=$(VERSION).1 --form description="$(COMMIT_ID)" "$(COV_URL)" ; \ 25 | else \ 26 | echo Coverity output is in $(COV_FILE) ; \ 27 | fi 28 | 29 | coverity : | cov-test 30 | coverity : cov-file cov-upload 31 | 32 | clean : | cov-clean 33 | 34 | COV_BUILD ?= $(shell x=$$(which --skip-alias --skip-functions cov-build 2>/dev/null) ; [ -n "$$x" ] && echo 1) 35 | ifeq ($(COV_BUILD),) 36 | COV_BUILD_ERROR = $(error cov-build not found) 37 | endif 38 | 39 | cov-test : ; $(COV_BUILD_ERROR) 40 | 41 | .PHONY : coverity cov-upload cov-clean cov-file cov-test 42 | 43 | # vim:ft=make 44 | -------------------------------------------------------------------------------- /src/lib.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefivar - library for the manipulation of EFI variables 4 | * Copyright 2012-2013 Red Hat, Inc. 5 | */ 6 | 7 | #ifndef LIBEFIVAR_LIB_H 8 | #define LIBEFIVAR_LIB_H 1 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | #include 15 | 16 | #include 17 | 18 | struct efi_variable { 19 | uint64_t attrs; 20 | efi_guid_t *guid; 21 | unsigned char *name; 22 | uint8_t *data; 23 | size_t data_size; 24 | }; 25 | 26 | struct efi_var_operations { 27 | char name[NAME_MAX]; 28 | int (*probe)(void); 29 | int (*set_variable)(efi_guid_t guid, const char *name, const uint8_t *data, 30 | size_t data_size, uint32_t attributes, mode_t mode); 31 | int (*del_variable)(efi_guid_t guid, const char *name); 32 | int (*get_variable)(efi_guid_t guid, const char *name, uint8_t **data, 33 | size_t *data_size, uint32_t *attributes); 34 | int (*get_variable_attributes)(efi_guid_t guid, const char *name, 35 | uint32_t *attributes); 36 | int (*get_variable_size)(efi_guid_t guid, const char *name, 37 | size_t *size); 38 | int (*get_next_variable_name)(efi_guid_t **guid, char **name); 39 | int (*append_variable)(efi_guid_t guid, const char *name, 40 | const uint8_t *data, size_t data_size, 41 | uint32_t attributes); 42 | int (*chmod_variable)(efi_guid_t guid, const char *name, mode_t mode); 43 | }; 44 | 45 | typedef unsigned long efi_status_t; 46 | 47 | extern struct efi_var_operations vars_ops; 48 | extern struct efi_var_operations efivarfs_ops; 49 | 50 | #endif /* LIBEFIVAR_LIB_H */ 51 | 52 | // vim:fenc=utf-8:tw=75:noet 53 | -------------------------------------------------------------------------------- /src/linux-soc-root.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2019 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "efiboot.h" 16 | 17 | /* 18 | * support for soc platforms 19 | * 20 | * various devices /sys/dev/block/$major:$minor start with: 21 | * maj:min -> ../../devices/platform/soc/$DEVICETREE_NODE/$BLOCKDEV_STUFF/block/$DISK/$PART 22 | * i.e.: soc/1a400000.sata/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1 23 | * ^ dt node ^ blockdev stuff ^ disk 24 | * I don't *think* the devicetree nodes stack. 25 | */ 26 | static ssize_t 27 | parse_soc_root(struct device *dev UNUSED, const char *path, const char *root UNUSED) 28 | { 29 | const char *current = path; 30 | int rc; 31 | int pos0 = -1, pos1 = -1; 32 | 33 | debug("entry"); 34 | 35 | rc = sscanf(current, "../../devices/%nplatform/soc/%*[^/]/%n", &pos0, &pos1); 36 | if (rc != 0 || pos0 == -1 || pos1 == -1) 37 | return 0; 38 | debug("current:'%s' rc:%d pos0:%d pos1:%d", current, rc, pos0, pos1); 39 | dbgmk(" ", pos0, pos1); 40 | current += pos1; 41 | 42 | debug("current:'%s' sz:%zd\n", current, current - path); 43 | return current - path; 44 | } 45 | 46 | enum interface_type soc_root_iftypes[] = { soc_root, unknown }; 47 | 48 | struct dev_probe HIDDEN soc_root_parser = { 49 | .name = "soc_root", 50 | .iftypes = soc_root_iftypes, 51 | .flags = DEV_ABBREV_ONLY|DEV_PROVIDES_ROOT, 52 | .parse = parse_soc_root, 53 | }; 54 | 55 | // vim:fenc=utf-8:tw=75:noet 56 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | SRCDIR = $(realpath .) 2 | 3 | include $(TOPDIR)/src/include/deprecated.mk 4 | include $(TOPDIR)/src/include/version.mk 5 | include $(TOPDIR)/src/include/rules.mk 6 | include $(TOPDIR)/src/include/defaults.mk 7 | 8 | MAN1TARGETS = efisecdb.1 \ 9 | efivar.1 10 | 11 | MAN3TARGETS = efi_append_variable.3 \ 12 | efi_del_variable.3 \ 13 | efi_get_next_variable_name.3 \ 14 | efi_get_variable.3 \ 15 | efi_get_variable_attributes.3 \ 16 | efi_get_variable_size.3 \ 17 | efi_guid_to_id_guid.3 \ 18 | efi_guid_to_name.3 \ 19 | efi_guid_to_str.3 \ 20 | efi_guid_to_symbol.3 \ 21 | efi_name_to_guid.3 \ 22 | efi_set_variable.3 \ 23 | efi_str_to_guid.3 \ 24 | efi_symbol_to_guid.3 \ 25 | efi_variables_supported.3 \ 26 | efi_variable_t.3 \ 27 | efi_variable_import.3 \ 28 | efi_variable_export.3 \ 29 | efi_variable_alloc.3 \ 30 | efi_variable_free.3 \ 31 | efi_variable_set_name.3 \ 32 | efi_variable_get_name.3 \ 33 | efi_variable_set_guid.3 \ 34 | efi_variable_get_guid.3 \ 35 | efi_variable_set_data.3 \ 36 | efi_variable_get_data.3 \ 37 | efi_variable_get_attributes.3 \ 38 | efi_variable_set_attributes.3 \ 39 | efi_variable_realize.3 40 | 41 | all : $(MAN1TARGETS) $(MAN3TARGETS) 42 | 43 | clean : 44 | @rm -f efisecdb.1 45 | 46 | prep : 47 | 48 | test : 49 | 50 | install : $(MAN1TARGETS) $(MAN3TARGETS) 51 | $(INSTALL) -d -m 755 $(DESTDIR)$(MANDIR)/man1 52 | $(foreach x, $(MAN1TARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)/$(MANDIR)/man1/;) 53 | $(INSTALL) -d -m 755 $(DESTDIR)$(MANDIR)/man3 54 | $(foreach x, $(MAN3TARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)/$(MANDIR)/man3/;) 55 | 56 | .PHONY: all clean install 57 | 58 | include $(TOPDIR)/src/include/rules.mk 59 | -------------------------------------------------------------------------------- /src/include/efivar/efiboot-creator.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2015 Red Hat, Inc. 5 | * Copyright (C) 2001 Dell Computer Corporation 6 | */ 7 | #ifndef _EFIBOOT_CREATOR_H 8 | #define _EFIBOOT_CREATOR_H 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | #define EFIBOOT_ABBREV_NONE 0x00000001 15 | #define EFIBOOT_ABBREV_HD 0x00000002 16 | #define EFIBOOT_ABBREV_FILE 0x00000004 17 | #define EFIBOOT_ABBREV_EDD10 0x00000008 18 | #define EFIBOOT_OPTIONS_IGNORE_FS_ERROR 0x00000010 19 | #define EFIBOOT_OPTIONS_WRITE_SIGNATURE 0x00000020 20 | #define EFIBOOT_OPTIONS_IGNORE_PMBR_ERR 0x00000040 21 | 22 | extern ssize_t efi_generate_file_device_path(uint8_t *buf, ssize_t size, 23 | const char * const filepath, 24 | uint32_t options, ...) 25 | __attribute__((__nonnull__ (3))); 26 | 27 | extern ssize_t efi_generate_file_device_path_from_esp(uint8_t *buf, 28 | ssize_t size, 29 | const char *devpath, 30 | int partition, 31 | const char *relpath, 32 | uint32_t options, ...) 33 | __attribute__((__nonnull__ (3, 5))) 34 | __attribute__((__visibility__ ("default"))); 35 | 36 | 37 | extern ssize_t efi_generate_ipv4_device_path(uint8_t *buf, ssize_t size, 38 | const char * const ifname, 39 | const char * const local_addr, 40 | const char * const remote_addr, 41 | const char * const gateway_addr, 42 | const char * const netmask, 43 | uint16_t local_port, 44 | uint16_t remote_port, 45 | uint16_t protocol, 46 | uint8_t addr_origin) 47 | __attribute__((__nonnull__ (3,4,5,6,7))) 48 | __attribute__((__visibility__ ("default"))); 49 | 50 | #ifdef __cplusplus 51 | } /* extern "C" */ 52 | #endif 53 | 54 | #endif /* _EFIBOOT_CREATOR_H */ 55 | 56 | // vim:fenc=utf-8:tw=75:noet 57 | -------------------------------------------------------------------------------- /src/linux-virtblk.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2019 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "efiboot.h" 16 | 17 | /* 18 | * support for virtio block devices 19 | * /sys/dev/block/maj:min look like: 20 | * 252:0 -> ../../devices/pci0000:00/0000:00:07.0/virtio2/block/vda 21 | * 252:1 -> ../../devices/pci0000:00/0000:00:07.0/virtio2/block/vda/vda1 22 | * 23 | * vda/device looks like: 24 | * device -> ../../../virtio2 25 | * 26 | * In this case we get 1 storage controller per pci device, so we actually 27 | * write the device path as: 28 | * 29 | * PciRoot(0x0)/Pci(0x7,0x0)/HD(1,GPT,14d30998-b5e3-4b8f-9be3-58a454dd06bf,0x800,0x53000)/File(\EFI\fedora\shimx64.efi) 30 | * 31 | * But usually we just write the HD() entry, of course. 32 | */ 33 | static ssize_t 34 | parse_virtblk(struct device *dev, const char *path, const char *root UNUSED) 35 | { 36 | const char *current = path; 37 | uint32_t tosser; 38 | int pos0 = -1, pos1 = -1; 39 | int rc; 40 | 41 | debug("entry"); 42 | 43 | debug("searching for virtio0/"); 44 | rc = sscanf(current, "%nvirtio%x/%n", &pos0, &tosser, &pos1); 45 | debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); 46 | dbgmk(" ", pos0, pos1); 47 | /* 48 | * If we couldn't find virtioX/ then it isn't a virtio device. 49 | */ 50 | if (rc < 1) 51 | return 0; 52 | 53 | dev->interface_type = virtblk; 54 | current += pos1; 55 | 56 | debug("current:'%s' sz:%zd\n", current, current - path); 57 | return current - path; 58 | } 59 | 60 | enum interface_type virtblk_iftypes[] = { virtblk, unknown }; 61 | 62 | struct dev_probe HIDDEN virtblk_parser = { 63 | .name = "virtio block", 64 | .iftypes = virtblk_iftypes, 65 | .flags = DEV_PROVIDES_HD, 66 | .parse = parse_virtblk, 67 | .create = NULL, 68 | }; 69 | 70 | // vim:fenc=utf-8:tw=75:noet 71 | -------------------------------------------------------------------------------- /tests/machine1/data/FWUPDATE_DEBUG_LOG-0abba7dc-e516-4167-bbf5-4d9d1c739416: -------------------------------------------------------------------------------- 1 | ../plugins/uefi/efi/fwupdate.c:462:find_updates(): Found update fwupd-ce945437-7358-49f1-95d8-6b694a10a755-0 2 | ../plugins/uefi/efi/fwupdate.c:1232:efi_main(): Adding new capsule 3 | ../plugins/uefi/efi/fwupdate.c:641:search_file(): File \EFI\fedora\fw\fwupd-ce945437-7358-49f1-95d8-6b694a10a755.cap searched 4 | ../plugins/uefi/efi/fwupdate.c:702:open_file(): Found device 5 | ../plugins/uefi/efi/fwupdate.c:709:open_file(): Found volume 6 | ../plugins/uefi/efi/fwupdate.c:717:open_file(): Found file 7 | ../plugins/uefi/efi/fwupdate.c:1043:add_capsule(): Read file; 13804911 bytes 8 | ../plugins/uefi/efi/fwupdate.c:1044:add_capsule(): updates guid: CE945437-7358-49F1-95D8-6B694A10A755 9 | ../plugins/uefi/efi/fwupdate.c:1045:add_capsule(): File guid: CE945437-7358-49F1-95D8-6B694A10A755 10 | ../plugins/uefi/efi/fwupdate.c:1246:efi_main(): n_updates: 1 11 | ../plugins/uefi/efi/fwupdate.c:1096:apply_capsules(): QueryCapsuleCapabilities: Success max: 104857600 reset:1 12 | ../plugins/uefi/efi/fwupdate.c:1097:apply_capsules(): Capsules: 1 13 | -------------------------------------------------------------------------------- /src/linux-md.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2019 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "efiboot.h" 16 | 17 | /* 18 | * "support" for partitioned md devices - basically we just need to format 19 | * the partition name. 20 | * 21 | * /sys/dev/block/$major:$minor looks like: 22 | * 259:0 -> ../../devices/virtual/block/md1/md1p1 23 | * 9:1 -> ../../devices/virtual/block/md1 24 | * 25 | */ 26 | 27 | static ssize_t 28 | parse_md(struct device *dev, const char *current, const char *root UNUSED) 29 | { 30 | int rc; 31 | int32_t md, tosser0, part; 32 | int pos0 = 0, pos1 = 0; 33 | 34 | debug("entry"); 35 | 36 | debug("searching for mdM/mdMpN"); 37 | rc = sscanf(current, "md%d/%nmd%dp%d%n", 38 | &md, &pos0, &tosser0, &part, &pos1); 39 | debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); 40 | dbgmk(" ", pos0, pos1); 41 | /* 42 | * If it isn't of that form, it's not one of our partitioned md devices. 43 | */ 44 | if (rc != 3) 45 | return 0; 46 | 47 | dev->interface_type = md; 48 | 49 | if (dev->part == -1) 50 | dev->part = part; 51 | 52 | debug("current:'%s' sz:%d\n", current, pos1); 53 | return pos1; 54 | } 55 | 56 | static char * 57 | make_part_name(struct device *dev) 58 | { 59 | char *ret = NULL; 60 | ssize_t rc; 61 | 62 | if (dev->part < 1) 63 | return NULL; 64 | 65 | rc = asprintf(&ret, "%sp%d", dev->disk_name, dev->part); 66 | if (rc < 0) { 67 | efi_error("could not allocate memory"); 68 | return NULL; 69 | } 70 | 71 | return ret; 72 | } 73 | 74 | static enum interface_type md_iftypes[] = { md, unknown }; 75 | 76 | struct dev_probe HIDDEN md_parser = { 77 | .name = "md", 78 | .iftypes = md_iftypes, 79 | .flags = DEV_PROVIDES_HD, 80 | .parse = parse_md, 81 | .make_part_name = make_part_name, 82 | }; 83 | 84 | // vim:fenc=utf-8:tw=75:noet 85 | -------------------------------------------------------------------------------- /src/Android.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2019 The Android-x86 Open Source Project 3 | # 4 | # Licensed under the GNU Lesser General Public License Version 2.1. 5 | # You may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.gnu.org/licenses/lgpl-2.1.html 9 | # 10 | 11 | LOCAL_PATH := $(call my-dir) 12 | 13 | include $(CLEAR_VARS) 14 | 15 | LOCAL_MODULE := makeguids 16 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/include 17 | LOCAL_CFLAGS := -DEFIVAR_BUILD_ENVIRONMENT 18 | LOCAL_SRC_FILES := guid.c makeguids.c 19 | LOCAL_LDLIBS := -ldl 20 | include $(BUILD_HOST_EXECUTABLE) 21 | 22 | include $(CLEAR_VARS) 23 | 24 | LOCAL_MODULE := libefivar 25 | LOCAL_MODULE_CLASS := STATIC_LIBRARIES 26 | LIBEFIBOOT_SOURCES := \ 27 | crc32.c \ 28 | creator.c \ 29 | disk.c \ 30 | gpt.c \ 31 | loadopt.c \ 32 | path-helpers.c \ 33 | $(notdir $(wildcard $(LOCAL_PATH)/linux*.c)) 34 | 35 | LIBEFIVAR_SOURCES := \ 36 | dp.c \ 37 | dp-acpi.c \ 38 | dp-hw.c \ 39 | dp-media.c \ 40 | dp-message.c \ 41 | efivarfs.c \ 42 | error.c \ 43 | export.c \ 44 | guid.c \ 45 | guids.S \ 46 | lib.c \ 47 | vars.c 48 | 49 | LIBEFISEC_SOURCES := \ 50 | sec.c 51 | 52 | include $(LOCAL_PATH)/include/version.mk 53 | 54 | LOCAL_SRC_FILES := $(LIBEFIBOOT_SOURCES) $(LIBEFIVAR_SOURCES) $(LIBEFISEC_SOURCES) 55 | LOCAL_CFLAGS := -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -std=gnu11 -DLIBEFIVAR_VERSION=$(VERSION) -Wno-missing-field-initializers 56 | LOCAL_C_INCLUDES := $(LOCAL_PATH)/include 57 | LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_C_INCLUDES) $(LOCAL_C_INCLUDES)/efivar $(local-generated-sources-dir) 58 | LIBEFIVAR_GUIDS_H := $(local-generated-sources-dir)/efivar/efivar-guids.h 59 | LOCAL_GENERATED_SOURCES := $(LIBEFIVAR_GUIDS_H) $(local-generated-sources-dir)/guid-symbols.c 60 | $(LIBEFIVAR_GUIDS_H): PRIVATE_CUSTOM_TOOL = $^ $(addprefix $(dir $(@D)),guids.bin names.bin guid-symbols.c efivar/efivar-guids.h) 61 | $(LIBEFIVAR_GUIDS_H): $(BUILD_OUT_EXECUTABLES)/makeguids $(LOCAL_PATH)/guids.txt 62 | $(transform-generated-source) 63 | $(lastword $(LOCAL_GENERATED_SOURCES)): $(LIBEFIVAR_GUIDS_H) 64 | 65 | include $(BUILD_STATIC_LIBRARY) 66 | -------------------------------------------------------------------------------- /src/x509.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * x509.h - X.509/ASN.1 helper functions 4 | * Copyright 2019-2020 Peter M. Jones 5 | */ 6 | #ifndef EFIVAR_X509_H 7 | #define EFIVAR_X509_H 8 | 9 | #define SMALLEST_POSSIBLE_DER_SEQ 3 10 | 11 | #include 12 | #include 13 | #include "util.h" 14 | 15 | static inline int32_t __attribute__((unused)) 16 | get_asn1_seq_size(uint8_t *location, uint32_t size) 17 | { 18 | uint8_t i; 19 | uint8_t octets; 20 | uint32_t der_len = 0; 21 | 22 | if (size < SMALLEST_POSSIBLE_DER_SEQ) 23 | return -1; 24 | 25 | // If it's not a CONSTRUCTED SEQUENCE it's not a certificate 26 | if (location[0] != 0x30) { 27 | debug("%p: %d != 0x30", &location[0], location[0]); 28 | return -1; 29 | } 30 | 31 | if (!(location[1] & 0x80)) { 32 | // Short form, which is too small to hold a certificate. 33 | debug("%p: %d & 0x80 == 1", &location[1], location[1]); 34 | return -1; 35 | } 36 | 37 | // Long form 38 | octets = location[1] & 0x7; 39 | 40 | // There is no chance our data is more than 3GB. 41 | if (octets > 4 || (octets == 4 && (location[2] & 0x8))) { 42 | debug("octets: %" PRIu32 " %p:%d", octets, &location[2], 43 | location[2] & 0x8); 44 | return -1; 45 | } 46 | 47 | // and if our size won't fit in the data it's wrong as well 48 | if (size - 2 < octets) { 49 | debug("size-2: %" PRIu32 " < octets %" PRIu32, size - 2, 50 | octets); 51 | return -1; 52 | } 53 | 54 | for (i = 0; i < octets; i++) { 55 | der_len <<= 8; 56 | debug("der_len %" PRIu32 " |= location[%u] = %u = %u", der_len, 57 | i + 2, location[i + 2], der_len | location[i + 2]); 58 | der_len |= location[i + 2]; 59 | } 60 | 61 | // and if der_len is greater than what's left, it's bad too. 62 | if (size - 2 - octets < der_len) { 63 | debug("size - 2 - octets (%" PRIu32 ") < der_len (%" PRIu32 ")", 64 | size - 2 - octets, der_len); 65 | return -1; 66 | } 67 | 68 | // or else it's a reasonable certificate from a size point of view. 69 | return der_len + 4; 70 | } 71 | 72 | #undef SMALLEST_POSSIBLE_DER_SEQ 73 | 74 | #endif 75 | // vim:fenc=utf-8:tw=75:noet 76 | -------------------------------------------------------------------------------- /src/linux-virtual-root.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2019 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "efiboot.h" 16 | 17 | /* 18 | * Support virtually rooted devices (fibre+nvme, etc.) 19 | * 20 | * /sys/dev/block/$major:$minor looks like: 21 | * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 22 | * 259:1 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 23 | * or: 24 | * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 25 | * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 26 | */ 27 | 28 | static ssize_t 29 | parse_virtual_root(struct device *dev UNUSED, const char *current, const char *root UNUSED) 30 | { 31 | int rc; 32 | ssize_t sz = 0; 33 | int pos0 = 0, pos1 = 0; 34 | struct subdir { 35 | const char * const name; 36 | const char * const fmt; 37 | } subdirs[] = { 38 | {"../../devices/virtual", "%n../../devices/virtual/%n"}, 39 | {"nvme-subsystem/", "%nnvme-subsystem/%n"}, 40 | {"nvme-fabrics/ctl/", "%nnvme-fabrics/ctl/%n"}, 41 | {NULL, NULL} 42 | }; 43 | 44 | debug("entry"); 45 | 46 | for (int i = 0; subdirs[i].name; i++) { 47 | debug("searching for %s", subdirs[i].name); 48 | pos0 = pos1 = -1; 49 | rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1); 50 | debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); 51 | dbgmk(" ", pos0, pos1); 52 | if (rc != 0 || pos0 == -1 || pos1 == -1) 53 | continue; 54 | sz += pos1; 55 | current += pos1; 56 | if (i > 0) 57 | goto found; 58 | } 59 | 60 | sz = 0; 61 | found: 62 | debug("current:'%s' sz:%zd\n", current, sz); 63 | return sz; 64 | } 65 | 66 | static enum interface_type virtual_root_iftypes[] = { virtual_root, unknown }; 67 | 68 | struct dev_probe HIDDEN virtual_root_parser = { 69 | .name = "virtual_root", 70 | .iftypes = virtual_root_iftypes, 71 | .flags = DEV_ABBREV_ONLY|DEV_PROVIDES_ROOT, 72 | .parse = parse_virtual_root, 73 | }; 74 | 75 | // vim:fenc=utf-8:tw=75:noet 76 | -------------------------------------------------------------------------------- /src/abignore: -------------------------------------------------------------------------------- 1 | # 1 function with some indirect sub-type change: 2 | # 3 | # [C]'function int efidp_append_instance(const_efidp, const_efidp, efidp*)' at dp.c:259:1 has some indirect sub-type changes: 4 | # parameter 1 of type 'typedef const_efidp' has sub-type changes: 5 | # underlying type 'const efidp_data*' changed: 6 | # in pointed to type 'const efidp_data': 7 | # in unqualified underlying type 'typedef efidp_data' at efivar-dp.h:882:1: 8 | # underlying type 'union __anonymous_union__' at efivar-dp.h:825:1 changed: 9 | # 5 data member insertions: 10 | # 'efidp_bt __anonymous_union__::bt' at efivar-dp.h:867:1 11 | # 'efidp_btle __anonymous_union__::btle' at efivar-dp.h:870:1 12 | # 'efidp_dns __anonymous_union__::dns' at efivar-dp.h:871:1 13 | # 'efidp_emmc __anonymous_union__::emmc' at efivar-dp.h:869:1 14 | # 'efidp_wifi __anonymous_union__::wifi' at efivar-dp.h:868:1 15 | # 16 | [suppress_type] 17 | name = efidp_data 18 | type_kind = typedef 19 | has_data_member_inserted_at = end 20 | soname_regexp = libefi(var|boot|sec)\\.so\\..* 21 | 22 | # https://bugzilla.redhat.com/show_bug.cgi?id=2030482 (el9 only) 23 | # 1 function with some indirect sub-type change: 24 | # [C] 'function int _efi_set_variable(efi_guid_t, const char*, uint8_t*, size_t, uint32_t)' at lib.c:33:1 has some indirect sub-type changes: 25 | # parameter 1 of type 'typedef efi_guid_t' changed: 26 | # underlying type 'struct efi_guid_t' at efivar-types.h:13:1 changed: 27 | # type name changed from 'efi_guid_t' to '__anonymous_struct__6' 28 | # type size hasn't changed 29 | # no data member changes (5 filtered); 30 | [suppress_type] 31 | name = efi_guid_t 32 | type_kind = struct 33 | 34 | # 1 Added variable: 35 | # 36 | # 'const __anonymous_struct__ efi_guid_ux_capsule' {efi_guid_ux_capsule@@LIBEFIVAR_1.33} 37 | # 38 | [suppress_variable] 39 | change_kind = added-variable 40 | soname_regexp = libefivar\\.so\\..* 41 | symbol_name_regexp = ^efi_guid_[[:alnum:]_]+$ 42 | 43 | # allow new functions that are prefixed correctly 44 | [suppress_function] 45 | change_kind = added-function 46 | soname_regexp = ^libefi(var|boot|sec)\\.so\\..* 47 | name_regexp = ^(efidp_|efi_)[[:alnum:]_]+ 48 | 49 | # allow new variables that are prefixed correctly 50 | [suppress_variable] 51 | change_kind = added-variable 52 | soname_regexp = libefi(var|boot|sec)\\.so\\..* 53 | symbol_name_regexp = ^(efidp_|efi_)[[:alnum:]_]+ 54 | -------------------------------------------------------------------------------- /tests/test.esl.annotation.esl.goal.txt: -------------------------------------------------------------------------------- 1 | 00000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 2 | 00000010 dc 00 00 00 |....| esl[0].signature_list_size = 220 (0xdc) 3 | 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 4 | 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 5 | 0000001c esl[0].signature_header (end:0x0000001c) 6 | 0000001c db ed 23 02 |..#.| esl[0].signature[0].owner = {redhat} 7 | 00000020 79 90 88 43 af 77 2d 65 b1 c3 5d 3b |y..C.w-e..];| 8 | 0000002c 87 42 8f c5 |.B..| esl[0].signature[0].data (end:0x0000004c) 9 | 00000030 22 80 3d 31 06 5e 7b ce 3c f0 3f e4 75 09 66 31 |".=1.^{.<.?.u.f1| 10 | 00000040 e5 e0 7b bd 7a 0f de 60 c4 cf 25 c7 |..{.z..`..%.| 11 | 0000004c db ed 23 02 |..#.| esl[0].signature[1].owner = {redhat} 12 | 00000050 79 90 88 43 af 77 2d 65 b1 c3 5d 3b |y..C.w-e..];| 13 | 0000005c 02 63 82 99 |.c..| esl[0].signature[1].data (end:0x0000007c) 14 | 00000060 89 b6 fd 95 4f 72 ba af 2f c6 4b c2 e2 f0 1d 69 |....Or../.K....i| 15 | 00000070 2d 4d e7 29 86 ea 80 8f 6e 99 81 3f |-M.)....n..?| 16 | 0000007c db ed 23 02 |..#.| esl[0].signature[2].owner = {redhat} 17 | 00000080 79 90 88 43 af 77 2d 65 b1 c3 5d 3b |y..C.w-e..];| 18 | 0000008c 8d 74 be ec |.t..| esl[0].signature[2].data (end:0x000000ac) 19 | 00000090 1b e9 96 32 2a d7 68 13 ba fb 92 d4 08 39 89 5d |...2*.h......9.]| 20 | 000000a0 6d d7 ee 80 8b 17 ca 20 1e ac 98 be |m...... ....| 21 | 000000ac db ed 23 02 |..#.| esl[0].signature[3].owner = {redhat} 22 | 000000b0 79 90 88 43 af 77 2d 65 b1 c3 5d 3b |y..C.w-e..];| 23 | 000000bc a3 a5 e7 15 |....| esl[0].signature[3].data (end:0x000000dc) 24 | 000000c0 f0 cc 57 4a 73 c3 f9 be bb 6b c2 4f 32 ff d5 b6 |..WJs....k.O2...| 25 | 000000d0 7b 38 72 44 c2 c9 09 da 77 9a 14 78 |{8rD....w..x| 26 | 000000dc 27 | -------------------------------------------------------------------------------- /src/diag.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * diag.h - Set up appropriate -W flags based on which compiler is in use 4 | * Copyright Peter Jones 5 | */ 6 | 7 | #ifndef PRIVATE_DIAG_H_ 8 | #define PRIVATE_DIAG_H_ 9 | 10 | #if defined(__clang__) 11 | #pragma clang diagnostic ignored "-Wpointer-bool-conversion" 12 | /* 13 | * -Wmissing-field-initializers just encourages you to write worse code, 14 | * and that's all it's ever done. It vaguely made sense pre-C99, before 15 | * named initializers, but at this point it's just completely nonsense. 16 | */ 17 | #pragma clang diagnostic ignored "-Wmissing-field-initializers" 18 | #pragma clang diagnostic warning "-Wcpp" 19 | #endif 20 | 21 | #if defined(__GNUC__) && !defined(__clang__) 22 | /* 23 | * nonnull compare is more or less completetly defective; rather than 24 | * warning that you're *calling* something without ensuring an argument 25 | * can't be NULL, it complains in the implementation of the callee that 26 | * you're *checking* for NULL. Useful behavior would be to complain in the 27 | * caller if an argument hasn't been properly constrained, and to complain 28 | * in the callee if either the visibility is public and the variable 29 | * /isn't/ checked, or the visibility is hidden and it is - i.e. only 30 | * complain about checking if you can verify every caller. 31 | */ 32 | #if __GNUC__ > 6 33 | #pragma GCC diagnostic ignored "-Wnonnull-compare" 34 | #endif 35 | /* 36 | * -Wmissing-field-initializers just encourages you to write worse code, 37 | * and that's all it's ever done. It vaguely made sense pre-C99, before 38 | * named initializers, but at this point it's just completely nonsense. 39 | */ 40 | #pragma GCC diagnostic ignored "-Wmissing-field-initializers" 41 | #if defined(EFIVAR_SYNTAX_CHECKING) 42 | #pragma GCC diagnostic ignored "-Wcpp" 43 | #pragma GCC diagnostic ignored "-Wunused-but-set-variable" 44 | #pragma GCC diagnostic ignored "-Wunused-function" 45 | #pragma GCC diagnostic ignored "-Wunused-parameter" 46 | #pragma GCC diagnostic ignored "-Wunused-result" 47 | #pragma GCC diagnostic ignored "-Wunused-variable" 48 | #else 49 | #pragma GCC diagnostic warning "-Wcpp" 50 | #pragma GCC diagnostic error "-Wunused-but-set-variable" 51 | #pragma GCC diagnostic error "-Wunused-function" 52 | #pragma GCC diagnostic error "-Wunused-parameter" 53 | #pragma GCC diagnostic error "-Wunused-result" 54 | #pragma GCC diagnostic error "-Wunused-variable" 55 | #endif /* !defined(EFIVAR_SYNTAX_CHECKING) */ 56 | #endif 57 | 58 | #endif /* !PRIVATE_DIAG_H_ */ 59 | // vim:fenc=utf-8:tw=75:noet 60 | -------------------------------------------------------------------------------- /src/esl-iter.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * Copyright Red Hat, Inc. 4 | * Copyright Peter M. Jones 5 | * 6 | * Author(s): Peter Jones 7 | */ 8 | #ifndef PRIVATE_ESL_ITER_H_ 9 | #define PRIVATE_ESL_ITER_H_ 1 10 | 11 | #include "efisec.h" 12 | 13 | typedef struct esl_iter esl_iter; 14 | 15 | /* 16 | * esl_iter_new - create a new iterator over a efi security database 17 | * iter: pointer to a NULL esl_iter pointer. 18 | * buf: security database from the file 19 | * len: size of the file 20 | * 21 | * returns 0 on success, negative on error, sets errno. 22 | */ 23 | extern int esl_iter_new(esl_iter **iter, uint8_t *buf, size_t len) 24 | __attribute__((__nonnull__(1, 2))); 25 | 26 | /* 27 | * esl_iter_end - destroy the iterator created by esl_iter_new() 28 | * iter: the iterator being destroyed 29 | * 30 | * returns 0 on success, negative on error, sets errno. 31 | */ 32 | extern int esl_iter_end(esl_iter *iter) 33 | __attribute__((__nonnull__(1))); 34 | 35 | typedef enum esl_iter_status { 36 | ESL_ITER_ERROR = -1, 37 | ESL_ITER_DONE = 0, 38 | ESL_ITER_NEW_DATA = 1, 39 | ESL_ITER_NEW_LIST = 2, 40 | } esl_iter_status_t; 41 | 42 | /* 43 | * esl_iter_next - get the next item in the list 44 | * iter: the iterator 45 | * type: the type of the entry 46 | * owner: the owner of the entry 47 | * data: the identifying data 48 | * len: the size of the data 49 | * 50 | * returns negative and sets errno on error, 51 | * ESL_ITER_ERROR (-1) on error 52 | * ESL_ITER_DONE if there weren't any entries (type/owner/data/len are not populated) 53 | * ESL_ITER_NEW_DATA if an entry was returned 54 | * ESL_ITER_NEW_LIST if an entry was returned and from a new efi_signature_list 55 | */ 56 | extern esl_iter_status_t esl_iter_next(esl_iter *iter, efi_guid_t *type, 57 | efi_guid_t *owner, uint8_t **data, size_t *len) 58 | __attribute__((__nonnull__(1, 2, 3, 4, 5))); 59 | 60 | 61 | extern esl_iter_status_t esl_iter_next_with_size_correction(esl_iter *iter, efi_guid_t *type, 62 | efi_guid_t *owner, uint8_t **data, 63 | size_t *len, bool correct_size) 64 | __attribute__((__nonnull__(1, 2, 3, 4, 5))); 65 | 66 | /* 67 | * esl_iter_get_line - tell how many entries have been returned 68 | * iter: the iterator 69 | * 70 | * return value: -1 on error, with errno set, >=0 in all other cases 71 | */ 72 | extern int esl_iter_get_line(esl_iter *iter) 73 | __attribute__((__nonnull__(1))); 74 | 75 | /* 76 | * get the address of the current esd in this esl buffer 77 | */ 78 | intptr_t 79 | esd_get_esl_offset(esl_iter *iter) 80 | __attribute__((__nonnull__(1))); 81 | 82 | #endif /* PRIVATE_ESL_ITER_H_ */ 83 | -------------------------------------------------------------------------------- /src/include/efivar/efiboot-loadopt.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2015 Red Hat, Inc. 5 | * Copyright (C) 2001 Dell Computer Corporation 6 | */ 7 | #ifndef _EFIBOOT_LOADOPT_H 8 | #define _EFIBOOT_LOADOPT_H 1 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | typedef struct efi_load_option_s efi_load_option; 15 | 16 | extern ssize_t efi_loadopt_create(uint8_t *buf, ssize_t size, 17 | uint32_t attributes, efidp dp, 18 | ssize_t dp_size, unsigned char *description, 19 | uint8_t *optional_data, 20 | size_t optional_data_size) 21 | __attribute__((__nonnull__ (6))); 22 | 23 | extern efidp efi_loadopt_path(efi_load_option *opt, ssize_t limit) 24 | __attribute__((__nonnull__ (1))); 25 | extern const unsigned char * efi_loadopt_desc(efi_load_option *opt, 26 | ssize_t limit) 27 | __attribute__((__visibility__ ("default"))) 28 | __attribute__((__nonnull__ (1))); 29 | extern uint32_t efi_loadopt_attrs(efi_load_option *opt) 30 | __attribute__((__nonnull__ (1))) 31 | __attribute__((__visibility__ ("default"))); 32 | extern void efi_loadopt_attr_set(efi_load_option *opt, uint16_t attr) 33 | __attribute__((__nonnull__ (1))) 34 | __attribute__((__visibility__ ("default"))); 35 | extern void efi_loadopt_attr_clear(efi_load_option *opt, uint16_t attr) 36 | __attribute__((__nonnull__ (1))) 37 | __attribute__((__visibility__ ("default"))); 38 | extern uint16_t efi_loadopt_pathlen(efi_load_option *opt, ssize_t limit) 39 | __attribute__((__nonnull__ (1))) 40 | __attribute__((__visibility__ ("default"))); 41 | extern int efi_loadopt_optional_data(efi_load_option *opt, size_t opt_size, 42 | unsigned char **datap, size_t *len) 43 | __attribute__((__nonnull__ (1,3))) 44 | __attribute__((__visibility__ ("default"))); 45 | 46 | extern ssize_t efi_loadopt_args_from_file(uint8_t *buf, ssize_t size, 47 | char *filename) 48 | __attribute__((__nonnull__ (3))) 49 | __attribute__((__visibility__ ("default"))); 50 | extern ssize_t efi_loadopt_args_as_utf8(uint8_t *buf, ssize_t size, 51 | uint8_t *utf8) 52 | __attribute__((__nonnull__ (3))) 53 | __attribute__((__visibility__ ("default"))); 54 | extern ssize_t efi_loadopt_args_as_ucs2(uint16_t *buf, ssize_t size, 55 | uint8_t *utf8) 56 | __attribute__((__nonnull__ (3))) 57 | __attribute__((__visibility__ ("default"))); 58 | 59 | extern ssize_t efi_loadopt_optional_data_size(efi_load_option *opt, size_t size) 60 | __attribute__((__nonnull__ (1))) 61 | __attribute__((__visibility__ ("default"))); 62 | extern int efi_loadopt_is_valid(efi_load_option *opt, size_t size) 63 | __attribute__((__nonnull__ (1))) 64 | __attribute__((__visibility__ ("default"))); 65 | 66 | #ifdef __cplusplus 67 | } /* extern "C" */ 68 | #endif 69 | 70 | #endif /* _EFIBOOT_LOADOPT_H */ 71 | 72 | // vim:fenc=utf-8:tw=75:noet 73 | -------------------------------------------------------------------------------- /src/guids.txt: -------------------------------------------------------------------------------- 1 | 00000000-0000-0000-0000-000000000000 zero zeroed sentinel guid 2 | 0223eddb-9079-4388-af77-2d65b1c35d3b redhat Red Hat 3 | 093e0fae-a6c4-4f50-9f1b-d41e2b89c19a sha512 SHA-512 hash 4 | 0abba7dc-e516-4167-bbf5-4d9d1c739416 fwupdate Linux Firmware Update Tool 5 | 0b6e5233-a65c-44c9-9407-d9ab83bfc8bd sha224 SHA-224 hash 6 | 126a762d-5758-4fca-8531-201a7f57f850 lenovo_boot_menu Lenovo Boot Menu 7 | 26dc4851-195f-4ae1-9a19-fbf883bbb35e supermicro Super Micro 8 | 3b053091-6c9f-04cc-b1ac-e2a51e3be5f5 asus Asus 9 | 3b8c8162-188c-46a4-aec9-be43f1d65697 ux_capsule Firmware update localized text image 10 | 3bd2a492-96c0-4079-b420-fcf98ef103ed x509_sha256 SHA-256 hash of X.509 Certificate 11 | 3c5766e8-269c-4e34-aa14-ed776e85b3b6 rsa2048 RSA 2048 pubkey 12 | 3cc24e96-22c7-41d8-8863-8e39dcdcc2cf lenovo Lenovo 13 | 3f7e615b-0d45-4f80-88dc-26b234958560 lenovo_diag Lenovo Diagnostics 14 | 446dbf63-2502-4cda-bcfa-2465d2b0fe9d x509_sha512 SHA-512 hash of X.509 Certificate 15 | 452e8ced-dfff-4b8c-ae01-5118862e682c external_management External Management Mechanism 16 | 4aafd29d-68df-49ee-8aa9-347d375665a7 pkcs7_cert PKCS7 Certificate 17 | 55555555-5555-5555-5555-555555555555 fives All Fives Test Data 18 | 605dab50-e046-4300-abb6-3dd810dd8b23 shim shim 19 | 665d3f60-ad3e-4cad-8e26-db46eee9f1b5 lenovo_rescue Lenovo Rescue and Recovery 20 | 67f8444f-8743-48f1-a328-1eaab8736080 rsa2048_sha1 RSA-2048 signature of a SHA-1 hash 21 | 6dc40ae4-2ee8-9c4c-a314-0fc7b2008710 canonical Canonical 22 | 70564dce-9afc-4ee3-85fc-949649d7e45c dell Dell 23 | 7076876e-80c2-4ee6-aad2-28b349a6865b x509_sha384 SHA-384 hash of X.509 Certificate 24 | 721c8b66-426c-4e86-8e99-3457c46ab0b9 lenovo_setup Lenovo Firmware Setup 25 | 77fa9abd-0359-4d32-bd60-28f4e78f784b microsoft Microsoft 26 | 7facc7b6-127f-4e9c-9c5d-080f98994345 lenovo_2 Lenovo 27 | 8108ac4e-9f11-4d59-850e-e21a522c59b2 auto_created_boot_option Automatically Created Boot Option 28 | 826ca512-cf10-4ac9-b187-be01496631bd sha1 SHA-1 29 | 82988420-7467-4490-9059-feb448dd1963 lenovo_me_config Lenovo ME Configuration Menu 30 | 8be4df61-93ca-11d2-aa0d-00e098032b8c global EFI Global Variable 31 | 91376aff-cba6-42be-949d-06fde81128e8 grub GRUB 32 | a5c059a1-94e4-4aa7-87b5-ab155c2bf072 x509_cert X.509 Certificate 33 | a7717414-c616-4977-9420-844712a735bf rsa2048_sha256_cert RSA-2048 key with SHA-256 Certificate 34 | a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380 lenovo_diag_splash Lenovo Diagnostic Splash Screen 35 | bc7838d2-0f82-4d60-8316-c068ee79d25b lenovo_msg Lenovo Vendor Message Device 36 | c1c41626-504c-4092-aca9-41f936934328 sha256 SHA-256 37 | c57ad6b7-0515-40a8-9d21-551652854e37 shell EFI Shell 38 | d719b2cb-3d3a-4596-a3bc-dad00e67656f security EFI Security Database 39 | e2b36190-879b-4a3d-ad8d-f2e7bba32784 rsa2048_sha256 RSA-2048 signature of a SHA-256 hash 40 | f46ee6f4-4785-43a3-923d-7f786c3c8479 lenovo_startup_interrupt Lenovo Startup Interrupt Menu 41 | ff3e5307-9fd0-48c9-85f1-8ad56c701e01 sha384 SHA-384 42 | ffffffff-ffff-ffff-ffff-ffffffffffff zzignore-this-guid zzignore-this-guid 43 | -------------------------------------------------------------------------------- /src/include/rules.mk: -------------------------------------------------------------------------------- 1 | default : all 2 | 3 | .PHONY: default all clean install test 4 | 5 | include $(TOPDIR)/src/include/version.mk 6 | 7 | comma:= , 8 | empty:= 9 | space:= $(empty) $(empty) 10 | 11 | set-if-undefined = $(call eval,$(1) := $(if $(filter default undefined,$(origin $(1))),$(2),$($(1)))) 12 | add-prefix = $(subst $(space),$(empty),$(1)$(foreach x,$(2),$(comma)$(x))) 13 | 14 | FAMILY_SUFFIXES = $(if $(findstring clang,$(CC)),CLANG,) \ 15 | $(if $(findstring ccc-analyzer,$(CC)),CCC_ANALYZER,) \ 16 | $(if $(findstring gcc,$(CC)),GCC,) 17 | family = $(foreach FAMILY_SUFFIX,$(FAMILY_SUFFIXES),$($(1)_$(FAMILY_SUFFIX))) 18 | 19 | %.a : 20 | $(AR) -cvqs $@ $^ 21 | 22 | %.1 : %.1.mdoc 23 | $(MANDOC) -mdoc -Tman -Ios=Linux $^ > $@ 24 | 25 | %.3 : %.3.mdoc 26 | $(MANDOC) -mdoc -Tman -Ios=Linux $^ > $@ 27 | 28 | % : %.c 29 | 30 | % : %.o 31 | $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) -o $@ $(sort $^) $(LDLIBS) 32 | 33 | %-static : CCLDFLAGS+=-static 34 | %-static : %.o 35 | $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) -o $@ $(sort $^) $(LDLIBS) 36 | 37 | %.so : 38 | $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) $(SOFLAGS) -o $@ $^ $(LDLIBS) 39 | ln -vfs $@ $@.1 40 | 41 | %.abixml : %.so 42 | $(ABIDW) --headers-dir $(TOPDIR)/src/include/efivar/ --out-file $@ $^ 43 | @sed -i -s 's,$(TOPDIR)/,,g' $@ 44 | 45 | %.abicheck : %.so 46 | $(ABIDIFF) \ 47 | --suppr abignore \ 48 | --headers-dir2 $(TOPDIR)/src/include/efivar/ \ 49 | $(patsubst %.so,%.abixml,$<) \ 50 | $< 51 | 52 | %.o : %.c 53 | $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^) 54 | 55 | %.static.o : %.c 56 | $(CC) $(CFLAGS) -fPIE $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^) 57 | 58 | %.o : %.S 59 | $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^) 60 | 61 | %.static.o : %.S 62 | $(CC) $(CFLAGS) -fPIE $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^) 63 | 64 | %.S: %.c 65 | $(CC) $(CFLAGS) $(CPPFLAGS) -S $< -o $@ 66 | 67 | %.E: %.c 68 | $(CC) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ 69 | 70 | %.c : %.h 71 | 72 | define substitute-version 73 | sed \ 74 | -e "s,@@VERSION@@,$(VERSION),g" \ 75 | -e "s,@@LIBDIR@@,$(LIBDIR),g" \ 76 | -e "s,@@PREFIX@@,$(PREFIX),g" \ 77 | -e "s,@@EXEC_PREFIX@@,$(EXEC_PREFIX),g" \ 78 | -e "s,@@INCLUDEDIR@@,$(INCLUDEDIR),g" \ 79 | $(1) > $(2) 80 | endef 81 | 82 | %.pc : %.pc.in 83 | @$(call substitute-version,$<,$@) 84 | %.spec : %.spec.in 85 | @$(call substitute-version,$<,$@) 86 | %.map : %.map.in 87 | @$(call substitute-version,$<,$@) 88 | 89 | pkg-config-cflags = $(if $(PKGS),$(shell $(PKG_CONFIG) --cflags $(PKGS))) 90 | pkg-config-ccldflags = $(if $(PKGS),$(shell $(PKG_CONFIG) --libs-only-L --libs-only-other $(PKGS))) 91 | pkg-config-ldlibs = $(if $(PKGS),$(shell $(PKG_CONFIG) --libs-only-l $(PKGS))) 92 | 93 | deps-of = $(foreach src,$(filter %.c,$(1)),$(patsubst %.c,.%.d,$(src))) \ 94 | $(foreach src,$(filter %.S,$(1)),$(patsubst %.S,.%.d,$(src))) 95 | 96 | get-config = $(shell git config --local --get "efivar.$(1)") 97 | 98 | # vim:ft=make 99 | -------------------------------------------------------------------------------- /src/compiler.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * compiler.h - compiler related macros 4 | * Copyright Peter Jones 5 | */ 6 | 7 | #ifndef COMPILER_H_ 8 | #define COMPILER_H_ 9 | 10 | /* GCC version checking borrowed from glibc. */ 11 | #if defined(__GNUC__) && defined(__GNUC_MINOR__) 12 | # define GNUC_PREREQ(maj,min) \ 13 | ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) 14 | #else 15 | # define GNUC_PREREQ(maj,min) 0 16 | #endif 17 | 18 | /* Does this compiler support compile-time error attributes? */ 19 | #if GNUC_PREREQ(4,3) 20 | # define ATTRIBUTE_ERROR(msg) \ 21 | __attribute__ ((__error__ (msg))) 22 | #else 23 | # define ATTRIBUTE_ERROR(msg) __attribute__ ((noreturn)) 24 | #endif 25 | 26 | #if GNUC_PREREQ(4,4) 27 | # define GNU_PRINTF gnu_printf 28 | #else 29 | # define GNU_PRINTF printf 30 | #endif 31 | 32 | #if GNUC_PREREQ(3,4) 33 | # define WARN_UNUSED_RESULT __attribute__ ((warn_unused_result)) 34 | #else 35 | # define WARN_UNUSED_RESULT 36 | #endif 37 | 38 | #if defined(__clang__) && defined(__clang_major__) && defined(__clang_minor__) 39 | # define CLANG_PREREQ(maj,min) \ 40 | ((__clang_major__ > (maj)) || \ 41 | (__clang_major__ == (maj) && __clang_minor__ >= (min))) 42 | #else 43 | # define CLANG_PREREQ(maj,min) 0 44 | #endif 45 | 46 | #define UNUSED __attribute__((__unused__)) 47 | #define HIDDEN __attribute__((__visibility__ ("hidden"))) 48 | #define PUBLIC __attribute__((__visibility__ ("default"))) 49 | #define DESTRUCTOR __attribute__((__destructor__)) 50 | #define CONSTRUCTOR __attribute__((__constructor__)) 51 | #define ALIAS(x) __attribute__((weak, alias (#x))) 52 | #define NONNULL(...) __attribute__((__nonnull__(__VA_ARGS__))) 53 | #define PRINTF(...) __attribute__((__format__(printf, __VA_ARGS__))) 54 | #define FLATTEN __attribute__((__flatten__)) 55 | #define PACKED __attribute__((__packed__)) 56 | #if defined(__clang__) 57 | # define VERSION(sym, ver) 58 | #else 59 | # if GNUC_PREREQ(10,0) 60 | # define VERSION(sym, ver) __attribute__ ((symver (# ver))) 61 | # else 62 | # define VERSION(sym, ver) __asm__(".symver " # sym "," # ver); 63 | # endif 64 | #endif 65 | #define NORETURN __attribute__((__noreturn__)) 66 | #define ALIGNED(n) __attribute__((__aligned__(n))) 67 | #define CLEANUP_FUNC(x) __attribute__((__cleanup__(x))) 68 | 69 | #define __CONCAT3(a, b, c) a ## b ## c 70 | #define CONCATENATE(a, b) __CONCAT(a, b) 71 | #define CAT(a, b) __CONCAT(a, b) 72 | #define CAT3(a, b, c) __CONCAT3(a, b, c) 73 | #define STRING(x) __STRING(x) 74 | 75 | #define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) 76 | #define __ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a) - 1) 77 | #define ALIGN(x, a) __ALIGN((x), (a)) 78 | #define ALIGN_DOWN(x, a) __ALIGN((x) - ((a) - 1), (a)) 79 | 80 | #define ALIGNMENT_PADDING(value, align) ((align - (value % align)) % align) 81 | #define ALIGN_UP(value, align) ((value) + ALIGNMENT_PADDING(value, align)) 82 | 83 | #endif /* !COMPILER_H_ */ 84 | // vim:fenc=utf-8:tw=75:noet 85 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | export TOPDIR = $(realpath $(dir $(firstword $(MAKEFILE_LIST)))) 2 | 3 | include $(TOPDIR)/src/include/deprecated.mk 4 | include $(TOPDIR)/src/include/version.mk 5 | include $(TOPDIR)/src/include/rules.mk 6 | include $(TOPDIR)/src/include/defaults.mk 7 | include $(TOPDIR)/src/include/coverity.mk 8 | include $(TOPDIR)/src/include/scan-build.mk 9 | 10 | SUBDIRS := src 11 | ifeq ($(ENABLE_DOCS), 1) 12 | SUBDIRS += docs 13 | endif 14 | 15 | all : | efivar.spec src/include/version.mk prep 16 | all clean install prep : 17 | @set -e ; for x in $(SUBDIRS) ; do \ 18 | $(MAKE) -C $$x $@ ; \ 19 | done 20 | 21 | abicheck abidw efisecdb efisecdb-static efivar efivar-static static : | all 22 | $(MAKE) -C src $@ 23 | 24 | abiupdate : 25 | $(MAKE) clean all 26 | $(MAKE) -C src abiclean abixml 27 | 28 | $(SUBDIRS) : 29 | $(MAKE) -C $@ all 30 | 31 | brick : all 32 | @echo -n $(info this is the rule for brick PWD:$(PWD) MAKECMDGOALS:$(MAKECMDGOALS)) 33 | @set -e ; for x in $(SUBDIRS) ; do \ 34 | $(MAKE) -C $${x} test ; \ 35 | done 36 | 37 | a : 38 | @if [ $${EUID} != 0 ]; then \ 39 | echo no 1>&2 ; \ 40 | exit 1 ; \ 41 | fi 42 | 43 | GITTAG = $(shell bash -c "echo $$(($(VERSION) + 1))") 44 | 45 | efivar.spec : | Makefile src/include/version.mk 46 | 47 | clean : clean-toplevel 48 | clean-toplevel: 49 | @rm -vf efivar.spec vgcore.* core.* 50 | @$(MAKE) -C tests clean 51 | 52 | test : all 53 | @$(MAKE) -C tests 54 | 55 | test-archive: abicheck efivar.spec 56 | @rm -rf /tmp/efivar-$(GITTAG) /tmp/efivar-$(GITTAG)-tmp 57 | @mkdir -p /tmp/efivar-$(GITTAG)-tmp 58 | @git archive --format=tar $(shell git branch | awk '/^*/ { print $$2 }') | ( cd /tmp/efivar-$(GITTAG)-tmp/ ; tar x ) 59 | @git diff | ( cd /tmp/efivar-$(GITTAG)-tmp/ ; patch -s -p1 -b -z .gitdiff ) 60 | @mv /tmp/efivar-$(GITTAG)-tmp/ /tmp/efivar-$(GITTAG)/ 61 | @cp efivar.spec /tmp/efivar-$(GITTAG)/ 62 | @dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/efivar-$(GITTAG).tar.bz2 efivar-$(GITTAG) 63 | @rm -rf /tmp/efivar-$(GITTAG) 64 | @echo "The archive is in efivar-$(GITTAG).tar.bz2" 65 | 66 | bumpver : 67 | @echo VERSION=$(GITTAG) > src/include/version.mk 68 | @git add src/include/version.mk 69 | git commit -m "Bump version to $(GITTAG)" -s 70 | 71 | tag: 72 | git tag -s $(GITTAG) refs/heads/master 73 | 74 | archive: abicheck bumpver abidw tag efivar.spec 75 | @rm -rf /tmp/efivar-$(GITTAG) /tmp/efivar-$(GITTAG)-tmp 76 | @mkdir -p /tmp/efivar-$(GITTAG)-tmp 77 | @git archive --format=tar $(GITTAG) | ( cd /tmp/efivar-$(GITTAG)-tmp/ ; tar x ) 78 | @mv /tmp/efivar-$(GITTAG)-tmp/ /tmp/efivar-$(GITTAG)/ 79 | @cp efivar.spec /tmp/efivar-$(GITTAG)/ 80 | @dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/efivar-$(GITTAG).tar.bz2 efivar-$(GITTAG) 81 | @rm -rf /tmp/efivar-$(GITTAG) 82 | @echo "The archive is in efivar-$(GITTAG).tar.bz2" 83 | 84 | .PHONY: $(SUBDIRS) 85 | .PHONY: a abiclean abicheck abidw abiupdate all archive 86 | .PHONY: brick bumpver clean clean-toplevel 87 | .PHONY: efivar efivar-static 88 | .PHONY: install prep tag test test-archive 89 | .NOTPARALLEL: 90 | -------------------------------------------------------------------------------- /src/linux-acpi.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2019 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "efiboot.h" 16 | 17 | int HIDDEN 18 | parse_acpi_hid_uid(struct device *dev, const char *fmt, ...) 19 | { 20 | int rc; 21 | char *path = NULL; 22 | va_list ap; 23 | char *fbuf = NULL; 24 | uint16_t tmp16; 25 | uint32_t acpi_hid = 0; 26 | uint64_t acpi_uid_int = 0; 27 | 28 | debug("entry"); 29 | 30 | va_start(ap, fmt); 31 | rc = vasprintfa(&path, fmt, ap); 32 | va_end(ap); 33 | debug("path:%s rc:%d", path, rc); 34 | if (rc < 0 || path == NULL) 35 | return -1; 36 | 37 | rc = read_sysfs_file(&fbuf, "%s/firmware_node/path", path); 38 | if (rc > 0 && fbuf) { 39 | size_t l = strlen(fbuf); 40 | if (l > 1) { 41 | fbuf[l-1] = 0; 42 | dev->acpi_root.acpi_cid_str = strdup(fbuf); 43 | debug("Setting ACPI root path to '%s'", fbuf); 44 | } 45 | } 46 | 47 | rc = read_sysfs_file(&fbuf, "%s/firmware_node/hid", path); 48 | if (rc < 0 || fbuf == NULL) { 49 | efi_error("could not read %s/firmware_node/hid", path); 50 | return -1; 51 | } 52 | 53 | rc = strlen(fbuf); 54 | if (rc < 4) { 55 | hid_err: 56 | efi_error("could not parse %s/firmware_node/hid", path); 57 | return -1; 58 | } 59 | rc -= 4; 60 | 61 | rc = sscanf((char *)fbuf + rc, "%04hx", &tmp16); 62 | debug("rc:%d hid:0x%08x\n", rc, tmp16); 63 | if (rc != 1) 64 | goto hid_err; 65 | 66 | acpi_hid = EFIDP_EFI_PNP_ID(tmp16); 67 | 68 | /* 69 | * Apparently basically nothing can look up a PcieRoot() node, 70 | * because they just check _CID. So since _CID for the root pretty 71 | * much always has to be PNP0A03 anyway, just use that no matter 72 | * what. 73 | */ 74 | if (acpi_hid == EFIDP_ACPI_PCIE_ROOT_HID) 75 | acpi_hid = EFIDP_ACPI_PCI_ROOT_HID; 76 | dev->acpi_root.acpi_hid = acpi_hid; 77 | debug("acpi root HID:0x%08x", acpi_hid); 78 | 79 | errno = 0; 80 | fbuf = NULL; 81 | rc = read_sysfs_file(&fbuf, "%s/firmware_node/uid", path); 82 | if ((rc < 0 && errno != ENOENT) || (rc > 0 && fbuf == NULL)) { 83 | efi_error("could not read %s/firmware_node/uid", path); 84 | return -1; 85 | } 86 | if (rc > 0) { 87 | rc = sscanf((char *)fbuf, "%"PRIu64"\n", &acpi_uid_int); 88 | if (rc == 1) { 89 | dev->acpi_root.acpi_uid = acpi_uid_int; 90 | } else { 91 | /* kernel uses "%s\n" to print it, so there 92 | * should always be some value and a newline... */ 93 | int l = strlen((char *)fbuf); 94 | if (l >= 1) { 95 | fbuf[l-1] = '\0'; 96 | dev->acpi_root.acpi_uid_str = strdup(fbuf); 97 | } 98 | } 99 | } 100 | debug("acpi root UID:0x%"PRIx64" uidstr:'%s'", 101 | dev->acpi_root.acpi_uid, dev->acpi_root.acpi_uid_str); 102 | 103 | errno = 0; 104 | return 0; 105 | } 106 | 107 | // vim:fenc=utf-8:tw=75:noet 108 | -------------------------------------------------------------------------------- /src/linux-emmc.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2019 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #include "efiboot.h" 17 | 18 | /* 19 | * support for emmc devices 20 | * 21 | * /sys/dev/block/$major:$minor looks like: 22 | * 179:0 -> ../../devices/pci0000:00/0000:00:1c.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0 23 | * 179:1 -> ../../devices/pci0000:00/0000:00:1c.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p1 24 | * 25 | * /sys/dev/block/179:0/device looks like: 26 | * device -> ../../../mmc0:0001 27 | * 28 | * /sys/dev/block/179:1/partition looks like: 29 | * $ cat partition 30 | * 1 31 | * 32 | */ 33 | 34 | static ssize_t 35 | parse_emmc(struct device *dev, const char *path, const char *root UNUSED) 36 | { 37 | const char * current = path; 38 | int rc; 39 | int32_t tosser0, tosser1, tosser2, tosser3, slot_id, partition; 40 | int pos0 = -1, pos1 = -1, pos2 = -1; 41 | 42 | debug("entry"); 43 | 44 | debug("searching for mmc_host/mmc0/mmc0:0001/block/mmcblk0 or mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p1"); 45 | rc = sscanf(current, "%nmmc_host/mmc%d/mmc%d:%d/block/mmcblk%d%n/mmcblk%dp%d%n", 46 | &pos0, &tosser0, &tosser1, &tosser2, &slot_id, 47 | &pos1, &tosser3, &partition, &pos2); 48 | debug("current:\"%s\" rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); 49 | dbgmk(" ", pos0, MAX(pos1,pos2)); 50 | /* 51 | * If it isn't of that form, it's not one of our emmc devices. 52 | */ 53 | if (rc != 4 && rc != 6) 54 | return 0; 55 | 56 | dev->emmc_info.slot_id = slot_id; 57 | dev->interface_type = emmc; 58 | 59 | if (rc == 6 && dev->part == -1) 60 | dev->part = partition; 61 | 62 | current += pos1; 63 | 64 | debug("current:'%s' sz:%zd", current, current - path); 65 | return current - path; 66 | } 67 | 68 | static ssize_t 69 | dp_create_emmc(struct device *dev, 70 | uint8_t *buf, ssize_t size, ssize_t off) 71 | { 72 | ssize_t sz; 73 | 74 | debug("entry"); 75 | 76 | sz = efidp_make_emmc(buf + off, size ? size - off : 0, 77 | dev->emmc_info.slot_id); 78 | return sz; 79 | } 80 | 81 | static char * 82 | make_part_name(struct device *dev) 83 | { 84 | char *ret = NULL; 85 | ssize_t rc; 86 | 87 | if (dev->part < 1) 88 | return NULL; 89 | 90 | rc = asprintf(&ret, "%sp%d", dev->disk_name, dev->part); 91 | if (rc < 0) { 92 | efi_error("could not allocate memory"); 93 | return NULL; 94 | } 95 | 96 | return ret; 97 | } 98 | 99 | static enum interface_type emmc_iftypes[] = { emmc, unknown }; 100 | 101 | struct dev_probe HIDDEN emmc_parser = { 102 | .name = "emmc", 103 | .iftypes = emmc_iftypes, 104 | .flags = DEV_PROVIDES_HD, 105 | .parse = parse_emmc, 106 | .create = dp_create_emmc, 107 | .make_part_name = make_part_name, 108 | }; 109 | 110 | // vim:fenc=utf-8:tw=75:noet 111 | -------------------------------------------------------------------------------- /src/include/efivar/efisec-secdb.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * efisec-secdb.h - interfaces for EFI security databases 4 | * Copyright Peter Jones 5 | */ 6 | 7 | #ifndef EFISEC_SECDB_H_ 8 | #define EFISEC_SECDB_H_ 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | typedef struct efi_secdb efi_secdb_t; 15 | 16 | typedef union { 17 | efi_sha1_hash_t sha1; 18 | efi_sha224_hash_t sha224; 19 | efi_sha256_hash_t sha256; 20 | efi_sha384_hash_t sha384; 21 | efi_sha512_hash_t sha512; 22 | efi_rsa2048_sig_t rsa2048; 23 | efi_rsa2048_sig_t rsa2048_sha1; 24 | efi_rsa2048_sig_t rsa2048_sha256; 25 | efi_cert_x509_sha256_t x509_sha256_t; 26 | efi_cert_x509_sha384_t x509_sha384_t; 27 | efi_cert_x509_sha512_t x509_sha512_t; 28 | uint8_t raw[0]; 29 | } efi_secdb_data_t; 30 | 31 | typedef enum { 32 | X509_CERT, // a raw x509 cert 33 | X509_SHA256, // SHA-256 hash of the TBSData 34 | SHA256, // SHA-256 hash 35 | X509_SHA512, // SHA-512 hash of the TBSData 36 | SHA512, // SHA-512 hash 37 | X509_SHA384, // SHA-384 hash of the TBSData 38 | SHA224, // SHA-224 hash 39 | SHA384, // SHA-384 hash 40 | SHA1, // SHA-1 hash 41 | RSA2048, // RSA-2048 pubkey (m, e=0x10001) 42 | RSA2048_SHA1, // RSA-2048 signature of a SHA-1 hash 43 | RSA2048_SHA256, // RSA-2048 signature of a SHA-256 hash 44 | MAX_SECDB_TYPE 45 | } efi_secdb_type_t; 46 | 47 | typedef enum { 48 | EFI_SECDB_SORT, 49 | EFI_SECDB_SORT_DATA, 50 | EFI_SECDB_SORT_DESCENDING, 51 | } efi_secdb_flag_t; 52 | 53 | extern efi_secdb_t *efi_secdb_new(void); 54 | extern int efi_secdb_set_bool(efi_secdb_t *secdb, 55 | efi_secdb_flag_t flag, 56 | bool value); 57 | extern int efi_secdb_parse(uint8_t *data, 58 | size_t datasz, 59 | efi_secdb_t **secdbp); 60 | extern int efi_secdb_add_entry(efi_secdb_t *secdb, 61 | const efi_guid_t *owner, 62 | efi_secdb_type_t algorithm, 63 | efi_secdb_data_t *data, 64 | size_t datasz); 65 | extern int efi_secdb_del_entry(efi_secdb_t *secdb, 66 | const efi_guid_t *owner, 67 | efi_secdb_type_t algorithm, 68 | efi_secdb_data_t *data, 69 | size_t datasz); 70 | extern int efi_secdb_realize(efi_secdb_t *secdb, 71 | /* caller owns out */ 72 | void **out, 73 | size_t *outsize); 74 | extern void efi_secdb_free(efi_secdb_t *secdb); 75 | 76 | typedef enum { 77 | ERROR = -1, 78 | BREAK = 0, 79 | CONTINUE = 1, 80 | } efi_secdb_visitor_status_t; 81 | 82 | typedef efi_secdb_visitor_status_t 83 | (efi_secdb_visitor_t)(unsigned int listnum, 84 | unsigned int signum, 85 | const efi_guid_t * const owner, 86 | const efi_secdb_type_t algorithm, 87 | const void * const header, 88 | const size_t headersz, 89 | const efi_secdb_data_t * const data, 90 | const size_t datasz, 91 | void *closure); 92 | 93 | extern int efi_secdb_visit_entries(efi_secdb_t *secdb, 94 | efi_secdb_visitor_t *visitor, 95 | void *closure); 96 | 97 | #ifdef __cplusplus 98 | } /* extern "C" */ 99 | #endif 100 | 101 | #endif /* !EFISEC_SECDB_H_ */ 102 | // vim:fenc=utf-8:tw=75:noet 103 | -------------------------------------------------------------------------------- /src/dp-hw.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefivar - library for the manipulation of EFI variables 4 | * Copyright 2012-2015 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | 12 | #include "efivar.h" 13 | 14 | ssize_t 15 | format_edd10_guid(unsigned char *buf, size_t size, 16 | const char *dp_type, const_efidp dp) 17 | { 18 | ssize_t off = 0; 19 | efidp_edd10 const *edd_dp = (efidp_edd10 *)dp; 20 | format(buf, size, off, dp_type, "EDD10(0x%"PRIx32")", 21 | edd_dp->hardware_device); 22 | return off; 23 | } 24 | 25 | ssize_t 26 | _format_hw_dn(unsigned char *buf, size_t size, const_efidp dp) 27 | { 28 | efi_guid_t edd10_guid = EDD10_HARDWARE_VENDOR_PATH_GUID; 29 | ssize_t off = 0; 30 | switch (dp->subtype) { 31 | case EFIDP_HW_PCI: 32 | format(buf, size, off, "Pci", "Pci(0x%"PRIx32",0x%"PRIx32")", 33 | dp->pci.device, dp->pci.function); 34 | break; 35 | case EFIDP_HW_PCCARD: 36 | format(buf, size, off, "PcCard", "PcCard(0x%"PRIx32")", 37 | dp->pccard.function); 38 | break; 39 | case EFIDP_HW_MMIO: 40 | format(buf, size, off, "MemoryMapped", 41 | "MemoryMapped(%"PRIu32",0x%"PRIx64",0x%"PRIx64")", 42 | dp->mmio.memory_type, dp->mmio.starting_address, 43 | dp->mmio.ending_address); 44 | break; 45 | case EFIDP_HW_VENDOR: 46 | if (!efi_guid_cmp(&dp->hw_vendor.vendor_guid, &edd10_guid)) { 47 | format_helper(format_edd10_guid, buf, size, off, 48 | "EDD 1.0", dp); 49 | } else { 50 | format_vendor(buf, size, off, "VenHw", dp); 51 | } 52 | break; 53 | case EFIDP_HW_CONTROLLER: 54 | format(buf, size, off, "Ctrl", "Ctrl(0x%"PRIx32")", 55 | dp->controller.controller); 56 | break; 57 | case EFIDP_HW_BMC: 58 | format(buf, size, off, "BMC", "BMC(%d,0x%"PRIx64")", 59 | dp->bmc.interface_type, dp->bmc.base_addr); 60 | break; 61 | default: { 62 | ssize_t sz = efidp_node_size(dp); 63 | 64 | if (SUB(sz, 4, &sz) || 65 | sz < 0) { 66 | efi_error("bad DP node size"); 67 | return -1; 68 | } 69 | format(buf, size, off, "Hardware", 70 | "HardwarePath(%d,", dp->subtype); 71 | format_hex(buf, size, off, "Hardware", (uint8_t *)dp+4, sz); 72 | format(buf, size, off, "Hardware", ")"); 73 | break; 74 | } 75 | } 76 | return off; 77 | } 78 | 79 | ssize_t PUBLIC 80 | efidp_make_pci(uint8_t *buf, ssize_t size, uint8_t device, uint8_t function) 81 | { 82 | efidp_pci *pci = (efidp_pci *)buf; 83 | ssize_t sz; 84 | ssize_t req = sizeof (*pci); 85 | sz = efidp_make_generic(buf, size, EFIDP_HARDWARE_TYPE, EFIDP_HW_PCI, 86 | req); 87 | if (size && sz == req) { 88 | pci->device = device; 89 | pci->function = function; 90 | } 91 | 92 | if (sz < 0) 93 | efi_error("efidp_make_generic failed"); 94 | 95 | return sz; 96 | } 97 | 98 | ssize_t PUBLIC 99 | efidp_make_edd10(uint8_t *buf, ssize_t size, uint32_t hardware_device) 100 | { 101 | efi_guid_t edd10_guid = EDD10_HARDWARE_VENDOR_PATH_GUID; 102 | efidp_edd10 *edd_dp = (efidp_edd10 *)buf; 103 | ssize_t sz; 104 | ssize_t req = sizeof (*edd_dp); 105 | sz = efidp_make_generic(buf, size, EFIDP_HARDWARE_TYPE, EFIDP_HW_VENDOR, 106 | req); 107 | if (size && sz == req) { 108 | memcpy(&edd_dp->vendor_guid, &edd10_guid, sizeof (edd10_guid)); 109 | edd_dp->hardware_device = hardware_device; 110 | } 111 | 112 | if (sz < 0) 113 | efi_error("efidp_make_generic failed"); 114 | 115 | return sz; 116 | } 117 | 118 | // vim:fenc=utf-8:tw=75:noet 119 | -------------------------------------------------------------------------------- /src/include/efivar/efivar-types.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1 2 | /* 3 | * Copyright 2012-2020 Red Hat, Inc. 4 | * Copyright 2012-2020 Peter M. Jones 5 | * 6 | * Author(s): Peter Jones 7 | */ 8 | #ifndef EFI_TYPES_H 9 | #define EFI_TYPES_H 1 10 | 11 | #include 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | typedef struct { 18 | uint32_t a; 19 | uint16_t b; 20 | uint16_t c; 21 | uint16_t d; 22 | uint8_t e[6]; 23 | } efi_guid_t __attribute__((__aligned__(1))); 24 | 25 | #if BYTE_ORDER == LITTLE_ENDIAN 26 | #define EFI_GUID(a,b,c,d,e0,e1,e2,e3,e4,e5) \ 27 | ((efi_guid_t) {(a), (b), (c), __builtin_bswap16(d), { (e0), (e1), (e2), (e3), (e4), (e5) }}) 28 | #else 29 | #define EFI_GUID(a,b,c,d,e0,e1,e2,e3,e4,e5) \ 30 | ((efi_guid_t) {(a), (b), (c), (d), { (e0), (e1), (e2), (e3), (e4), (e5) }}) 31 | #endif 32 | 33 | #define EFI_GLOBAL_GUID EFI_GUID(0x8be4df61,0x93ca,0x11d2,0xaa0d,0x00,0xe0,0x98,0x03,0x2b,0x8c) 34 | 35 | typedef struct { 36 | uint8_t addr[4]; 37 | } efi_ipv4_addr_t; 38 | 39 | typedef struct { 40 | uint8_t addr[16]; 41 | } efi_ipv6_addr_t; 42 | 43 | typedef union { 44 | uint32_t addr[4]; 45 | efi_ipv4_addr_t v4; 46 | efi_ipv6_addr_t v6; 47 | } efi_ip_addr_t; 48 | 49 | typedef struct { 50 | uint8_t addr[32]; 51 | } efi_mac_addr_t; 52 | 53 | typedef unsigned long efi_status_t; 54 | typedef uint16_t efi_char16_t; 55 | typedef unsigned long uintn_t; 56 | typedef long intn_t; 57 | 58 | #if !defined(EFIVAR_NO_EFI_TIME_T) || EFIVAR_NO_EFI_TIME_T 59 | #define EFIVAR_HAVE_EFI_TIME_T 1 60 | 61 | /* 62 | * This can never be correct, as defined, in the face of leap seconds. 63 | * Because seconds here are defined with a range of [0,59], we can't 64 | * express leap seconds correctly there. Because TimeZone is specified in 65 | * minutes West of UTC, rather than seconds (like struct tm), it can't be 66 | * used to correct when we cross a leap second boundary condition. As a 67 | * result, EFI_TIME can only express UT1, rather than UTC, and there's no 68 | * way when converting to know wether the error has been taken into 69 | * account, nor if it should be. 70 | * 71 | * As I write this, there is a 37 second error. 72 | */ 73 | typedef struct { 74 | uint16_t year; // 1900 - 9999 75 | uint8_t month; // 1 - 12 76 | uint8_t day; // 1 - 31 77 | uint8_t hour; // 0 - 23 78 | uint8_t minute; // 0 - 59 79 | uint8_t second; // 0 - 59 // ha ha only serious 80 | uint8_t pad1; // 0 81 | uint32_t nanosecond; // 0 - 999,999,999 82 | int16_t timezone; // minutes from UTC or EFI_UNSPECIFIED_TIMEZONE 83 | uint8_t daylight; // bitfield 84 | uint8_t pad2; // 0 85 | } efi_time_t __attribute__((__aligned__(1))); 86 | 87 | #define EFI_TIME_ADJUST_DAYLIGHT ((uint8_t)0x01) 88 | #define EFI_TIME_IN_DAYLIGHT ((uint8_t)0x02) 89 | 90 | #define EFI_UNSPECIFIED_TIMEZONE ((uint16_t)0x07ff) 91 | #endif /* !defined(EFIVAR_NO_EFI_TIME_T) || EFIVAR_NO_EFI_TIME_T */ 92 | 93 | #define EFI_VARIABLE_NON_VOLATILE ((uint64_t)0x0000000000000001) 94 | #define EFI_VARIABLE_BOOTSERVICE_ACCESS ((uint64_t)0x0000000000000002) 95 | #define EFI_VARIABLE_RUNTIME_ACCESS ((uint64_t)0x0000000000000004) 96 | #define EFI_VARIABLE_HARDWARE_ERROR_RECORD ((uint64_t)0x0000000000000008) 97 | #define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS ((uint64_t)0x0000000000000010) 98 | #define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS ((uint64_t)0x0000000000000020) 99 | #define EFI_VARIABLE_APPEND_WRITE ((uint64_t)0x0000000000000040) 100 | #define EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS ((uint64_t)0x0000000000000080) 101 | 102 | #ifdef __cplusplus 103 | } /* extern "C" */ 104 | #endif 105 | 106 | #endif /* EFI_TYPES_H */ 107 | // vim:fenc=utf-8:tw=75:noet 108 | -------------------------------------------------------------------------------- /src/linux-pci-root.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefiboot - library for the manipulation of EFI boot variables 4 | * Copyright 2012-2019 Red Hat, Inc. 5 | */ 6 | 7 | #include "fix_coverity.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "efiboot.h" 16 | 17 | /* 18 | * support for PCI root hub and devices 19 | * 20 | * various devices /sys/dev/block/$major:$minor start with: 21 | * maj:min -> ../../devices/pci$PCIROOT/$PCI_DEVICES/$BLOCKDEV_STUFF/block/$DISK/$PART 22 | * i.e.: pci0000:00/0000:00:1d.0/0000:05:00.0/ 23 | * ^ root hub ^device ^device 24 | * 25 | * for network devices, we also get: 26 | * /sys/class/net/$IFACE -> ../../devices/$PCI_STUFF/net/$IFACE 27 | * 28 | */ 29 | static ssize_t 30 | parse_pci_root(struct device *dev, const char *path, const char *root UNUSED) 31 | { 32 | const char * current = path; 33 | int rc; 34 | int pos0 = -1, pos1 = -1; 35 | uint16_t root_domain; 36 | uint8_t root_bus; 37 | 38 | debug("entry"); 39 | 40 | /* 41 | * find the pci root domain and port; they basically look like: 42 | * pci0000:00/ 43 | * ^d ^p 44 | */ 45 | rc = sscanf(current, "%n../../devices/pci%hx:%hhx/%n", &pos0, &root_domain, &root_bus, &pos1); 46 | debug("current:'%s' rc:%d pos0:%d pos1:%d", current, rc, pos0, pos1); 47 | dbgmk(" ", pos0, pos1); 48 | /* 49 | * If we can't find that, it's not a PCI device. 50 | */ 51 | if (rc != 2) 52 | return 0; 53 | current += pos1; 54 | 55 | dev->pci_root.pci_domain = root_domain; 56 | dev->pci_root.pci_bus = root_bus; 57 | 58 | rc = parse_acpi_hid_uid(dev, "devices/pci%04hx:%02hhx", 59 | root_domain, root_bus); 60 | if (rc < 0) 61 | return -1; 62 | 63 | errno = 0; 64 | debug("current:'%s' sz:%zd\n", current, current - path); 65 | return current - path; 66 | } 67 | 68 | static ssize_t 69 | dp_create_pci_root(struct device *dev UNUSED, 70 | uint8_t *buf, ssize_t size, ssize_t off) 71 | { 72 | ssize_t new = 0, sz = 0; 73 | debug("entry buf:%p size:%zd off:%zd", buf, size, off); 74 | debug("returning 0"); 75 | if (dev->acpi_root.acpi_uid_str) { 76 | debug("creating acpi_hid_ex dp hid:0x%08x uid:'%s'", 77 | dev->acpi_root.acpi_hid, 78 | dev->acpi_root.acpi_uid_str); 79 | new = efidp_make_acpi_hid_ex(buf + off, size ? size - off : 0, 80 | dev->acpi_root.acpi_hid, 81 | 0, 0, "", 82 | dev->acpi_root.acpi_uid_str, 83 | ""); 84 | if (new < 0) { 85 | efi_error("efidp_make_acpi_hid_ex() failed"); 86 | return new; 87 | } 88 | } else { 89 | debug("creating acpi_hid dp hid:0x%08x uid:0x%0"PRIx64, 90 | dev->acpi_root.acpi_hid, 91 | dev->acpi_root.acpi_uid); 92 | new = efidp_make_acpi_hid(buf + off, size ? size - off : 0, 93 | dev->acpi_root.acpi_hid, 94 | dev->acpi_root.acpi_uid); 95 | if (new < 0) { 96 | efi_error("efidp_make_acpi_hid() failed"); 97 | return new; 98 | } 99 | } 100 | sz += new; 101 | 102 | debug("returning %zd", sz); 103 | return sz; 104 | } 105 | 106 | enum interface_type pci_root_iftypes[] = { pci_root, unknown }; 107 | 108 | struct dev_probe HIDDEN pci_root_parser = { 109 | .name = "pci_root", 110 | .iftypes = pci_root_iftypes, 111 | .flags = DEV_PROVIDES_ROOT, 112 | .parse = parse_pci_root, 113 | .create = dp_create_pci_root, 114 | }; 115 | 116 | // vim:fenc=utf-8:tw=75:noet 117 | -------------------------------------------------------------------------------- /src/fix_coverity.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * fix_coverity.h 4 | * Copyright 2017 Peter Jones 5 | * 6 | */ 7 | 8 | #ifndef FIX_COVERITY_H 9 | #define FIX_COVERITY_H 10 | 11 | #ifndef _GNU_SOURCE 12 | #define _GNU_SOURCE 13 | #endif 14 | 15 | #ifndef __COVERITY_GCC_VERSION_AT_LEAST 16 | #define __COVERITY_GCC_VERSION_AT_LEAST(x, y) 0 17 | #define FAKE__COVERITY_GCC_VERSION_AT_LEAST__ 18 | #endif /* __COVERITY_GCC_VERSION_AT_LEAST */ 19 | 20 | /* With gcc 7 on x86_64 (at least), coverity pretends to be GCC but 21 | * accidentally doesn't create all of the types GCC would. 22 | * 23 | * In glibc's headers, bits/floatn.h has: 24 | * 25 | * #if (defined __x86_64__ \ 26 | * ? __GNUC_PREREQ (4, 3) \ 27 | * : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) 28 | * # define __HAVE_FLOAT128 1 29 | * #else 30 | * # define __HAVE_FLOAT128 0 31 | * #endif 32 | * 33 | * and stdlib.h has: 34 | * 35 | * #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) 36 | * slash* Likewise for the '_Float128' format *slash 37 | * extern _Float128 strtof128 (const char *__restrict __nptr, 38 | * char **__restrict __endptr) 39 | * __THROW __nonnull ((1)); 40 | * #endif 41 | * 42 | * Which then causes cov-emit to lose its shit: 43 | * 44 | * "/usr/include/stdlib.h", line 133: error #20: identifier "_Float128" is undefined 45 | * extern _Float128 strtof128 (const char *__restrict __nptr, 46 | * ^ 47 | * "/usr/include/stdlib.h", line 190: error #20: identifier "_Float128" is undefined 48 | * _Float128 __f) 49 | * ^ 50 | * "/usr/include/stdlib.h", line 236: error #20: identifier "_Float128" is undefined 51 | * extern _Float128 strtof128_l (const char *__restrict __nptr, 52 | * ^ 53 | * 54 | * And then you'll notice something like this later on: 55 | * [WARNING] Emitted 0 C/C++ compilation units (0%) successfully 56 | * 57 | * 0 C/C++ compilation units (0%) are ready for analysis 58 | * For more details, please look at: 59 | * /home/pjones/devel/github.com/dbxtool/master/cov-int/build-log.txt 60 | * 61 | * You would think that if you're writing something that pretends to be 62 | * gcc, and you've got a "build a configuration by running shit through gcc 63 | * and looking at the output" stage (which they do), you would run "gcc -da 64 | * -fdump-tree-all -c -o foo.o foo.c" on an empty file and snarf up all the 65 | * types defined in the foo.c.001t.tu output. Apparently, they do not. 66 | * 67 | * Anyway, even just defining the type doesn't always work in the face of 68 | * how _Complex is defined, so we cheat a bit here. Be prepared to vomit. 69 | */ 70 | #ifdef __x86_64__ 71 | #if __COVERITY_GCC_VERSION_AT_LEAST(7, 0) 72 | #include 73 | #ifdef __attribute_malloc__ 74 | #undef __attribute_malloc__ 75 | #define __attribute_malloc__ 76 | #endif 77 | #ifdef __attr_dealloc 78 | #undef __attr_dealloc 79 | #define __attr_dealloc(a, b) 80 | #endif 81 | #if 0 82 | typedef float _Float128 __attribute__((__mode__(__TF__))); 83 | typedef __complex__ float __cfloat128 __attribute__ ((__mode__ (__TC__))); 84 | typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); 85 | #elif __GNUC__ >= 11 86 | #define _Mdouble_complex_ 87 | #define _COMPLEX_H 88 | #ifdef __MATHCALL 89 | #undef __MATCHALL 90 | #define __MATHCALL(x) 91 | #include 92 | #undef _COMPLEX_H 93 | #include 94 | #endif 95 | #else 96 | #include 97 | #define __cplusplus 201103L 98 | #include 99 | #undef __cplusplus 100 | #endif 101 | #endif 102 | #endif 103 | 104 | #ifdef FAKE__COVERITY_GCC_VERSION_AT_LEAST__ 105 | #undef FAKE__COVERITY_GCC_VERSION_AT_LEAST 106 | #undef __COVERITY_GCC_VERSION_AT_LEAST 107 | #endif 108 | 109 | #endif /* !FIX_COVERITY_H */ 110 | 111 | // vim:fenc=utf-8:tw=75:noet 112 | -------------------------------------------------------------------------------- /src/libefivar.map.in: -------------------------------------------------------------------------------- 1 | libefivar.so.0 { 2 | global: efi_append_variable; 3 | efi_chmod_variable; 4 | efi_del_variable; 5 | efi_get_next_variable_name; 6 | efi_get_variable; 7 | efi_get_variable_attributes; 8 | efi_get_variable_size; 9 | efi_guid_is_empty; 10 | efi_guid_to_id_guid; 11 | efi_guid_to_name; 12 | efi_guid_to_str; 13 | efi_guid_to_symbol; 14 | efi_id_guid_to_guid; 15 | efi_name_to_guid; 16 | _efi_set_variable; 17 | _efi_set_variable_variadic; 18 | efi_str_to_guid; 19 | efi_variable_export; 20 | efi_variable_free; 21 | efi_variable_get_attributes; 22 | efi_variable_get_data; 23 | efi_variable_get_guid; 24 | efi_variable_get_name; 25 | efi_variable_import; 26 | efi_variable_realize; 27 | efi_variable_set_attributes; 28 | efi_variable_set_data; 29 | efi_variable_set_guid; 30 | efi_variable_set_name; 31 | efi_variables_supported; 32 | efi_well_known_guids; 33 | efi_well_known_guids_; 34 | efi_well_known_guids_end; 35 | efidp_append_instance; 36 | efidp_append_node; 37 | efidp_append_path; 38 | efidp_duplicate_path; 39 | efidp_format_device_path; 40 | efidp_make_acpi_hid; 41 | efidp_make_acpi_hid_ex; 42 | efidp_make_atapi; 43 | efidp_make_edd10; 44 | efidp_make_file; 45 | efidp_make_generic; 46 | efidp_make_hd; 47 | efidp_make_ipv4; 48 | efidp_make_mac_addr; 49 | efidp_make_nvme; 50 | efidp_make_pci; 51 | efidp_make_sas; 52 | efidp_make_sata; 53 | efidp_make_scsi; 54 | efidp_make_vendor; 55 | efidp_make_emmc; 56 | efidp_parse_device_node; 57 | efidp_parse_device_path; 58 | efidp_set_node_data; 59 | 60 | efi_guid_empty; 61 | efi_guid_global; 62 | efi_guid_lenovo; 63 | efi_guid_lenovo_2; 64 | efi_guid_lenovo_boot_menu; 65 | efi_guid_lenovo_diag; 66 | efi_guid_lenovo_diag_splash; 67 | efi_guid_lenovo_me_config; 68 | efi_guid_lenovo_msg; 69 | efi_guid_lenovo_rescue; 70 | efi_guid_lenovo_setup; 71 | efi_guid_lenovo_startup_interrupt; 72 | efi_guid_microsoft; 73 | efi_guid_pkcs7_cert; 74 | efi_guid_redhat; 75 | efi_guid_redhat_2; 76 | efi_guid_rsa2048; 77 | efi_guid_rsa2048_sha1; 78 | efi_guid_rsa2048_sha256; 79 | efi_guid_rsa2048_sha256_cert; 80 | efi_guid_security; 81 | efi_guid_sha1; 82 | efi_guid_sha224; 83 | efi_guid_sha256; 84 | efi_guid_sha384; 85 | efi_guid_sha512; 86 | efi_guid_shell; 87 | efi_guid_shim; 88 | efi_guid_x509_cert; 89 | efi_guid_x509_sha256; 90 | efi_guid_x509_sha384; 91 | efi_guid_x509_sha512; 92 | efi_guid_zero; 93 | local: *; 94 | }; 95 | 96 | LIBEFIVAR_0.0 { 97 | } libefivar.so.0; 98 | 99 | LIBEFIVAR_0.24 { 100 | global: efi_set_variable; 101 | efi_guid_cmp; 102 | } LIBEFIVAR_0.0; 103 | 104 | LIBEFIVAR_1.28 { 105 | } LIBEFIVAR_0.24; 106 | 107 | LIBEFIVAR_1.29 { 108 | } LIBEFIVAR_1.28; 109 | 110 | LIBEFIVAR_1.30 { 111 | global: efi_error_set; 112 | efi_error_get; 113 | efi_error_clear; 114 | } LIBEFIVAR_1.29; 115 | 116 | LIBEFIVAR_1.33 { 117 | global: efi_guid_ux_capsule; 118 | efidp_make_nvdimm; 119 | } LIBEFIVAR_1.30; 120 | 121 | LIBEFIVAR_1.35 { 122 | global: efi_get_variable_exists; 123 | efi_guid_fwupdate; 124 | } LIBEFIVAR_1.33; 125 | 126 | LIBEFIVAR_1.36 { 127 | global: efi_set_verbose; 128 | efi_get_verbose; 129 | efi_get_logfile; 130 | } LIBEFIVAR_1.35; 131 | 132 | LIBEFIVAR_1.37 { 133 | } LIBEFIVAR_1.36; 134 | 135 | LIBEFIVAR_1.38 { 136 | global: efi_error_pop; 137 | efi_set_loglevel; 138 | efi_get_libefivar_version; 139 | efi_guid_asus; 140 | efi_guid_auto_created_boot_option; 141 | efi_guid_canonical; 142 | efi_guid_dell; 143 | efi_guid_external_management; 144 | efi_guid_fives; 145 | efi_guid_grub; 146 | efi_guid_supermicro; 147 | efi_variable_alloc; 148 | efi_variable_export_dmpstore; 149 | efi_well_known_names; 150 | efi_well_known_names_; 151 | efi_well_known_names_end; 152 | efi_n_well_known_names; 153 | efi_n_well_known_guids; 154 | 155 | tm_to_efi_time; 156 | efi_time_to_tm; 157 | efi_asctime; 158 | efi_asctime_r; 159 | efi_gmtime; 160 | efi_gmtime_r; 161 | efi_localtime; 162 | efi_localtime_r; 163 | efi_mktime; 164 | efi_strptime; 165 | efi_strftime; 166 | } LIBEFIVAR_1.37; 167 | -------------------------------------------------------------------------------- /src/hexdump.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * libefivar - library for the manipulation of EFI variables 4 | * Copyright 2018-2020 Peter M. Jones 5 | */ 6 | #ifndef STATIC_HEXDUMP_H 7 | #define STATIC_HEXDUMP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "compiler.h" 16 | #include "util.h" 17 | 18 | /* 19 | * prepare_hex(): writes the address of the region being dumped and the hex 20 | * representation into a line buffer 21 | */ 22 | static inline unsigned long UNUSED 23 | prepare_hex(void *data, size_t size, char *buf, int position) 24 | { 25 | char hexchars[] = "0123456789abcdef"; 26 | int offset = 0; 27 | unsigned long i; 28 | unsigned long j; 29 | unsigned long ret; 30 | 31 | unsigned long before = (position % 16); 32 | unsigned long after = (before+size >= 16) ? 0 : 16 - (before+size); 33 | 34 | for (i = 0; i < before; i++) { 35 | buf[offset++] = ' '; 36 | buf[offset++] = ' '; 37 | buf[offset++] = ' '; 38 | if (i == 7) 39 | buf[offset++] = ' '; 40 | } 41 | for (j = 0; j < 16 - after - before; j++) { 42 | uint8_t d = ((uint8_t *)data)[j]; 43 | buf[offset++] = hexchars[(d & 0xf0) >> 4]; 44 | buf[offset++] = hexchars[(d & 0x0f)]; 45 | if (i+j != 15) 46 | buf[offset++] = ' '; 47 | if (i+j == 7) 48 | buf[offset++] = ' '; 49 | } 50 | ret = 16 - after - before; 51 | j += i; 52 | for (i = 0; i < after; i++) { 53 | buf[offset++] = ' '; 54 | buf[offset++] = ' '; 55 | if (i+j != 15) 56 | buf[offset++] = ' '; 57 | if (i+j == 7) 58 | buf[offset++] = ' '; 59 | } 60 | buf[offset] = '\0'; 61 | return ret; 62 | } 63 | 64 | /* 65 | * prepare_text(): write the |.blah.blah.blah.b| bits of the hexdump into 66 | * a line buffer 67 | */ 68 | static inline void UNUSED 69 | prepare_text(void *data, size_t size, char *buf, int position) 70 | { 71 | int offset = 0; 72 | unsigned long i; 73 | unsigned long j; 74 | 75 | unsigned long before = position % 16; 76 | unsigned long after = (before+size > 16) ? 0 : 16 - (before+size); 77 | 78 | if (size == 0) { 79 | buf[0] = '\0'; 80 | return; 81 | } 82 | for (i = 0; i < before; i++) 83 | buf[offset++] = ' '; 84 | buf[offset++] = '|'; 85 | for (j = 0; j < 16 - after - before; j++) { 86 | if (safe_to_print(((uint8_t *)data)[j])) 87 | buf[offset++] = ((uint8_t *)data)[j]; 88 | else 89 | buf[offset++] = '.'; 90 | } 91 | buf[offset++] = '|'; 92 | buf[offset] = '\0'; 93 | } 94 | 95 | /* 96 | * variadic fhexdump formatted 97 | * think of it as: fprintf(f, %s%s\n", vformat(fmt, ap), hexdump(data,size)); 98 | */ 99 | static inline void UNUSED 100 | vfhexdumpf(FILE *f, const char *const fmt, uint8_t *data, unsigned long size, 101 | size_t at, va_list ap) 102 | { 103 | unsigned long display_offset = at; 104 | unsigned long offset = 0; 105 | 106 | while (offset < size) { 107 | char hexbuf[49]; 108 | char txtbuf[19]; 109 | unsigned long sz; 110 | 111 | sz = prepare_hex(data+offset, size-offset, hexbuf, 112 | (unsigned long)data+offset); 113 | if (sz == 0) 114 | return; 115 | 116 | prepare_text(data+offset, size-offset, txtbuf, 117 | (unsigned long)data+offset); 118 | vfprintf(f, fmt, ap); 119 | fprintf(f, "%08lx %s %s\n", display_offset, hexbuf, txtbuf); 120 | 121 | display_offset += sz; 122 | offset += sz; 123 | } 124 | fflush(f); 125 | } 126 | 127 | /* 128 | * fhexdump formatted 129 | * think of it as: fprintf(f, %s%s\n", format(fmt, ...), hexdump(data,size)); 130 | */ 131 | static inline void UNUSED 132 | fhexdumpf(FILE *f, const char *const fmt, uint8_t *data, unsigned long size, 133 | size_t at, ...) 134 | { 135 | va_list ap; 136 | 137 | va_start(ap, at); 138 | vfhexdumpf(f, fmt, data, size, at, ap); 139 | va_end(ap); 140 | } 141 | 142 | static inline void UNUSED 143 | hexdump(uint8_t *data, unsigned long size) 144 | { 145 | fhexdumpf(stdout, "", data, size, (intptr_t)data); 146 | } 147 | 148 | static inline void UNUSED 149 | hexdumpat(uint8_t *data, unsigned long size, size_t at) 150 | { 151 | fhexdumpf(stdout, "", data, size, at); 152 | } 153 | 154 | #endif /* STATIC_HEXDUMP_H */ 155 | 156 | // vim:fenc=utf-8:tw=75:noet 157 | --------------------------------------------------------------------------------