[sysinfo][4/4] Move driver to a service

As part of moving out drivers from misc devhost,
this CL removes the sysinfo driver completing the
transition to sysinfo service

Done: 34052
Test: runtests -t platform-bus-test,sysinfo-test
Change-Id: Ib2cfa9a045b51302d5cdabe55904bc128289967b
diff --git a/build/unification/images/BUILD.gn b/build/unification/images/BUILD.gn
index 0c7aa46..1ce3a8a 100644
--- a/build/unification/images/BUILD.gn
+++ b/build/unification/images/BUILD.gn
@@ -253,7 +253,6 @@
     ":driver.ssd1306",
     ":driver.syn-clk",
     ":driver.syn-dma",
-    ":driver.sysinfo",
     ":driver.sysmem",
     ":driver.tas5782",
     ":driver.tas5805",
diff --git a/sdk/fidl/fuchsia.sysinfo/fuchsia.sysinfo.api b/sdk/fidl/fuchsia.sysinfo/fuchsia.sysinfo.api
index 57071ba..f1402cd 100644
--- a/sdk/fidl/fuchsia.sysinfo/fuchsia.sysinfo.api
+++ b/sdk/fidl/fuchsia.sysinfo/fuchsia.sysinfo.api
@@ -1,3 +1,3 @@
 {
-  "fidl/fuchsia.sysinfo/sysinfo.fidl": "aa8d145c0b23e2934f80f6191db23ec6"
+  "fidl/fuchsia.sysinfo/sysinfo.fidl": "f1bf2be165325a6f7a217c16bd0ed626"
 }
\ No newline at end of file
diff --git a/zircon/system/dev/board/x86/x86.cc b/zircon/system/dev/board/x86/x86.cc
index f13108f..4e9b7f9 100644
--- a/zircon/system/dev/board/x86/x86.cc
+++ b/zircon/system/dev/board/x86/x86.cc
@@ -140,23 +140,12 @@
     board_name_actual = strlen(board_name) + 1;
   }
 
-  // Publish board name to sysinfo driver.
-  status = DdkPublishMetadata("/dev/misc/sysinfo", DEVICE_METADATA_BOARD_NAME, board_name,
-                              board_name_actual);
-  if (status != ZX_OK) {
-    zxlogf(ERROR, "DdkPublishMetadata(board_name) failed: %d\n", status);
-  }
-
   constexpr uint32_t dummy_board_rev = 42;
-  status = DdkPublishMetadata("/dev/misc/sysinfo", DEVICE_METADATA_BOARD_REVISION, &dummy_board_rev,
-                              sizeof(dummy_board_rev));
-  if (status != ZX_OK) {
-    zxlogf(ERROR, "DdkPublishMetadata(board_revision) failed: %d\n", status);
-  }
 
   // Inform platform bus of our board name.
   pbus_board_info_t board_info = {};
   strlcpy(board_info.board_name, board_name, sizeof(board_info.board_name));
+  board_info.board_revision = dummy_board_rev;
   status = pbus_.SetBoardInfo(&board_info);
   if (status != ZX_OK) {
     zxlogf(ERROR, "SetBoardInfo failed: %d\n", status);
diff --git a/zircon/system/dev/bus/platform/BUILD.gn b/zircon/system/dev/bus/platform/BUILD.gn
index 9250cd0..ae70254 100644
--- a/zircon/system/dev/bus/platform/BUILD.gn
+++ b/zircon/system/dev/bus/platform/BUILD.gn
@@ -26,9 +26,6 @@
     "$zx/system/banjo/ddk.protocol.powerimpl",
     "$zx/system/banjo/ddk.protocol.sysmem",
     "$zx/system/fidl/fuchsia-boot:c",
-
-    #TODO(puneetha) : remove c and keep only llcpp when sysinfo driver is removed
-    "$zx/system/fidl/fuchsia-sysinfo:c",
     "$zx/system/fidl/fuchsia-sysinfo:llcpp",
     "$zx/system/ulib/ddk",
     "$zx/system/ulib/ddktl",
diff --git a/zircon/system/dev/bus/platform/platform-bus.cc b/zircon/system/dev/bus/platform/platform-bus.cc
index 52a428f..ba6920e 100644
--- a/zircon/system/dev/bus/platform/platform-bus.cc
+++ b/zircon/system/dev/bus/platform/platform-bus.cc
@@ -6,7 +6,6 @@
 
 #include <assert.h>
 #include <fuchsia/boot/c/fidl.h>
-#include <fuchsia/sysinfo/c/fidl.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -484,10 +483,8 @@
   // Read kernel driver.
   zx::vmo vmo;
   uint32_t length;
-  uint8_t interrupt_controller_type = fuchsia_sysinfo_InterruptControllerType_UNKNOWN;
 #if __x86_64__
   interrupt_controller_type_ = ::llcpp::fuchsia::sysinfo::InterruptControllerType::APIC;
-  interrupt_controller_type = fuchsia_sysinfo_InterruptControllerType_APIC;
 #else
   status = GetBootItem(ZBI_TYPE_KERNEL_DRIVER, KDRV_ARM_GIC_V2, &vmo, &length);
   if (status != ZX_OK) {
@@ -495,7 +492,6 @@
   }
   if (vmo.is_valid()) {
     interrupt_controller_type_ = ::llcpp::fuchsia::sysinfo::InterruptControllerType::GIC_V2;
-    interrupt_controller_type = fuchsia_sysinfo_InterruptControllerType_GIC_V2;
   }
   status = GetBootItem(ZBI_TYPE_KERNEL_DRIVER, KDRV_ARM_GIC_V3, &vmo, &length);
   if (status != ZX_OK) {
@@ -503,17 +499,8 @@
   }
   if (vmo.is_valid()) {
     interrupt_controller_type_ = ::llcpp::fuchsia::sysinfo::InterruptControllerType::GIC_V3;
-    interrupt_controller_type = fuchsia_sysinfo_InterruptControllerType_GIC_V3;
   }
 #endif
-  // Publish interrupt controller type to sysinfo driver
-  status = device_publish_metadata(parent(), "/dev/misc/sysinfo",
-                                   DEVICE_METADATA_INTERRUPT_CONTROLLER_TYPE,
-                                   &interrupt_controller_type, sizeof(interrupt_controller_type));
-  if (status != ZX_OK) {
-    zxlogf(ERROR, "device_publish_metadata(interrupt_controller_type) failed: %d\n", status);
-    return status;
-  }
 
   // Read platform ID.
   status = GetBootItem(ZBI_TYPE_PLATFORM_ID, 0, &vmo, &length);
@@ -531,13 +518,6 @@
     board_info_.vid = platform_id.vid;
     board_info_.pid = platform_id.pid;
     memcpy(board_info_.board_name, platform_id.board_name, sizeof(board_info_.board_name));
-    // Publish board name to sysinfo driver
-    status = device_publish_metadata(parent(), "/dev/misc/sysinfo", DEVICE_METADATA_BOARD_NAME,
-                                     platform_id.board_name, sizeof(platform_id.board_name));
-    if (status != ZX_OK) {
-      zxlogf(ERROR, "device_publish_metadata(board_name) failed: %d\n", status);
-      return status;
-    }
   } else {
 #if __x86_64__
     // For x86_64, we might not find the ZBI_TYPE_PLATFORM_ID, old bootloaders
@@ -546,15 +526,6 @@
     board_info_.vid = PDEV_VID_INTEL;
     board_info_.pid = PDEV_PID_X86;
     strncpy(board_info_.board_name, "x86_64", sizeof(board_info_.board_name));
-    // Publish board name to sysinfo driver
-    status = device_publish_metadata(parent(), "/dev/misc/sysinfo", DEVICE_METADATA_BOARD_NAME,
-                                     "x86_64", sizeof("x86_64"));
-    if (status != ZX_OK) {
-      zxlogf(ERROR, "device_publish_metadata(board_name) failed: %d\n", status);
-      return status;
-    }
-    // This is optionally set later by the board driver.
-    board_info_.board_revision = 0;
 #else
     zxlogf(ERROR, "platform_bus: ZBI_TYPE_PLATFORM_ID not found\n");
     return ZX_ERR_INTERNAL;
@@ -582,14 +553,6 @@
     zxlogf(ERROR, "Boot Item ZBI_TYPE_DRV_BOARD_INFO not found\n");
   }
 
-  // Publish board revision to sysinfo driver
-  status = device_publish_metadata(parent(), "/dev/misc/sysinfo", DEVICE_METADATA_BOARD_REVISION,
-                                   &board_info_.board_revision, sizeof(board_info_.board_revision));
-  if (status != ZX_OK) {
-    zxlogf(ERROR, "device_publish_metadata(board_revision) failed: %d\n", status);
-    return status;
-  }
-
   // Then we attach the platform-bus device below it.
   zx_device_prop_t props[] = {
       {BIND_PLATFORM_DEV_VID, 0, board_info_.vid},
diff --git a/zircon/system/dev/misc/BUILD.gn b/zircon/system/dev/misc/BUILD.gn
index 0a65ea3..079efef 100644
--- a/zircon/system/dev/misc/BUILD.gn
+++ b/zircon/system/dev/misc/BUILD.gn
@@ -7,7 +7,6 @@
     "builtin",
     "cpu-trace",
     "ktrace",
-    "sysinfo",
     "test",
   ]
 
