| // 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. |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| #include <memory> |
| |
| #include "fuchsia/kernel/cpp/fidl.h" |
| #include "lib/async-loop/cpp/loop.h" |
| #include "lib/async-loop/default.h" |
| #include "lib/sys/cpp/component_context.h" |
| #include "src/developer/kcounter_inspect/vmo_file_with_update.h" |
| |
| int main(int argc, char** argv) { |
| async::Loop loop(&kAsyncLoopConfigAttachToCurrentThread); |
| auto context = sys::ComponentContext::CreateAndServeOutgoingDirectory(); |
| |
| fuchsia::kernel::CounterSyncPtr kcounter; |
| ZX_ASSERT(context->svc()->Connect<fuchsia::kernel::Counter>(kcounter.NewRequest()) == ZX_OK); |
| |
| fuchsia::mem::Buffer buffer; |
| zx_status_t status; |
| ZX_ASSERT(kcounter->GetInspectVmo(&status, &buffer) == ZX_OK); |
| ZX_ASSERT(status == ZX_OK); |
| |
| auto vmo_file = |
| std::make_unique<VmoFileWithUpdate>(std::move(buffer.vmo), 0, buffer.size, &kcounter); |
| vfs::PseudoDir* dir = context->outgoing()->GetOrCreateDirectory("diagnostics"); |
| dir->AddEntry("root.inspect", std::move(vmo_file)); |
| loop.Run(); |
| |
| return 0; |
| } |