libvirt/src/conf
Daniel P. Berrangé 578ac25c6a conf: support stateless UEFI firmware
Normally when an UEFI firmware is marked as read-only, an associated
NVRAM file will be created. Some builds of UEFI firmware, however, wish
to remain stateless and so will be read-only, but never have any NVRAM
file. To represent this concept a 'stateless' tristate bool attribute
is introduced on the <loader/> element.

There are rather a large number of permutations to consider.

With default firmware selection

  *  <os/>

     => Historic default, no change

  *  <os>
       <loader stateless='yes'/>
     </os>

     => Explicit version of historic default, no change

  *  <os>
       <loader stateless='no'/>
     </os>

      => Invalid, bios is always stateless

With manual legacy BIOS selection

  *  <os>
       <loader>/path/to/seabios</loader>
       ...
     </os>

     => Historic default, no change

  *  <os>
       <loader stateless='yes'>/path/to/seabios</loader>
       ...
     </os>

     => Explicit version of historic default, no change

  *  <os>
       <loader stateless='no'>/path/to/seabios</loader>
       ...
     </os>

      => Invalid, bios is always stateless

With manual UEFI selection

  *  <os>
       <loader type='pflash'>/path/to/edk2</loader>
       ...
     </os>

     => Historic default, no change

  *  <os>
       <loader type='pflash' stateless='yes'>/path/to/edk2</loader>
       ...
     </os>

     => Skip auto-filling NVRAM / template

  *  <os>
       <loader type='pflash' stateless='no'>/path/to/edk2</loader>
       ...
     </os>

     => Explicit version of historic default, no change

With automatic firmware selection

  *  <os firmware='bios'/>

     => Historic default, no change

  *  <os firmware='bios'>
       <loader stateless='yes'/>
     </os>

     => Explicit version of historic default, no change

  *  <os firmware='bios'>
       <loader stateless='no'/>
     </os>

      => Invalid, bios is always stateless

  *  <os firmware='uefi'/>

     => Historic default, no change

  *  <os firmware='uefi'>
       <loader stateless='yes'/>
     </os>

     => Skip auto-filling NVRAM / template

  *  <os firmware='uefi'>
       <loader stateless='no'/>
     </os>

     => Explicit version of historic default, no change

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-07-26 15:41:44 +01:00
..
schemas conf: support stateless UEFI firmware 2022-07-26 15:41:44 +01:00
backup_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
backup_conf.h
capabilities.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
capabilities.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
checkpoint_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
checkpoint_conf.h
cpu_conf.c conf: cpu: Add <signature family=X model=X stepping=X/> 2022-06-16 12:12:45 -04:00
cpu_conf.h conf: cpu: Add <signature family=X model=X stepping=X/> 2022-06-16 12:12:45 -04:00
device_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
device_conf.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
domain_addr.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
domain_addr.h
domain_audit.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
domain_audit.h
domain_capabilities.c domain_capabilities: reformat virDomainCapsCPUCustomFormat() 2022-07-22 12:56:59 +02:00
domain_capabilities.h domcaps: Introduce TPM backendVersion 2022-07-13 11:55:06 +02:00
domain_conf.c conf: support stateless UEFI firmware 2022-07-26 15:41:44 +01:00
domain_conf.h conf: support stateless UEFI firmware 2022-07-26 15:41:44 +01:00
domain_event.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
domain_event.h
domain_nwfilter.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
domain_nwfilter.h
domain_postparse.c domain_postparse: Move error messages onto single line 2022-07-07 14:32:26 +02:00
domain_postparse.h conf: Separate domain post parse code into domain_postparse.c 2022-07-07 14:32:21 +02:00
domain_validate.c conf: support stateless UEFI firmware 2022-07-26 15:41:44 +01:00
domain_validate.h domain_validate: Split out validation of disk startup policy 2022-06-14 16:38:11 +02:00
interface_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
interface_conf.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
meson.build conf: Separate domain post parse code into domain_postparse.c 2022-07-07 14:32:21 +02:00
moment_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
moment_conf.h lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
netdev_bandwidth_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
netdev_bandwidth_conf.h
netdev_vlan_conf.c
netdev_vlan_conf.h
netdev_vport_profile_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
netdev_vport_profile_conf.h
network_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
network_conf.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
network_event.c
network_event.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
networkcommon_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
networkcommon_conf.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
node_device_conf.c conf: add missing break on a switch case 2022-07-19 10:59:08 -05:00
node_device_conf.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
node_device_event.c
node_device_event.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
node_device_util.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
node_device_util.h
numa_conf.c
numa_conf.h numa_conf: Expose virNumaInterconnect formatter 2021-06-15 10:41:22 +02:00
nwfilter_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
nwfilter_conf.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
nwfilter_ipaddrmap.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
nwfilter_ipaddrmap.h
nwfilter_params.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
nwfilter_params.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
object_event_private.h
object_event.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
object_event.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
secret_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
secret_conf.h
secret_event.c
secret_event.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
snapshot_conf_priv.h
snapshot_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
snapshot_conf.h conf: snapshot: Use proper types for snapshot location 2022-03-11 13:55:50 +01:00
storage_adapter_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
storage_adapter_conf.h
storage_capabilities.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
storage_capabilities.h
storage_conf.c storage: pool: Allow more intricate nfs protocol versions 2022-07-01 16:15:23 +02:00
storage_conf.h storage: pool: Allow more intricate nfs protocol versions 2022-07-01 16:15:23 +02:00
storage_encryption_conf.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
storage_encryption_conf.h
storage_event.c
storage_event.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
storage_source_conf.c virStorageSourceGetActualType: Change type of retval 2022-06-01 14:54:59 +02:00
storage_source_conf.h virStorageSourceGetActualType: Change type of retval 2022-06-01 14:54:59 +02:00
virchrdev.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virchrdev.h
virconftypes.h conf: Introduce <defaultiothread/> 2022-06-10 14:01:03 +02:00
virdomaincheckpointobjlist.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virdomaincheckpointobjlist.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virdomainmomentobjlist.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virdomainmomentobjlist.h
virdomainobjlist.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virdomainobjlist.h
virdomainsnapshotobjlist.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virdomainsnapshotobjlist.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virinterfaceobj.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virinterfaceobj.h
virnetworkobj.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virnetworkobj.h
virnetworkportdef.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virnetworkportdef.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virnodedeviceobj.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virnodedeviceobj.h
virnwfilterbindingdef.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virnwfilterbindingdef.h
virnwfilterbindingobj.c conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virnwfilterbindingobj.h
virnwfilterbindingobjlist.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virnwfilterbindingobjlist.h
virnwfilterobj.c
virnwfilterobj.h
virsavecookie.c
virsavecookie.h
virsecretobj.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virsecretobj.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00
virstorageobj.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virstorageobj.h conf: Remove unused includes 2022-06-16 06:43:56 +02:00