| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef GARNET_BIN_GUEST_VMM_SYSINFO_H_ |
| #define GARNET_BIN_GUEST_VMM_SYSINFO_H_ |
| |
| #include <fuchsia/sysinfo/cpp/fidl.h> |
| |
| static constexpr char kSysInfoPath[] = "/dev/misc/sysinfo"; |
| |
| static inline fuchsia::sysinfo::DeviceSyncPtr get_sysinfo() { |
| fuchsia::sysinfo::DeviceSyncPtr device; |
| fdio_service_connect(kSysInfoPath, |
| device.NewRequest().TakeChannel().release()); |
| return device; |
| } |
| |
| static inline zx_status_t get_root_resource( |
| const fuchsia::sysinfo::DeviceSyncPtr& sysinfo, zx::resource* resource) { |
| zx_status_t fidl_status; |
| zx_status_t status = sysinfo->GetRootResource(&fidl_status, resource); |
| if (status != ZX_OK) { |
| return status; |
| } |
| return fidl_status; |
| } |
| |
| #endif // GARNET_BIN_GUEST_VMM_SYSINFO_H_ |