| // Copyright 2023 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "libbrillo/brillo/dump_kernel_config.h" |
| |
| #include <optional> |
| #include <string> |
| |
| #include <base/logging.h> |
| #include <vboot/vboot_host.h> |
| |
| namespace brillo { |
| |
| std::optional<std::string> DumpKernelConfig(const base::FilePath& kernel_dev) { |
| char* config = |
| FindKernelConfig(kernel_dev.value().c_str(), USE_PREAMBLE_LOAD_ADDR); |
| if (!config) { |
| LOG(ERROR) << "Error retrieving kernel config from " << kernel_dev; |
| return std::nullopt; |
| } |
| |
| std::string result = std::string(config, MAX_KERNEL_CONFIG_SIZE); |
| free(config); |
| |
| return result; |
| } |
| |
| } // namespace brillo |