Starting out with the 'hpet' flag, to be able to check it when generating the timer commandline in a future commit.
Signed-off-by: Fiona Ebner <[email protected]> --- src/PVE/QemuServer/Machine.pm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/PVE/QemuServer/Machine.pm b/src/PVE/QemuServer/Machine.pm index 7a401087..ece90e80 100644 --- a/src/PVE/QemuServer/Machine.pm +++ b/src/PVE/QemuServer/Machine.pm @@ -172,6 +172,38 @@ sub machine_type_is_q35 { return machine_base_type($machine_conf->{type}) eq 'q35' ? 1 : 0; } +# When you need to check a new flag, extend here and the POD for machine_supports_flag(). +my $supported_machine_flags = { + i440fx => { + hpet => 1, + }, + q35 => { + hpet => 1, + }, + virt => {}, +}; + +=head3 machine_supports_flag + + if (machine_supports_flag($machine_type, $flag)) { + push $machine_flags->@*, $flag; + } + +Check whether the machine type C<$machine_type> supports the machine flag C<$flag>. Both arguments +must have a value. Flags which can be checked currently: C<hpet>. + +=cut + +sub machine_supports_flag { + my ($machine_type, $flag) = @_; + + die "cannot check machine flag support - no machine type provided\n" if !$machine_type; + die "cannot check machine flag support - no flag provided\n" if !$flag; + + my $base_type = machine_base_type($machine_type); + return $supported_machine_flags->{$base_type}->{$flag}; +} + # In list context, also returns whether the current machine is deprecated or not. sub current_from_query_machines { my ($machines) = @_; -- 2.47.3 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
