blob: ac26ee80925164647ee65b5bdabb06e33e0071b5 [file] [log] [blame]
Jorge E. Moreiraba626622019-01-28 17:47:50 -08001/*
2 * Copyright (C) 2019 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#pragma once
17
18#include "host/libs/vm_manager/vm_manager.h"
19
20#include "common/libs/fs/shared_fd.h"
21#include "common/libs/utils/subprocess.h"
22
23namespace vm_manager {
24
25// Starts a guest VM with crosvm. It requires the host package to support the
26// qemu-cli capability (for network only).
27class CrosvmManager : public VmManager {
28 public:
29 static const std::string name();
30 static bool EnsureInstanceDirExists(const std::string& instance_dir);
Alistair Strachan050ca932018-11-27 12:41:19 -080031 static bool ConfigureGpu(vsoc::CuttlefishConfig* config);
32 static void ConfigureBootDevices(vsoc::CuttlefishConfig* config);
Jorge E. Moreiraba626622019-01-28 17:47:50 -080033
34 CrosvmManager(const vsoc::CuttlefishConfig* config);
35 virtual ~CrosvmManager() = default;
36
37 cvd::Command StartCommand() override;
38 bool Stop() override;
39};
40
41} // namespace vm_manager