blob: c78b2760ed8c08462dc1f37ccd006dbc4da1a3cc [file] [log] [blame]
// Copyright 2022 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package recipes.infra.windows_image_builder.vm;
import "recipes/infra/windows_image_builder/drive.proto";
// VM configuration for image builders
message VM {
oneof vm {
QEMU_VM qemu_vm = 1;
}
}
// Configuration for a QEMU VM
message QEMU_VM {
// name represents the VM name
string name = 1;
// version represents the qemu version to use
string version = 2;
// machine to emulate on the VM
// Run qemu-system-${ARCH} -machine help to list available machines
// E.g. 'pc-i440fx-7.1', 'raspi3b'
string machine = 3;
// cpu to emulate on VM
// Run qemu-system-${ARCH} -cpu help to list available cpus
// E.g. 'Broadwell-v1', 'cortex-a53'
string cpu = 4;
// SMP support (Symmetric Multiprocessing)
// Options include: clusters=<num>, cores=<num>, cpus=<num>, dies=<num>
// maxcpus=<num>, sockets=<num>, threads=<num>
// E.g. cpus=4,cores=2
string smp = 5;
// memory represents the RAM size for the VM in megs
// E.g. 1024 -> 1024MB
int32 memory = 6;
// Device driver support
// E.g 'usb-kdb', 'usb-mouse'
repeated string device = 7;
// extra_args to pass on to QEMU
repeated string extra_args = 8;
// Drives to attach to the VM
repeated drive.Drive drives = 9;
}