diff --git a/zircon/system/dev/misc/sysinfo/BUILD.gn b/zircon/system/dev/misc/sysinfo/BUILD.gn
deleted file mode 100644
index feaf254..0000000
--- a/zircon/system/dev/misc/sysinfo/BUILD.gn
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2019 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.
-
-zx_driver("sysinfo") {
-  sources = [ "sysinfo.c" ]
-  deps = [
-    "$zx/system/fidl/fuchsia-sysinfo:c",
-    "$zx/system/ulib/ddk",
-    "$zx/system/ulib/zircon",
-  ]
-}
diff --git a/zircon/system/dev/misc/sysinfo/sysinfo.c b/zircon/system/dev/misc/sysinfo/sysinfo.c
deleted file mode 100644
index 2db7ea3..0000000
--- a/zircon/system/dev/misc/sysinfo/sysinfo.c
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright 2016 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.
-
-#include <fuchsia/sysinfo/c/fidl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <threads.h>
-#include <zircon/boot/image.h>
-#include <zircon/process.h>
-#include <zircon/processargs.h>
-#include <zircon/syscalls/resource.h>
-#include <zircon/types.h>
-
-#include <ddk/binding.h>
-#include <ddk/device.h>
-#include <ddk/driver.h>
-#include <ddk/metadata.h>
-
-typedef struct {
-  zx_device_t* zxdev;
-  mtx_t lock;
-  char board_name[ZBI_BOARD_NAME_LEN];
-  uint32_t board_revision;
-} sysinfo_t;
-
-static zx_status_t fidl_get_hypervisor_resource(void* ctx, fidl_txn_t* txn) {
-  zx_handle_t h;
-  const char name[] = "hypervisor";
-  // Please do not use get_root_resource() in new code. See ZX-1467.
-  zx_status_t status = zx_resource_create(get_root_resource(), ZX_RSRC_KIND_HYPERVISOR, 0, 0, name,
-                                          sizeof(name), &h);
-  return fuchsia_sysinfo_DeviceGetHypervisorResource_reply(txn, status, h);
-}
-
-static zx_status_t fidl_get_board_name(void* ctx, fidl_txn_t* txn) {
-  sysinfo_t* sysinfo = ctx;
-
-  zx_status_t status = ZX_OK;
-
-  mtx_lock(&sysinfo->lock);
-  if (sysinfo->board_name[0] == 0) {
-    size_t actual = 0;
-    status = device_get_metadata(sysinfo->zxdev, DEVICE_METADATA_BOARD_NAME, sysinfo->board_name,
-                                 sizeof(sysinfo->board_name), &actual);
-  }
-  mtx_unlock(&sysinfo->lock);
-
-  size_t board_name_len = strnlen(sysinfo->board_name, sizeof(sysinfo->board_name));
-  return fuchsia_sysinfo_DeviceGetBoardName_reply(txn, status, sysinfo->board_name, board_name_len);
-}
-
-static zx_status_t fidl_get_board_revision(void* ctx, fidl_txn_t* txn) {
-  sysinfo_t* sysinfo = ctx;
-
-  zx_status_t status = ZX_OK;
-
-  mtx_lock(&sysinfo->lock);
-  if (sysinfo->board_revision == 0) {
-    size_t actual = 0;
-    status = device_get_metadata(sysinfo->zxdev, DEVICE_METADATA_BOARD_REVISION,
-                                 &sysinfo->board_revision,
-                                 sizeof(sysinfo->board_revision), &actual);
-  }
-  mtx_unlock(&sysinfo->lock);
-
-  return fuchsia_sysinfo_DeviceGetBoardRevision_reply(txn, status, sysinfo->board_revision);
-}
-
-static zx_status_t fidl_get_interrupt_controller_info(void* ctx, fidl_txn_t* txn) {
-  zx_status_t status = ZX_OK;
-  fuchsia_sysinfo_InterruptControllerInfo info = {};
-
-#if defined(__aarch64__)
-  sysinfo_t* sysinfo = ctx;
-  size_t actual = 0;
-  status = device_get_metadata(sysinfo->zxdev, DEVICE_METADATA_INTERRUPT_CONTROLLER_TYPE,
-                               &info.type, sizeof(uint8_t), &actual);
-#elif defined(__x86_64__)
-  info.type = fuchsia_sysinfo_InterruptControllerType_APIC;
-#else
-  info.type = fuchsia_sysinfo_InterruptControllerType_UNKNOWN;
-#endif
-
-  return fuchsia_sysinfo_DeviceGetInterruptControllerInfo_reply(txn, status, &info);
-}
-
-static fuchsia_sysinfo_Device_ops_t fidl_ops = {
-    .GetHypervisorResource = fidl_get_hypervisor_resource,
-    .GetBoardName = fidl_get_board_name,
-    .GetBoardRevision = fidl_get_board_revision,
-    .GetInterruptControllerInfo = fidl_get_interrupt_controller_info,
-};
-
-static zx_status_t sysinfo_message(void* ctx, fidl_msg_t* msg, fidl_txn_t* txn) {
-  return fuchsia_sysinfo_Device_dispatch(ctx, txn, msg, &fidl_ops);
-}
-
-static zx_protocol_device_t sysinfo_ops = {
-    .version = DEVICE_OPS_VERSION,
-    .message = sysinfo_message,
-};
-
-zx_status_t sysinfo_bind(void* ctx, zx_device_t* parent) {
-  sysinfo_t* sysinfo = calloc(1, sizeof(sysinfo_t));
-  if (!sysinfo) {
-    return ZX_ERR_NO_MEMORY;
-  }
-
-  mtx_init(&sysinfo->lock, mtx_plain);
-
-  device_add_args_t args = {
-      .version = DEVICE_ADD_ARGS_VERSION,
-      .name = "sysinfo",
-      .ctx = sysinfo,
-      .ops = &sysinfo_ops,
-  };
-
-  return device_add(parent, &args, &sysinfo->zxdev);
-}
-
-static zx_driver_ops_t sysinfo_driver_ops = {
-    .version = DRIVER_OPS_VERSION,
-    .bind = sysinfo_bind,
-};
-
-ZIRCON_DRIVER_BEGIN(sysinfo, sysinfo_driver_ops, "zircon", "0.1", 1)
-BI_MATCH_IF(EQ, BIND_PROTOCOL, ZX_PROTOCOL_MISC_PARENT), ZIRCON_DRIVER_END(sysinfo)
diff --git a/zircon/system/fidl/fuchsia-sysinfo/gen/llcpp/fidl.cc b/zircon/system/fidl/fuchsia-sysinfo/gen/llcpp/fidl.cc
index a7b70c5..eccb130 100644
--- a/zircon/system/fidl/fuchsia-sysinfo/gen/llcpp/fidl.cc
+++ b/zircon/system/fidl/fuchsia-sysinfo/gen/llcpp/fidl.cc
@@ -11,563 +11,6 @@
 namespace {
 
 [[maybe_unused]]
-constexpr uint64_t kDevice_GetHypervisorResource_Ordinal = 0x3868a16b00000000lu;
-[[maybe_unused]]
-constexpr uint64_t kDevice_GetHypervisorResource_GenOrdinal = 0x71ec9fedac51e7flu;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetHypervisorResourceRequestTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetHypervisorResourceResponseTable;
-[[maybe_unused]]
-constexpr uint64_t kDevice_GetBoardName_Ordinal = 0x68768b6d00000000lu;
-[[maybe_unused]]
-constexpr uint64_t kDevice_GetBoardName_GenOrdinal = 0x3e5b005c54d54d8alu;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetBoardNameRequestTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetBoardNameResponseTable;
-[[maybe_unused]]
-constexpr uint64_t kDevice_GetBoardRevision_Ordinal = 0x77e43d7900000000lu;
-[[maybe_unused]]
-constexpr uint64_t kDevice_GetBoardRevision_GenOrdinal = 0x37d6e2fe633b7f4blu;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetBoardRevisionRequestTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetBoardRevisionResponseTable;
-[[maybe_unused]]
-constexpr uint64_t kDevice_GetInterruptControllerInfo_Ordinal = 0x5f8bb9e400000000lu;
-[[maybe_unused]]
-constexpr uint64_t kDevice_GetInterruptControllerInfo_GenOrdinal = 0x5d276f3ebc0b70b6lu;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetInterruptControllerInfoRequestTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetInterruptControllerInfoResponseTable;
-
-}  // namespace
-template <>
-Device::ResultOf::GetHypervisorResource_Impl<Device::GetHypervisorResourceResponse>::GetHypervisorResource_Impl(::zx::unowned_channel _client_end) {
-  constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<GetHypervisorResourceRequest, ::fidl::MessageDirection::kSending>();
-  ::fidl::internal::AlignedBuffer<_kWriteAllocSize> _write_bytes_inlined;
-  auto& _write_bytes_array = _write_bytes_inlined;
-  uint8_t* _write_bytes = _write_bytes_array.view().data();
-  memset(_write_bytes, 0, GetHypervisorResourceRequest::PrimarySize);
-  ::fidl::BytePart _request_bytes(_write_bytes, _kWriteAllocSize, sizeof(GetHypervisorResourceRequest));
-  ::fidl::DecodedMessage<GetHypervisorResourceRequest> _decoded_request(std::move(_request_bytes));
-  Super::SetResult(
-      Device::InPlace::GetHypervisorResource(std::move(_client_end), Super::response_buffer()));
-}
-
-Device::ResultOf::GetHypervisorResource Device::SyncClient::GetHypervisorResource() {
-    return ResultOf::GetHypervisorResource(::zx::unowned_channel(this->channel_));
-}
-
-Device::ResultOf::GetHypervisorResource Device::Call::GetHypervisorResource(::zx::unowned_channel _client_end) {
-  return ResultOf::GetHypervisorResource(std::move(_client_end));
-}
-
-template <>
-Device::UnownedResultOf::GetHypervisorResource_Impl<Device::GetHypervisorResourceResponse>::GetHypervisorResource_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer) {
-  FIDL_ALIGNDECL uint8_t _write_bytes[sizeof(GetHypervisorResourceRequest)] = {};
-  ::fidl::BytePart _request_buffer(_write_bytes, sizeof(_write_bytes));
-  memset(_request_buffer.data(), 0, GetHypervisorResourceRequest::PrimarySize);
-  _request_buffer.set_actual(sizeof(GetHypervisorResourceRequest));
-  ::fidl::DecodedMessage<GetHypervisorResourceRequest> _decoded_request(std::move(_request_buffer));
-  Super::SetResult(
-      Device::InPlace::GetHypervisorResource(std::move(_client_end), std::move(_response_buffer)));
-}
-
-Device::UnownedResultOf::GetHypervisorResource Device::SyncClient::GetHypervisorResource(::fidl::BytePart _response_buffer) {
-  return UnownedResultOf::GetHypervisorResource(::zx::unowned_channel(this->channel_), std::move(_response_buffer));
-}
-
-Device::UnownedResultOf::GetHypervisorResource Device::Call::GetHypervisorResource(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer) {
-  return UnownedResultOf::GetHypervisorResource(std::move(_client_end), std::move(_response_buffer));
-}
-
-::fidl::DecodeResult<Device::GetHypervisorResourceResponse> Device::InPlace::GetHypervisorResource(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer) {
-  constexpr uint32_t _write_num_bytes = sizeof(GetHypervisorResourceRequest);
-  ::fidl::internal::AlignedBuffer<_write_num_bytes> _write_bytes;
-  ::fidl::BytePart _request_buffer = _write_bytes.view();
-  _request_buffer.set_actual(_write_num_bytes);
-  ::fidl::DecodedMessage<GetHypervisorResourceRequest> params(std::move(_request_buffer));
-  Device::SetTransactionHeaderFor::GetHypervisorResourceRequest(params);
-  auto _encode_request_result = ::fidl::Encode(std::move(params));
-  if (_encode_request_result.status != ZX_OK) {
-    return ::fidl::DecodeResult<Device::GetHypervisorResourceResponse>::FromFailure(
-        std::move(_encode_request_result));
-  }
-  auto _call_result = ::fidl::Call<GetHypervisorResourceRequest, GetHypervisorResourceResponse>(
-    std::move(_client_end), std::move(_encode_request_result.message), std::move(response_buffer));
-  if (_call_result.status != ZX_OK) {
-    return ::fidl::DecodeResult<Device::GetHypervisorResourceResponse>::FromFailure(
-        std::move(_call_result));
-  }
-  return ::fidl::Decode(std::move(_call_result.message));
-}
-
-template <>
-Device::ResultOf::GetBoardName_Impl<Device::GetBoardNameResponse>::GetBoardName_Impl(::zx::unowned_channel _client_end) {
-  constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<GetBoardNameRequest, ::fidl::MessageDirection::kSending>();
-  ::fidl::internal::AlignedBuffer<_kWriteAllocSize> _write_bytes_inlined;
-  auto& _write_bytes_array = _write_bytes_inlined;
-  uint8_t* _write_bytes = _write_bytes_array.view().data();
-  memset(_write_bytes, 0, GetBoardNameRequest::PrimarySize);
-  ::fidl::BytePart _request_bytes(_write_bytes, _kWriteAllocSize, sizeof(GetBoardNameRequest));
-  ::fidl::DecodedMessage<GetBoardNameRequest> _decoded_request(std::move(_request_bytes));
-  Super::SetResult(
-      Device::InPlace::GetBoardName(std::move(_client_end), Super::response_buffer()));
-}
-
-Device::ResultOf::GetBoardName Device::SyncClient::GetBoardName() {
-    return ResultOf::GetBoardName(::zx::unowned_channel(this->channel_));
-}
-
-Device::ResultOf::GetBoardName Device::Call::GetBoardName(::zx::unowned_channel _client_end) {
-  return ResultOf::GetBoardName(std::move(_client_end));
-}
-
-template <>
-Device::UnownedResultOf::GetBoardName_Impl<Device::GetBoardNameResponse>::GetBoardName_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer) {
-  FIDL_ALIGNDECL uint8_t _write_bytes[sizeof(GetBoardNameRequest)] = {};
-  ::fidl::BytePart _request_buffer(_write_bytes, sizeof(_write_bytes));
-  memset(_request_buffer.data(), 0, GetBoardNameRequest::PrimarySize);
-  _request_buffer.set_actual(sizeof(GetBoardNameRequest));
-  ::fidl::DecodedMessage<GetBoardNameRequest> _decoded_request(std::move(_request_buffer));
-  Super::SetResult(
-      Device::InPlace::GetBoardName(std::move(_client_end), std::move(_response_buffer)));
-}
-
-Device::UnownedResultOf::GetBoardName Device::SyncClient::GetBoardName(::fidl::BytePart _response_buffer) {
-  return UnownedResultOf::GetBoardName(::zx::unowned_channel(this->channel_), std::move(_response_buffer));
-}
-
-Device::UnownedResultOf::GetBoardName Device::Call::GetBoardName(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer) {
-  return UnownedResultOf::GetBoardName(std::move(_client_end), std::move(_response_buffer));
-}
-
-::fidl::DecodeResult<Device::GetBoardNameResponse> Device::InPlace::GetBoardName(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer) {
-  constexpr uint32_t _write_num_bytes = sizeof(GetBoardNameRequest);
-  ::fidl::internal::AlignedBuffer<_write_num_bytes> _write_bytes;
-  ::fidl::BytePart _request_buffer = _write_bytes.view();
-  _request_buffer.set_actual(_write_num_bytes);
-  ::fidl::DecodedMessage<GetBoardNameRequest> params(std::move(_request_buffer));
-  Device::SetTransactionHeaderFor::GetBoardNameRequest(params);
-  auto _encode_request_result = ::fidl::Encode(std::move(params));
-  if (_encode_request_result.status != ZX_OK) {
-    return ::fidl::DecodeResult<Device::GetBoardNameResponse>::FromFailure(
-        std::move(_encode_request_result));
-  }
-  auto _call_result = ::fidl::Call<GetBoardNameRequest, GetBoardNameResponse>(
-    std::move(_client_end), std::move(_encode_request_result.message), std::move(response_buffer));
-  if (_call_result.status != ZX_OK) {
-    return ::fidl::DecodeResult<Device::GetBoardNameResponse>::FromFailure(
-        std::move(_call_result));
-  }
-  return ::fidl::Decode(std::move(_call_result.message));
-}
-
-template <>
-Device::ResultOf::GetBoardRevision_Impl<Device::GetBoardRevisionResponse>::GetBoardRevision_Impl(::zx::unowned_channel _client_end) {
-  constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<GetBoardRevisionRequest, ::fidl::MessageDirection::kSending>();
-  ::fidl::internal::AlignedBuffer<_kWriteAllocSize> _write_bytes_inlined;
-  auto& _write_bytes_array = _write_bytes_inlined;
-  uint8_t* _write_bytes = _write_bytes_array.view().data();
-  memset(_write_bytes, 0, GetBoardRevisionRequest::PrimarySize);
-  ::fidl::BytePart _request_bytes(_write_bytes, _kWriteAllocSize, sizeof(GetBoardRevisionRequest));
-  ::fidl::DecodedMessage<GetBoardRevisionRequest> _decoded_request(std::move(_request_bytes));
-  Super::SetResult(
-      Device::InPlace::GetBoardRevision(std::move(_client_end), Super::response_buffer()));
-}
-
-Device::ResultOf::GetBoardRevision Device::SyncClient::GetBoardRevision() {
-    return ResultOf::GetBoardRevision(::zx::unowned_channel(this->channel_));
-}
-
-Device::ResultOf::GetBoardRevision Device::Call::GetBoardRevision(::zx::unowned_channel _client_end) {
-  return ResultOf::GetBoardRevision(std::move(_client_end));
-}
-
-template <>
-Device::UnownedResultOf::GetBoardRevision_Impl<Device::GetBoardRevisionResponse>::GetBoardRevision_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer) {
-  FIDL_ALIGNDECL uint8_t _write_bytes[sizeof(GetBoardRevisionRequest)] = {};
-  ::fidl::BytePart _request_buffer(_write_bytes, sizeof(_write_bytes));
-  memset(_request_buffer.data(), 0, GetBoardRevisionRequest::PrimarySize);
-  _request_buffer.set_actual(sizeof(GetBoardRevisionRequest));
-  ::fidl::DecodedMessage<GetBoardRevisionRequest> _decoded_request(std::move(_request_buffer));
-  Super::SetResult(
-      Device::InPlace::GetBoardRevision(std::move(_client_end), std::move(_response_buffer)));
-}
-
-Device::UnownedResultOf::GetBoardRevision Device::SyncClient::GetBoardRevision(::fidl::BytePart _response_buffer) {
-  return UnownedResultOf::GetBoardRevision(::zx::unowned_channel(this->channel_), std::move(_response_buffer));
-}
-
-Device::UnownedResultOf::GetBoardRevision Device::Call::GetBoardRevision(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer) {
-  return UnownedResultOf::GetBoardRevision(std::move(_client_end), std::move(_response_buffer));
-}
-
-::fidl::DecodeResult<Device::GetBoardRevisionResponse> Device::InPlace::GetBoardRevision(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer) {
-  constexpr uint32_t _write_num_bytes = sizeof(GetBoardRevisionRequest);
-  ::fidl::internal::AlignedBuffer<_write_num_bytes> _write_bytes;
-  ::fidl::BytePart _request_buffer = _write_bytes.view();
-  _request_buffer.set_actual(_write_num_bytes);
-  ::fidl::DecodedMessage<GetBoardRevisionRequest> params(std::move(_request_buffer));
-  Device::SetTransactionHeaderFor::GetBoardRevisionRequest(params);
-  auto _encode_request_result = ::fidl::Encode(std::move(params));
-  if (_encode_request_result.status != ZX_OK) {
-    return ::fidl::DecodeResult<Device::GetBoardRevisionResponse>::FromFailure(
-        std::move(_encode_request_result));
-  }
-  auto _call_result = ::fidl::Call<GetBoardRevisionRequest, GetBoardRevisionResponse>(
-    std::move(_client_end), std::move(_encode_request_result.message), std::move(response_buffer));
-  if (_call_result.status != ZX_OK) {
-    return ::fidl::DecodeResult<Device::GetBoardRevisionResponse>::FromFailure(
-        std::move(_call_result));
-  }
-  return ::fidl::Decode(std::move(_call_result.message));
-}
-
-template <>
-Device::ResultOf::GetInterruptControllerInfo_Impl<Device::GetInterruptControllerInfoResponse>::GetInterruptControllerInfo_Impl(::zx::unowned_channel _client_end) {
-  constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<GetInterruptControllerInfoRequest, ::fidl::MessageDirection::kSending>();
-  ::fidl::internal::AlignedBuffer<_kWriteAllocSize> _write_bytes_inlined;
-  auto& _write_bytes_array = _write_bytes_inlined;
-  uint8_t* _write_bytes = _write_bytes_array.view().data();
-  memset(_write_bytes, 0, GetInterruptControllerInfoRequest::PrimarySize);
-  ::fidl::BytePart _request_bytes(_write_bytes, _kWriteAllocSize, sizeof(GetInterruptControllerInfoRequest));
-  ::fidl::DecodedMessage<GetInterruptControllerInfoRequest> _decoded_request(std::move(_request_bytes));
-  Super::SetResult(
-      Device::InPlace::GetInterruptControllerInfo(std::move(_client_end), Super::response_buffer()));
-}
-
-Device::ResultOf::GetInterruptControllerInfo Device::SyncClient::GetInterruptControllerInfo() {
-    return ResultOf::GetInterruptControllerInfo(::zx::unowned_channel(this->channel_));
-}
-
-Device::ResultOf::GetInterruptControllerInfo Device::Call::GetInterruptControllerInfo(::zx::unowned_channel _client_end) {
-  return ResultOf::GetInterruptControllerInfo(std::move(_client_end));
-}
-
-template <>
-Device::UnownedResultOf::GetInterruptControllerInfo_Impl<Device::GetInterruptControllerInfoResponse>::GetInterruptControllerInfo_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer) {
-  FIDL_ALIGNDECL uint8_t _write_bytes[sizeof(GetInterruptControllerInfoRequest)] = {};
-  ::fidl::BytePart _request_buffer(_write_bytes, sizeof(_write_bytes));
-  memset(_request_buffer.data(), 0, GetInterruptControllerInfoRequest::PrimarySize);
-  _request_buffer.set_actual(sizeof(GetInterruptControllerInfoRequest));
-  ::fidl::DecodedMessage<GetInterruptControllerInfoRequest> _decoded_request(std::move(_request_buffer));
-  Super::SetResult(
-      Device::InPlace::GetInterruptControllerInfo(std::move(_client_end), std::move(_response_buffer)));
-}
-
-Device::UnownedResultOf::GetInterruptControllerInfo Device::SyncClient::GetInterruptControllerInfo(::fidl::BytePart _response_buffer) {
-  return UnownedResultOf::GetInterruptControllerInfo(::zx::unowned_channel(this->channel_), std::move(_response_buffer));
-}
-
-Device::UnownedResultOf::GetInterruptControllerInfo Device::Call::GetInterruptControllerInfo(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer) {
-  return UnownedResultOf::GetInterruptControllerInfo(std::move(_client_end), std::move(_response_buffer));
-}
-
-::fidl::DecodeResult<Device::GetInterruptControllerInfoResponse> Device::InPlace::GetInterruptControllerInfo(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer) {
-  constexpr uint32_t _write_num_bytes = sizeof(GetInterruptControllerInfoRequest);
-  ::fidl::internal::AlignedBuffer<_write_num_bytes> _write_bytes;
-  ::fidl::BytePart _request_buffer = _write_bytes.view();
-  _request_buffer.set_actual(_write_num_bytes);
-  ::fidl::DecodedMessage<GetInterruptControllerInfoRequest> params(std::move(_request_buffer));
-  Device::SetTransactionHeaderFor::GetInterruptControllerInfoRequest(params);
-  auto _encode_request_result = ::fidl::Encode(std::move(params));
-  if (_encode_request_result.status != ZX_OK) {
-    return ::fidl::DecodeResult<Device::GetInterruptControllerInfoResponse>::FromFailure(
-        std::move(_encode_request_result));
-  }
-  auto _call_result = ::fidl::Call<GetInterruptControllerInfoRequest, GetInterruptControllerInfoResponse>(
-    std::move(_client_end), std::move(_encode_request_result.message), std::move(response_buffer));
-  if (_call_result.status != ZX_OK) {
-    return ::fidl::DecodeResult<Device::GetInterruptControllerInfoResponse>::FromFailure(
-        std::move(_call_result));
-  }
-  return ::fidl::Decode(std::move(_call_result.message));
-}
-
-
-bool Device::TryDispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn) {
-  if (msg->num_bytes < sizeof(fidl_message_header_t)) {
-    zx_handle_close_many(msg->handles, msg->num_handles);
-    txn->Close(ZX_ERR_INVALID_ARGS);
-    return true;
-  }
-  fidl_message_header_t* hdr = reinterpret_cast<fidl_message_header_t*>(msg->bytes);
-  zx_status_t status = fidl_validate_txn_header(hdr);
-  if (status != ZX_OK) {
-    txn->Close(status);
-    return true;
-  }
-  switch (hdr->ordinal) {
-    case kDevice_GetHypervisorResource_Ordinal:
-    case kDevice_GetHypervisorResource_GenOrdinal:
-    {
-      auto result = ::fidl::DecodeAs<GetHypervisorResourceRequest>(msg);
-      if (result.status != ZX_OK) {
-        txn->Close(ZX_ERR_INVALID_ARGS);
-        return true;
-      }
-      impl->GetHypervisorResource(
-          Interface::GetHypervisorResourceCompleter::Sync(txn));
-      return true;
-    }
-    case kDevice_GetBoardName_Ordinal:
-    case kDevice_GetBoardName_GenOrdinal:
-    {
-      auto result = ::fidl::DecodeAs<GetBoardNameRequest>(msg);
-      if (result.status != ZX_OK) {
-        txn->Close(ZX_ERR_INVALID_ARGS);
-        return true;
-      }
-      impl->GetBoardName(
-          Interface::GetBoardNameCompleter::Sync(txn));
-      return true;
-    }
-    case kDevice_GetBoardRevision_Ordinal:
-    case kDevice_GetBoardRevision_GenOrdinal:
-    {
-      auto result = ::fidl::DecodeAs<GetBoardRevisionRequest>(msg);
-      if (result.status != ZX_OK) {
-        txn->Close(ZX_ERR_INVALID_ARGS);
-        return true;
-      }
-      impl->GetBoardRevision(
-          Interface::GetBoardRevisionCompleter::Sync(txn));
-      return true;
-    }
-    case kDevice_GetInterruptControllerInfo_Ordinal:
-    case kDevice_GetInterruptControllerInfo_GenOrdinal:
-    {
-      auto result = ::fidl::DecodeAs<GetInterruptControllerInfoRequest>(msg);
-      if (result.status != ZX_OK) {
-        txn->Close(ZX_ERR_INVALID_ARGS);
-        return true;
-      }
-      impl->GetInterruptControllerInfo(
-          Interface::GetInterruptControllerInfoCompleter::Sync(txn));
-      return true;
-    }
-    default: {
-      return false;
-    }
-  }
-}
-
-bool Device::Dispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn) {
-  bool found = TryDispatch(impl, msg, txn);
-  if (!found) {
-    zx_handle_close_many(msg->handles, msg->num_handles);
-    txn->Close(ZX_ERR_NOT_SUPPORTED);
-  }
-  return found;
-}
-
-
-void Device::Interface::GetHypervisorResourceCompleterBase::Reply(int32_t status, ::zx::resource resource) {
-  constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<GetHypervisorResourceResponse, ::fidl::MessageDirection::kSending>();
-  FIDL_ALIGNDECL uint8_t _write_bytes[_kWriteAllocSize] = {};
-  auto& _response = *reinterpret_cast<GetHypervisorResourceResponse*>(_write_bytes);
-  Device::SetTransactionHeaderFor::GetHypervisorResourceResponse(
-      ::fidl::DecodedMessage<GetHypervisorResourceResponse>(
-          ::fidl::BytePart(reinterpret_cast<uint8_t*>(&_response),
-              GetHypervisorResourceResponse::PrimarySize,
-              GetHypervisorResourceResponse::PrimarySize)));
-  _response.status = std::move(status);
-  _response.resource = std::move(resource);
-  ::fidl::BytePart _response_bytes(_write_bytes, _kWriteAllocSize, sizeof(GetHypervisorResourceResponse));
-  CompleterBase::SendReply(::fidl::DecodedMessage<GetHypervisorResourceResponse>(std::move(_response_bytes)));
-}
-
-void Device::Interface::GetHypervisorResourceCompleterBase::Reply(::fidl::BytePart _buffer, int32_t status, ::zx::resource resource) {
-  if (_buffer.capacity() < GetHypervisorResourceResponse::PrimarySize) {
-    CompleterBase::Close(ZX_ERR_INTERNAL);
-    return;
-  }
-  auto& _response = *reinterpret_cast<GetHypervisorResourceResponse*>(_buffer.data());
-  Device::SetTransactionHeaderFor::GetHypervisorResourceResponse(
-      ::fidl::DecodedMessage<GetHypervisorResourceResponse>(
-          ::fidl::BytePart(reinterpret_cast<uint8_t*>(&_response),
-              GetHypervisorResourceResponse::PrimarySize,
-              GetHypervisorResourceResponse::PrimarySize)));
-  _response.status = std::move(status);
-  _response.resource = std::move(resource);
-  _buffer.set_actual(sizeof(GetHypervisorResourceResponse));
-  CompleterBase::SendReply(::fidl::DecodedMessage<GetHypervisorResourceResponse>(std::move(_buffer)));
-}
-
-void Device::Interface::GetHypervisorResourceCompleterBase::Reply(::fidl::DecodedMessage<GetHypervisorResourceResponse> params) {
-  Device::SetTransactionHeaderFor::GetHypervisorResourceResponse(params);
-  CompleterBase::SendReply(std::move(params));
-}
-
-
-void Device::Interface::GetBoardNameCompleterBase::Reply(int32_t status, ::fidl::StringView name) {
-  constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<GetBoardNameResponse, ::fidl::MessageDirection::kSending>();
-  FIDL_ALIGNDECL uint8_t _write_bytes[_kWriteAllocSize];
-  GetBoardNameResponse _response = {};
-  Device::SetTransactionHeaderFor::GetBoardNameResponse(
-      ::fidl::DecodedMessage<GetBoardNameResponse>(
-          ::fidl::BytePart(reinterpret_cast<uint8_t*>(&_response),
-              GetBoardNameResponse::PrimarySize,
-              GetBoardNameResponse::PrimarySize)));
-  _response.status = std::move(status);
-  _response.name = std::move(name);
-  auto _linearize_result = ::fidl::Linearize(&_response, ::fidl::BytePart(_write_bytes,
-                                                                          _kWriteAllocSize));
-  if (_linearize_result.status != ZX_OK) {
-    CompleterBase::Close(ZX_ERR_INTERNAL);
-    return;
-  }
-  CompleterBase::SendReply(std::move(_linearize_result.message));
-}
-
-void Device::Interface::GetBoardNameCompleterBase::Reply(::fidl::BytePart _buffer, int32_t status, ::fidl::StringView name) {
-  if (_buffer.capacity() < GetBoardNameResponse::PrimarySize) {
-    CompleterBase::Close(ZX_ERR_INTERNAL);
-    return;
-  }
-  GetBoardNameResponse _response = {};
-  Device::SetTransactionHeaderFor::GetBoardNameResponse(
-      ::fidl::DecodedMessage<GetBoardNameResponse>(
-          ::fidl::BytePart(reinterpret_cast<uint8_t*>(&_response),
-              GetBoardNameResponse::PrimarySize,
-              GetBoardNameResponse::PrimarySize)));
-  _response.status = std::move(status);
-  _response.name = std::move(name);
-  auto _linearize_result = ::fidl::Linearize(&_response, std::move(_buffer));
-  if (_linearize_result.status != ZX_OK) {
-    CompleterBase::Close(ZX_ERR_INTERNAL);
-    return;
-  }
-  CompleterBase::SendReply(std::move(_linearize_result.message));
-}
-
-void Device::Interface::GetBoardNameCompleterBase::Reply(::fidl::DecodedMessage<GetBoardNameResponse> params) {
-  Device::SetTransactionHeaderFor::GetBoardNameResponse(params);
-  CompleterBase::SendReply(std::move(params));
-}
-
-
-void Device::Interface::GetBoardRevisionCompleterBase::Reply(int32_t status, uint32_t revision) {
-  constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<GetBoardRevisionResponse, ::fidl::MessageDirection::kSending>();
-  FIDL_ALIGNDECL uint8_t _write_bytes[_kWriteAllocSize] = {};
-  auto& _response = *reinterpret_cast<GetBoardRevisionResponse*>(_write_bytes);
-  Device::SetTransactionHeaderFor::GetBoardRevisionResponse(
-      ::fidl::DecodedMessage<GetBoardRevisionResponse>(
-          ::fidl::BytePart(reinterpret_cast<uint8_t*>(&_response),
-              GetBoardRevisionResponse::PrimarySize,
-              GetBoardRevisionResponse::PrimarySize)));
-  _response.status = std::move(status);
-  _response.revision = std::move(revision);
-  ::fidl::BytePart _response_bytes(_write_bytes, _kWriteAllocSize, sizeof(GetBoardRevisionResponse));
-  CompleterBase::SendReply(::fidl::DecodedMessage<GetBoardRevisionResponse>(std::move(_response_bytes)));
-}
-
-void Device::Interface::GetBoardRevisionCompleterBase::Reply(::fidl::BytePart _buffer, int32_t status, uint32_t revision) {
-  if (_buffer.capacity() < GetBoardRevisionResponse::PrimarySize) {
-    CompleterBase::Close(ZX_ERR_INTERNAL);
-    return;
-  }
-  auto& _response = *reinterpret_cast<GetBoardRevisionResponse*>(_buffer.data());
-  Device::SetTransactionHeaderFor::GetBoardRevisionResponse(
-      ::fidl::DecodedMessage<GetBoardRevisionResponse>(
-          ::fidl::BytePart(reinterpret_cast<uint8_t*>(&_response),
-              GetBoardRevisionResponse::PrimarySize,
-              GetBoardRevisionResponse::PrimarySize)));
-  _response.status = std::move(status);
-  _response.revision = std::move(revision);
-  _buffer.set_actual(sizeof(GetBoardRevisionResponse));
-  CompleterBase::SendReply(::fidl::DecodedMessage<GetBoardRevisionResponse>(std::move(_buffer)));
-}
-
-void Device::Interface::GetBoardRevisionCompleterBase::Reply(::fidl::DecodedMessage<GetBoardRevisionResponse> params) {
-  Device::SetTransactionHeaderFor::GetBoardRevisionResponse(params);
-  CompleterBase::SendReply(std::move(params));
-}
-
-
-void Device::Interface::GetInterruptControllerInfoCompleterBase::Reply(int32_t status, ::llcpp::fuchsia::sysinfo::InterruptControllerInfo* info) {
-  constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<GetInterruptControllerInfoResponse, ::fidl::MessageDirection::kSending>();
-  FIDL_ALIGNDECL uint8_t _write_bytes[_kWriteAllocSize];
-  GetInterruptControllerInfoResponse _response = {};
-  Device::SetTransactionHeaderFor::GetInterruptControllerInfoResponse(
-      ::fidl::DecodedMessage<GetInterruptControllerInfoResponse>(
-          ::fidl::BytePart(reinterpret_cast<uint8_t*>(&_response),
-              GetInterruptControllerInfoResponse::PrimarySize,
-              GetInterruptControllerInfoResponse::PrimarySize)));
-  _response.status = std::move(status);
-  _response.info = std::move(info);
-  auto _linearize_result = ::fidl::Linearize(&_response, ::fidl::BytePart(_write_bytes,
-                                                                          _kWriteAllocSize));
-  if (_linearize_result.status != ZX_OK) {
-    CompleterBase::Close(ZX_ERR_INTERNAL);
-    return;
-  }
-  CompleterBase::SendReply(std::move(_linearize_result.message));
-}
-
-void Device::Interface::GetInterruptControllerInfoCompleterBase::Reply(::fidl::BytePart _buffer, int32_t status, ::llcpp::fuchsia::sysinfo::InterruptControllerInfo* info) {
-  if (_buffer.capacity() < GetInterruptControllerInfoResponse::PrimarySize) {
-    CompleterBase::Close(ZX_ERR_INTERNAL);
-    return;
-  }
-  GetInterruptControllerInfoResponse _response = {};
-  Device::SetTransactionHeaderFor::GetInterruptControllerInfoResponse(
-      ::fidl::DecodedMessage<GetInterruptControllerInfoResponse>(
-          ::fidl::BytePart(reinterpret_cast<uint8_t*>(&_response),
-              GetInterruptControllerInfoResponse::PrimarySize,
-              GetInterruptControllerInfoResponse::PrimarySize)));
-  _response.status = std::move(status);
-  _response.info = std::move(info);
-  auto _linearize_result = ::fidl::Linearize(&_response, std::move(_buffer));
-  if (_linearize_result.status != ZX_OK) {
-    CompleterBase::Close(ZX_ERR_INTERNAL);
-    return;
-  }
-  CompleterBase::SendReply(std::move(_linearize_result.message));
-}
-
-void Device::Interface::GetInterruptControllerInfoCompleterBase::Reply(::fidl::DecodedMessage<GetInterruptControllerInfoResponse> params) {
-  Device::SetTransactionHeaderFor::GetInterruptControllerInfoResponse(params);
-  CompleterBase::SendReply(std::move(params));
-}
-
-
-
-void Device::SetTransactionHeaderFor::GetHypervisorResourceRequest(const ::fidl::DecodedMessage<Device::GetHypervisorResourceRequest>& _msg) {
-  fidl_init_txn_header(&_msg.message()->_hdr, 0, kDevice_GetHypervisorResource_GenOrdinal);
-  _msg.message()->_hdr.flags[0] |= FIDL_TXN_HEADER_UNION_FROM_XUNION_FLAG;
-}
-void Device::SetTransactionHeaderFor::GetHypervisorResourceResponse(const ::fidl::DecodedMessage<Device::GetHypervisorResourceResponse>& _msg) {
-  fidl_init_txn_header(&_msg.message()->_hdr, 0, kDevice_GetHypervisorResource_GenOrdinal);
-  _msg.message()->_hdr.flags[0] |= FIDL_TXN_HEADER_UNION_FROM_XUNION_FLAG;
-}
-
-void Device::SetTransactionHeaderFor::GetBoardNameRequest(const ::fidl::DecodedMessage<Device::GetBoardNameRequest>& _msg) {
-  fidl_init_txn_header(&_msg.message()->_hdr, 0, kDevice_GetBoardName_GenOrdinal);
-  _msg.message()->_hdr.flags[0] |= FIDL_TXN_HEADER_UNION_FROM_XUNION_FLAG;
-}
-void Device::SetTransactionHeaderFor::GetBoardNameResponse(const ::fidl::DecodedMessage<Device::GetBoardNameResponse>& _msg) {
-  fidl_init_txn_header(&_msg.message()->_hdr, 0, kDevice_GetBoardName_GenOrdinal);
-  _msg.message()->_hdr.flags[0] |= FIDL_TXN_HEADER_UNION_FROM_XUNION_FLAG;
-}
-
-void Device::SetTransactionHeaderFor::GetBoardRevisionRequest(const ::fidl::DecodedMessage<Device::GetBoardRevisionRequest>& _msg) {
-  fidl_init_txn_header(&_msg.message()->_hdr, 0, kDevice_GetBoardRevision_GenOrdinal);
-  _msg.message()->_hdr.flags[0] |= FIDL_TXN_HEADER_UNION_FROM_XUNION_FLAG;
-}
-void Device::SetTransactionHeaderFor::GetBoardRevisionResponse(const ::fidl::DecodedMessage<Device::GetBoardRevisionResponse>& _msg) {
-  fidl_init_txn_header(&_msg.message()->_hdr, 0, kDevice_GetBoardRevision_GenOrdinal);
-  _msg.message()->_hdr.flags[0] |= FIDL_TXN_HEADER_UNION_FROM_XUNION_FLAG;
-}
-
-void Device::SetTransactionHeaderFor::GetInterruptControllerInfoRequest(const ::fidl::DecodedMessage<Device::GetInterruptControllerInfoRequest>& _msg) {
-  fidl_init_txn_header(&_msg.message()->_hdr, 0, kDevice_GetInterruptControllerInfo_GenOrdinal);
-  _msg.message()->_hdr.flags[0] |= FIDL_TXN_HEADER_UNION_FROM_XUNION_FLAG;
-}
-void Device::SetTransactionHeaderFor::GetInterruptControllerInfoResponse(const ::fidl::DecodedMessage<Device::GetInterruptControllerInfoResponse>& _msg) {
-  fidl_init_txn_header(&_msg.message()->_hdr, 0, kDevice_GetInterruptControllerInfo_GenOrdinal);
-  _msg.message()->_hdr.flags[0] |= FIDL_TXN_HEADER_UNION_FROM_XUNION_FLAG;
-}
-
-namespace {
-
-[[maybe_unused]]
 constexpr uint64_t kSysInfo_GetHypervisorResource_Ordinal = 0x4682e82d00000000lu;
 [[maybe_unused]]
 constexpr uint64_t kSysInfo_GetHypervisorResource_GenOrdinal = 0x1ab9d2b80bbb43a4lu;
diff --git a/zircon/system/fidl/fuchsia-sysinfo/gen/llcpp/include/fuchsia/sysinfo/llcpp/fidl.h b/zircon/system/fidl/fuchsia-sysinfo/gen/llcpp/include/fuchsia/sysinfo/llcpp/fidl.h
index 92bb2ef..60bfe67 100644
--- a/zircon/system/fidl/fuchsia-sysinfo/gen/llcpp/include/fuchsia/sysinfo/llcpp/fidl.h
+++ b/zircon/system/fidl/fuchsia-sysinfo/gen/llcpp/include/fuchsia/sysinfo/llcpp/fidl.h
@@ -23,7 +23,6 @@
 namespace fuchsia {
 namespace sysinfo {
 
-class Device;
 class SysInfo;
 enum class InterruptControllerType : uint32_t {
   UNKNOWN = 0u,
@@ -35,431 +34,6 @@
 
 struct InterruptControllerInfo;
 
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetHypervisorResourceRequestTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetHypervisorResourceResponseTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetBoardNameRequestTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetBoardNameResponseTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetBoardRevisionRequestTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetBoardRevisionResponseTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetInterruptControllerInfoRequestTable;
-extern "C" const fidl_type_t v1_fuchsia_sysinfo_DeviceGetInterruptControllerInfoResponseTable;
-
-class Device final {
-  Device() = delete;
- public:
-
-  struct GetHypervisorResourceResponse final {
-    FIDL_ALIGNDECL
-    fidl_message_header_t _hdr;
-    int32_t status;
-    ::zx::resource resource;
-
-    static constexpr const fidl_type_t* Type = &v1_fuchsia_sysinfo_DeviceGetHypervisorResourceResponseTable;
-    static constexpr uint32_t MaxNumHandles = 1;
-    static constexpr uint32_t PrimarySize = 24;
-    static constexpr uint32_t MaxOutOfLine = 0;
-    static constexpr bool HasFlexibleEnvelope = false;
-    static constexpr bool HasPointer = false;
-    static constexpr bool ContainsUnion = false;
-    static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
-        ::fidl::internal::TransactionalMessageKind::kResponse;
-  };
-  using GetHypervisorResourceRequest = ::fidl::AnyZeroArgMessage;
-
-  struct GetBoardNameResponse final {
-    FIDL_ALIGNDECL
-    fidl_message_header_t _hdr;
-    int32_t status;
-    ::fidl::StringView name;
-
-    static constexpr const fidl_type_t* Type = &v1_fuchsia_sysinfo_DeviceGetBoardNameResponseTable;
-    static constexpr uint32_t MaxNumHandles = 0;
-    static constexpr uint32_t PrimarySize = 40;
-    static constexpr uint32_t MaxOutOfLine = 32;
-    static constexpr bool HasFlexibleEnvelope = false;
-    static constexpr bool HasPointer = true;
-    static constexpr bool ContainsUnion = false;
-    static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
-        ::fidl::internal::TransactionalMessageKind::kResponse;
-  };
-  using GetBoardNameRequest = ::fidl::AnyZeroArgMessage;
-
-  struct GetBoardRevisionResponse final {
-    FIDL_ALIGNDECL
-    fidl_message_header_t _hdr;
-    int32_t status;
-    uint32_t revision;
-
-    static constexpr const fidl_type_t* Type = &v1_fuchsia_sysinfo_DeviceGetBoardRevisionResponseTable;
-    static constexpr uint32_t MaxNumHandles = 0;
-    static constexpr uint32_t PrimarySize = 24;
-    static constexpr uint32_t MaxOutOfLine = 0;
-    static constexpr bool HasFlexibleEnvelope = false;
-    static constexpr bool HasPointer = false;
-    static constexpr bool ContainsUnion = false;
-    static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
-        ::fidl::internal::TransactionalMessageKind::kResponse;
-  };
-  using GetBoardRevisionRequest = ::fidl::AnyZeroArgMessage;
-
-  struct GetInterruptControllerInfoResponse final {
-    FIDL_ALIGNDECL
-    fidl_message_header_t _hdr;
-    int32_t status;
-    ::llcpp::fuchsia::sysinfo::InterruptControllerInfo* info;
-
-    static constexpr const fidl_type_t* Type = &v1_fuchsia_sysinfo_DeviceGetInterruptControllerInfoResponseTable;
-    static constexpr uint32_t MaxNumHandles = 0;
-    static constexpr uint32_t PrimarySize = 32;
-    static constexpr uint32_t MaxOutOfLine = 8;
-    static constexpr bool HasFlexibleEnvelope = false;
-    static constexpr bool HasPointer = true;
-    static constexpr bool ContainsUnion = false;
-    static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
-        ::fidl::internal::TransactionalMessageKind::kResponse;
-  };
-  using GetInterruptControllerInfoRequest = ::fidl::AnyZeroArgMessage;
-
-
-  // Collection of return types of FIDL calls in this interface.
-  class ResultOf final {
-    ResultOf() = delete;
-   private:
-    template <typename ResponseType>
-    class GetHypervisorResource_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
-      using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
-     public:
-      GetHypervisorResource_Impl(::zx::unowned_channel _client_end);
-      ~GetHypervisorResource_Impl() = default;
-      GetHypervisorResource_Impl(GetHypervisorResource_Impl&& other) = default;
-      GetHypervisorResource_Impl& operator=(GetHypervisorResource_Impl&& other) = default;
-      using Super::status;
-      using Super::error;
-      using Super::ok;
-      using Super::Unwrap;
-      using Super::value;
-      using Super::operator->;
-      using Super::operator*;
-    };
-    template <typename ResponseType>
-    class GetBoardName_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
-      using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
-     public:
-      GetBoardName_Impl(::zx::unowned_channel _client_end);
-      ~GetBoardName_Impl() = default;
-      GetBoardName_Impl(GetBoardName_Impl&& other) = default;
-      GetBoardName_Impl& operator=(GetBoardName_Impl&& other) = default;
-      using Super::status;
-      using Super::error;
-      using Super::ok;
-      using Super::Unwrap;
-      using Super::value;
-      using Super::operator->;
-      using Super::operator*;
-    };
-    template <typename ResponseType>
-    class GetBoardRevision_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
-      using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
-     public:
-      GetBoardRevision_Impl(::zx::unowned_channel _client_end);
-      ~GetBoardRevision_Impl() = default;
-      GetBoardRevision_Impl(GetBoardRevision_Impl&& other) = default;
-      GetBoardRevision_Impl& operator=(GetBoardRevision_Impl&& other) = default;
-      using Super::status;
-      using Super::error;
-      using Super::ok;
-      using Super::Unwrap;
-      using Super::value;
-      using Super::operator->;
-      using Super::operator*;
-    };
-    template <typename ResponseType>
-    class GetInterruptControllerInfo_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
-      using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
-     public:
-      GetInterruptControllerInfo_Impl(::zx::unowned_channel _client_end);
-      ~GetInterruptControllerInfo_Impl() = default;
-      GetInterruptControllerInfo_Impl(GetInterruptControllerInfo_Impl&& other) = default;
-      GetInterruptControllerInfo_Impl& operator=(GetInterruptControllerInfo_Impl&& other) = default;
-      using Super::status;
-      using Super::error;
-      using Super::ok;
-      using Super::Unwrap;
-      using Super::value;
-      using Super::operator->;
-      using Super::operator*;
-    };
-
-   public:
-    using GetHypervisorResource = GetHypervisorResource_Impl<GetHypervisorResourceResponse>;
-    using GetBoardName = GetBoardName_Impl<GetBoardNameResponse>;
-    using GetBoardRevision = GetBoardRevision_Impl<GetBoardRevisionResponse>;
-    using GetInterruptControllerInfo = GetInterruptControllerInfo_Impl<GetInterruptControllerInfoResponse>;
-  };
-
-  // Collection of return types of FIDL calls in this interface,
-  // when the caller-allocate flavor or in-place call is used.
-  class UnownedResultOf final {
-    UnownedResultOf() = delete;
-   private:
-    template <typename ResponseType>
-    class GetHypervisorResource_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
-      using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
-     public:
-      GetHypervisorResource_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
-      ~GetHypervisorResource_Impl() = default;
-      GetHypervisorResource_Impl(GetHypervisorResource_Impl&& other) = default;
-      GetHypervisorResource_Impl& operator=(GetHypervisorResource_Impl&& other) = default;
-      using Super::status;
-      using Super::error;
-      using Super::ok;
-      using Super::Unwrap;
-      using Super::value;
-      using Super::operator->;
-      using Super::operator*;
-    };
-    template <typename ResponseType>
-    class GetBoardName_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
-      using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
-     public:
-      GetBoardName_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
-      ~GetBoardName_Impl() = default;
-      GetBoardName_Impl(GetBoardName_Impl&& other) = default;
-      GetBoardName_Impl& operator=(GetBoardName_Impl&& other) = default;
-      using Super::status;
-      using Super::error;
-      using Super::ok;
-      using Super::Unwrap;
-      using Super::value;
-      using Super::operator->;
-      using Super::operator*;
-    };
-    template <typename ResponseType>
-    class GetBoardRevision_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
-      using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
-     public:
-      GetBoardRevision_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
-      ~GetBoardRevision_Impl() = default;
-      GetBoardRevision_Impl(GetBoardRevision_Impl&& other) = default;
-      GetBoardRevision_Impl& operator=(GetBoardRevision_Impl&& other) = default;
-      using Super::status;
-      using Super::error;
-      using Super::ok;
-      using Super::Unwrap;
-      using Super::value;
-      using Super::operator->;
-      using Super::operator*;
-    };
-    template <typename ResponseType>
-    class GetInterruptControllerInfo_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
-      using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
-     public:
-      GetInterruptControllerInfo_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
-      ~GetInterruptControllerInfo_Impl() = default;
-      GetInterruptControllerInfo_Impl(GetInterruptControllerInfo_Impl&& other) = default;
-      GetInterruptControllerInfo_Impl& operator=(GetInterruptControllerInfo_Impl&& other) = default;
-      using Super::status;
-      using Super::error;
-      using Super::ok;
-      using Super::Unwrap;
-      using Super::value;
-      using Super::operator->;
-      using Super::operator*;
-    };
-
-   public:
-    using GetHypervisorResource = GetHypervisorResource_Impl<GetHypervisorResourceResponse>;
-    using GetBoardName = GetBoardName_Impl<GetBoardNameResponse>;
-    using GetBoardRevision = GetBoardRevision_Impl<GetBoardRevisionResponse>;
-    using GetInterruptControllerInfo = GetInterruptControllerInfo_Impl<GetInterruptControllerInfoResponse>;
-  };
-
-  class SyncClient final {
-   public:
-    explicit SyncClient(::zx::channel channel) : channel_(std::move(channel)) {}
-    ~SyncClient() = default;
-    SyncClient(SyncClient&&) = default;
-    SyncClient& operator=(SyncClient&&) = default;
-
-    const ::zx::channel& channel() const { return channel_; }
-
-    ::zx::channel* mutable_channel() { return &channel_; }
-
-    // Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
-    ResultOf::GetHypervisorResource GetHypervisorResource();
-
-    // Caller provides the backing storage for FIDL message via request and response buffers.
-    UnownedResultOf::GetHypervisorResource GetHypervisorResource(::fidl::BytePart _response_buffer);
-
-    // Allocates 88 bytes of message buffer on the stack. No heap allocation necessary.
-    ResultOf::GetBoardName GetBoardName();
-
-    // Caller provides the backing storage for FIDL message via request and response buffers.
-    UnownedResultOf::GetBoardName GetBoardName(::fidl::BytePart _response_buffer);
-
-    // Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
-    ResultOf::GetBoardRevision GetBoardRevision();
-
-    // Caller provides the backing storage for FIDL message via request and response buffers.
-    UnownedResultOf::GetBoardRevision GetBoardRevision(::fidl::BytePart _response_buffer);
-
-    // Allocates 56 bytes of message buffer on the stack. No heap allocation necessary.
-    ResultOf::GetInterruptControllerInfo GetInterruptControllerInfo();
-
-    // Caller provides the backing storage for FIDL message via request and response buffers.
-    UnownedResultOf::GetInterruptControllerInfo GetInterruptControllerInfo(::fidl::BytePart _response_buffer);
-
-   private:
-    ::zx::channel channel_;
-  };
-
-  // Methods to make a sync FIDL call directly on an unowned channel, avoiding setting up a client.
-  class Call final {
-    Call() = delete;
-   public:
-
-    // Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
-    static ResultOf::GetHypervisorResource GetHypervisorResource(::zx::unowned_channel _client_end);
-
-    // Caller provides the backing storage for FIDL message via request and response buffers.
-    static UnownedResultOf::GetHypervisorResource GetHypervisorResource(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
-
-    // Allocates 88 bytes of message buffer on the stack. No heap allocation necessary.
-    static ResultOf::GetBoardName GetBoardName(::zx::unowned_channel _client_end);
-
-    // Caller provides the backing storage for FIDL message via request and response buffers.
-    static UnownedResultOf::GetBoardName GetBoardName(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
-
-    // Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
-    static ResultOf::GetBoardRevision GetBoardRevision(::zx::unowned_channel _client_end);
-
-    // Caller provides the backing storage for FIDL message via request and response buffers.
-    static UnownedResultOf::GetBoardRevision GetBoardRevision(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
-
-    // Allocates 56 bytes of message buffer on the stack. No heap allocation necessary.
-    static ResultOf::GetInterruptControllerInfo GetInterruptControllerInfo(::zx::unowned_channel _client_end);
-
-    // Caller provides the backing storage for FIDL message via request and response buffers.
-    static UnownedResultOf::GetInterruptControllerInfo GetInterruptControllerInfo(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
-
-  };
-
-  // Messages are encoded and decoded in-place when these methods are used.
-  // Additionally, requests must be already laid-out according to the FIDL wire-format.
-  class InPlace final {
-    InPlace() = delete;
-   public:
-
-    static ::fidl::DecodeResult<GetHypervisorResourceResponse> GetHypervisorResource(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
-
-    static ::fidl::DecodeResult<GetBoardNameResponse> GetBoardName(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
-
-    static ::fidl::DecodeResult<GetBoardRevisionResponse> GetBoardRevision(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
-
-    static ::fidl::DecodeResult<GetInterruptControllerInfoResponse> GetInterruptControllerInfo(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
-
-  };
-
-  // Pure-virtual interface to be implemented by a server.
-  class Interface {
-   public:
-    Interface() = default;
-    virtual ~Interface() = default;
-    using _Outer = Device;
-    using _Base = ::fidl::CompleterBase;
-
-    class GetHypervisorResourceCompleterBase : public _Base {
-     public:
-      void Reply(int32_t status, ::zx::resource resource);
-      void Reply(::fidl::BytePart _buffer, int32_t status, ::zx::resource resource);
-      void Reply(::fidl::DecodedMessage<GetHypervisorResourceResponse> params);
-
-     protected:
-      using ::fidl::CompleterBase::CompleterBase;
-    };
-
-    using GetHypervisorResourceCompleter = ::fidl::Completer<GetHypervisorResourceCompleterBase>;
-
-    virtual void GetHypervisorResource(GetHypervisorResourceCompleter::Sync _completer) = 0;
-
-    class GetBoardNameCompleterBase : public _Base {
-     public:
-      void Reply(int32_t status, ::fidl::StringView name);
-      void Reply(::fidl::BytePart _buffer, int32_t status, ::fidl::StringView name);
-      void Reply(::fidl::DecodedMessage<GetBoardNameResponse> params);
-
-     protected:
-      using ::fidl::CompleterBase::CompleterBase;
-    };
-
-    using GetBoardNameCompleter = ::fidl::Completer<GetBoardNameCompleterBase>;
-
-    virtual void GetBoardName(GetBoardNameCompleter::Sync _completer) = 0;
-
-    class GetBoardRevisionCompleterBase : public _Base {
-     public:
-      void Reply(int32_t status, uint32_t revision);
-      void Reply(::fidl::BytePart _buffer, int32_t status, uint32_t revision);
-      void Reply(::fidl::DecodedMessage<GetBoardRevisionResponse> params);
-
-     protected:
-      using ::fidl::CompleterBase::CompleterBase;
-    };
-
-    using GetBoardRevisionCompleter = ::fidl::Completer<GetBoardRevisionCompleterBase>;
-
-    virtual void GetBoardRevision(GetBoardRevisionCompleter::Sync _completer) { _completer.Close(ZX_ERR_NOT_SUPPORTED); }
-
-    class GetInterruptControllerInfoCompleterBase : public _Base {
-     public:
-      void Reply(int32_t status, ::llcpp::fuchsia::sysinfo::InterruptControllerInfo* info);
-      void Reply(::fidl::BytePart _buffer, int32_t status, ::llcpp::fuchsia::sysinfo::InterruptControllerInfo* info);
-      void Reply(::fidl::DecodedMessage<GetInterruptControllerInfoResponse> params);
-
-     protected:
-      using ::fidl::CompleterBase::CompleterBase;
-    };
-
-    using GetInterruptControllerInfoCompleter = ::fidl::Completer<GetInterruptControllerInfoCompleterBase>;
-
-    virtual void GetInterruptControllerInfo(GetInterruptControllerInfoCompleter::Sync _completer) = 0;
-
-  };
-
-  // Attempts to dispatch the incoming message to a handler function in the server implementation.
-  // If there is no matching handler, it returns false, leaving the message and transaction intact.
-  // In all other cases, it consumes the message and returns true.
-  // It is possible to chain multiple TryDispatch functions in this manner.
-  static bool TryDispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn);
-
-  // Dispatches the incoming message to one of the handlers functions in the interface.
-  // If there is no matching handler, it closes all the handles in |msg| and closes the channel with
-  // a |ZX_ERR_NOT_SUPPORTED| epitaph, before returning false. The message should then be discarded.
-  static bool Dispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn);
-
-  // Same as |Dispatch|, but takes a |void*| instead of |Interface*|. Only used with |fidl::Bind|
-  // to reduce template expansion.
-  // Do not call this method manually. Use |Dispatch| instead.
-  static bool TypeErasedDispatch(void* impl, fidl_msg_t* msg, ::fidl::Transaction* txn) {
-    return Dispatch(static_cast<Interface*>(impl), msg, txn);
-  }
-
-
-  // Helper functions to fill in the transaction header in a |DecodedMessage<TransactionalMessage>|.
-  class SetTransactionHeaderFor final {
-    SetTransactionHeaderFor() = delete;
-   public:
-    static void GetHypervisorResourceRequest(const ::fidl::DecodedMessage<Device::GetHypervisorResourceRequest>& _msg);
-    static void GetHypervisorResourceResponse(const ::fidl::DecodedMessage<Device::GetHypervisorResourceResponse>& _msg);
-    static void GetBoardNameRequest(const ::fidl::DecodedMessage<Device::GetBoardNameRequest>& _msg);
-    static void GetBoardNameResponse(const ::fidl::DecodedMessage<Device::GetBoardNameResponse>& _msg);
-    static void GetBoardRevisionRequest(const ::fidl::DecodedMessage<Device::GetBoardRevisionRequest>& _msg);
-    static void GetBoardRevisionResponse(const ::fidl::DecodedMessage<Device::GetBoardRevisionResponse>& _msg);
-    static void GetInterruptControllerInfoRequest(const ::fidl::DecodedMessage<Device::GetInterruptControllerInfoRequest>& _msg);
-    static void GetInterruptControllerInfoResponse(const ::fidl::DecodedMessage<Device::GetInterruptControllerInfoResponse>& _msg);
-  };
-};
-
 extern "C" const fidl_type_t v1_fuchsia_sysinfo_SysInfoGetHypervisorResourceRequestTable;
 extern "C" const fidl_type_t v1_fuchsia_sysinfo_SysInfoGetHypervisorResourceResponseTable;
 extern "C" const fidl_type_t v1_fuchsia_sysinfo_SysInfoGetBoardNameRequestTable;
@@ -923,42 +497,6 @@
 namespace fidl {
 
 template <>
-struct IsFidlType<::llcpp::fuchsia::sysinfo::Device::GetHypervisorResourceResponse> : public std::true_type {};
-template <>
-struct IsFidlMessage<::llcpp::fuchsia::sysinfo::Device::GetHypervisorResourceResponse> : public std::true_type {};
-static_assert(sizeof(::llcpp::fuchsia::sysinfo::Device::GetHypervisorResourceResponse)
-    == ::llcpp::fuchsia::sysinfo::Device::GetHypervisorResourceResponse::PrimarySize);
-static_assert(offsetof(::llcpp::fuchsia::sysinfo::Device::GetHypervisorResourceResponse, status) == 16);
-static_assert(offsetof(::llcpp::fuchsia::sysinfo::Device::GetHypervisorResourceResponse, resource) == 20);
-
-template <>
-struct IsFidlType<::llcpp::fuchsia::sysinfo::Device::GetBoardNameResponse> : public std::true_type {};
-template <>
-struct IsFidlMessage<::llcpp::fuchsia::sysinfo::Device::GetBoardNameResponse> : public std::true_type {};
-static_assert(sizeof(::llcpp::fuchsia::sysinfo::Device::GetBoardNameResponse)
-    == ::llcpp::fuchsia::sysinfo::Device::GetBoardNameResponse::PrimarySize);
-static_assert(offsetof(::llcpp::fuchsia::sysinfo::Device::GetBoardNameResponse, status) == 16);
-static_assert(offsetof(::llcpp::fuchsia::sysinfo::Device::GetBoardNameResponse, name) == 24);
-
-template <>
-struct IsFidlType<::llcpp::fuchsia::sysinfo::Device::GetBoardRevisionResponse> : public std::true_type {};
-template <>
-struct IsFidlMessage<::llcpp::fuchsia::sysinfo::Device::GetBoardRevisionResponse> : public std::true_type {};
-static_assert(sizeof(::llcpp::fuchsia::sysinfo::Device::GetBoardRevisionResponse)
-    == ::llcpp::fuchsia::sysinfo::Device::GetBoardRevisionResponse::PrimarySize);
-static_assert(offsetof(::llcpp::fuchsia::sysinfo::Device::GetBoardRevisionResponse, status) == 16);
-static_assert(offsetof(::llcpp::fuchsia::sysinfo::Device::GetBoardRevisionResponse, revision) == 20);
-
-template <>
-struct IsFidlType<::llcpp::fuchsia::sysinfo::Device::GetInterruptControllerInfoResponse> : public std::true_type {};
-template <>
-struct IsFidlMessage<::llcpp::fuchsia::sysinfo::Device::GetInterruptControllerInfoResponse> : public std::true_type {};
-static_assert(sizeof(::llcpp::fuchsia::sysinfo::Device::GetInterruptControllerInfoResponse)
-    == ::llcpp::fuchsia::sysinfo::Device::GetInterruptControllerInfoResponse::PrimarySize);
-static_assert(offsetof(::llcpp::fuchsia::sysinfo::Device::GetInterruptControllerInfoResponse, status) == 16);
-static_assert(offsetof(::llcpp::fuchsia::sysinfo::Device::GetInterruptControllerInfoResponse, info) == 24);
-
-template <>
 struct IsFidlType<::llcpp::fuchsia::sysinfo::SysInfo::GetHypervisorResourceResponse> : public std::true_type {};
 template <>
 struct IsFidlMessage<::llcpp::fuchsia::sysinfo::SysInfo::GetHypervisorResourceResponse> : public std::true_type {};
diff --git a/zircon/system/fidl/fuchsia-sysinfo/sysinfo.fidl b/zircon/system/fidl/fuchsia-sysinfo/sysinfo.fidl
index fbecc39..4f51fcc 100644
--- a/zircon/system/fidl/fuchsia-sysinfo/sysinfo.fidl
+++ b/zircon/system/fidl/fuchsia-sysinfo/sysinfo.fidl
@@ -36,22 +36,3 @@
     // Return interrupt controller information.
     GetInterruptControllerInfo() -> (zx.status status, InterruptControllerInfo? info);
 };
-
-//TODO(puneetha): temporary duplication for CL soft transition
-[Layout = "Simple"]
-protocol Device {
-    // Return the hypervisor resource (with only ZX_RIGHT_TRANSFER).
-    GetHypervisorResource() -> (zx.status status, handle<resource>? resource);
-
-    // Return the board name for the platform we are running on.
-    GetBoardName() -> (zx.status status, string:SYSINFO_BOARD_NAME_LEN? name);
-
-    // Return the board revision for the board we are running on.
-    // TODO (nealo):  Remove Transitional qualifier after all board bootloaders
-    // provide board serial number, mac address and revision.
-    [Transitional = "Adding Board Revision"]
-    GetBoardRevision() -> (zx.status status, uint32 revision);
-
-    // Return interrupt controller information.
-    GetInterruptControllerInfo() -> (zx.status status, InterruptControllerInfo? info);
-};