mirror of https://gitlab.com/qemu-project/qemu
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.8 KiB
JSON
65 lines
1.8 KiB
JSON
# -*- Mode: Python -*-
|
|
# vim: filetype=python
|
|
#
|
|
|
|
##
|
|
# = UEFI Variable Store
|
|
#
|
|
# The qemu efi variable store implementation (hw/uefi/) uses this to
|
|
# store non-volatile variables in json format on disk.
|
|
#
|
|
# This is an existing format already supported by (at least) two other
|
|
# projects, specifically https://gitlab.com/kraxel/virt-firmware and
|
|
# https://github.com/awslabs/python-uefivars.
|
|
##
|
|
|
|
##
|
|
# @UefiVariable:
|
|
#
|
|
# UEFI Variable. Check the UEFI specifification for more detailed
|
|
# information on the fields.
|
|
#
|
|
# @guid: variable namespace GUID
|
|
#
|
|
# @name: variable name, in UTF-8 encoding.
|
|
#
|
|
# @attr: variable attributes.
|
|
#
|
|
# @data: variable value, encoded as hex string.
|
|
#
|
|
# @time: variable modification time. EFI_TIME struct, encoded as hex
|
|
# string. Used only for authenticated variables, where the
|
|
# EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute bit
|
|
# is set.
|
|
#
|
|
# @digest: variable certificate digest. Used to verify the signature
|
|
# of updates for authenticated variables. UEFI has two kinds of
|
|
# authenticated variables. The secure boot variables ('PK',
|
|
# 'KEK', 'db' and 'dbx') have hard coded signature checking rules.
|
|
# For other authenticated variables the firmware stores a digest
|
|
# of the signing certificate at variable creation time, and any
|
|
# updates must be signed with the same certificate.
|
|
#
|
|
# Since: 10.0
|
|
##
|
|
{ 'struct' : 'UefiVariable',
|
|
'data' : { 'guid' : 'str',
|
|
'name' : 'str',
|
|
'attr' : 'int',
|
|
'data' : 'str',
|
|
'*time' : 'str',
|
|
'*digest' : 'str'}}
|
|
|
|
##
|
|
# @UefiVarStore:
|
|
#
|
|
# @version: currently always 2
|
|
#
|
|
# @variables: list of UEFI variables
|
|
#
|
|
# Since: 10.0
|
|
##
|
|
{ 'struct' : 'UefiVarStore',
|
|
'data' : { 'version' : 'int',
|
|
'variables' : [ 'UefiVariable' ] }}
|