vmd(8): scan pci bus to determine bootorder strings.
authordv <dv@openbsd.org>
Mon, 6 Feb 2023 20:33:34 +0000 (20:33 +0000)
committerdv <dv@openbsd.org>
Mon, 6 Feb 2023 20:33:34 +0000 (20:33 +0000)
commit1e8eabf241e21419e8224b908988556a471c5d03
tree7b40159e4ecbe5c72a2c66b720968057844488fb
parent26fd91ce0ecf723387ff488d6ddb3edfce44186e
vmd(8): scan pci bus to determine bootorder strings.

vmd's SeaBIOS bootorder strings had hardcoded pci device ids, so
if a user added a network interface the bootorder strings didn't
line up with reality. Using vmctl(8) to boot from a cdrom (-B cdrom)
would fail, for instance, if attaching both a nic and a disk as
well.

This change scans the pci devices and finds the first of each type
to construct viable bootorder strings.

ok jan@
usr.sbin/vmd/fw_cfg.c
usr.sbin/vmd/pci.c
usr.sbin/vmd/pci.h
usr.sbin/vmd/vm.c