1// Copyright 2018 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// This file was machine generated with: 6// 7// bash$ fidlc --c-header trace_provider.fidl.h 8// --c-client trace_provider.fidl.client.cpp 9// --tables trace_provider.fidl.tables.cpp 10// --files system/fidl/fuchsia-tracelink/tracelink.fidl 11// 12// and then this header (up to "End of additions ...") manually inserted. 13// 14// There are *no* differences with the machine generated version except the 15// addition of this text. 16// Minimizing differences with generated code is critical to lessening the 17// maintenance burden until we no longer check in machine generated code. 18// It is currently checked in to workaround these problems: 19// - zircon's build system doesn't support transitive dependencies 20// - duplicate copy of tracelink is generated and compiled in garnet, 21// leading to duplicate symbol linker errors 22 23#define fuchsia_tracelink_ProviderStartRequestTable ProviderStartRequestTable 24#define fuchsia_tracelink_ProviderStopRequestTable ProviderStopRequestTable 25#define fuchsia_tracelink_RegistryRegisterTraceProviderDeprecatedRequestTable RegistryRegisterTraceProviderDeprecatedRequestTable 26#define fuchsia_tracelink_RegistryRegisterTraceProviderRequestTable RegistryRegisterTraceProviderRequestTable 27#define fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyRequestTable RegistryRegisterTraceProviderSynchronouslyRequestTable 28#define fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyResponseTable RegistryRegisterTraceProviderSynchronouslyResponseTable 29 30// End of additions to machine-generated file. 31// WARNING: This file is machine generated by fidlc. 32 33#pragma once 34 35#include <stdalign.h> 36#include <stdbool.h> 37#include <stdint.h> 38#include <zircon/fidl.h> 39#include <zircon/syscalls/object.h> 40#include <zircon/types.h> 41 42#if defined(__cplusplus) 43extern "C" { 44#endif 45 46 47// Forward declarations 48 49typedef uint8_t fuchsia_tracelink_BufferingMode; 50#define fuchsia_tracelink_BufferingMode_ONESHOT UINT8_C(0) 51#define fuchsia_tracelink_BufferingMode_CIRCULAR UINT8_C(1) 52#define fuchsia_tracelink_BufferingMode_STREAMING UINT8_C(2) 53 54#define fuchsia_tracelink_ProviderStartOrdinal ((uint32_t)0x1) 55typedef struct fuchsia_tracelink_ProviderStartRequest fuchsia_tracelink_ProviderStartRequest; 56#define fuchsia_tracelink_ProviderStopOrdinal ((uint32_t)0x2) 57typedef struct fuchsia_tracelink_ProviderStopRequest fuchsia_tracelink_ProviderStopRequest; 58#define fuchsia_tracelink_Registry_Name "fuchsia.tracelink.Registry" 59#define fuchsia_tracelink_RegistryRegisterTraceProviderDeprecatedOrdinal ((uint32_t)0x1) 60typedef struct fuchsia_tracelink_RegistryRegisterTraceProviderDeprecatedRequest fuchsia_tracelink_RegistryRegisterTraceProviderDeprecatedRequest; 61#define fuchsia_tracelink_RegistryRegisterTraceProviderOrdinal ((uint32_t)0x2) 62typedef struct fuchsia_tracelink_RegistryRegisterTraceProviderRequest fuchsia_tracelink_RegistryRegisterTraceProviderRequest; 63#define fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyOrdinal ((uint32_t)0x3) 64typedef struct fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyRequest fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyRequest; 65typedef struct fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyResponse fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyResponse; 66 67// Extern declarations 68 69extern const fidl_type_t fuchsia_tracelink_ProviderStartRequestTable; 70extern const fidl_type_t fuchsia_tracelink_ProviderStopRequestTable; 71extern const fidl_type_t fuchsia_tracelink_RegistryRegisterTraceProviderDeprecatedRequestTable; 72extern const fidl_type_t fuchsia_tracelink_RegistryRegisterTraceProviderRequestTable; 73extern const fidl_type_t fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyRequestTable; 74extern const fidl_type_t fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyResponseTable; 75 76// Declarations 77 78struct fuchsia_tracelink_ProviderStartRequest { 79 FIDL_ALIGNDECL 80 fidl_message_header_t hdr; 81 fuchsia_tracelink_BufferingMode buffering_mode; 82 zx_handle_t buffer; 83 zx_handle_t fifo; 84 fidl_vector_t categories; 85}; 86 87struct fuchsia_tracelink_ProviderStopRequest { 88 FIDL_ALIGNDECL 89 fidl_message_header_t hdr; 90}; 91 92struct fuchsia_tracelink_RegistryRegisterTraceProviderDeprecatedRequest { 93 FIDL_ALIGNDECL 94 fidl_message_header_t hdr; 95 zx_handle_t provider; 96}; 97 98struct fuchsia_tracelink_RegistryRegisterTraceProviderRequest { 99 FIDL_ALIGNDECL 100 fidl_message_header_t hdr; 101 zx_handle_t provider; 102 uint64_t pid; 103 fidl_string_t name; 104}; 105 106struct fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyRequest { 107 FIDL_ALIGNDECL 108 fidl_message_header_t hdr; 109 zx_handle_t provider; 110 uint64_t pid; 111 fidl_string_t name; 112}; 113 114struct fuchsia_tracelink_RegistryRegisterTraceProviderSynchronouslyResponse { 115 FIDL_ALIGNDECL 116 fidl_message_header_t hdr; 117 int32_t s; 118 bool started; 119}; 120 121 122// Simple bindings 123 124zx_status_t fuchsia_tracelink_RegistryRegisterTraceProviderDeprecated(zx_handle_t _channel, zx_handle_t provider); 125zx_status_t fuchsia_tracelink_RegistryRegisterTraceProvider(zx_handle_t _channel, zx_handle_t provider, uint64_t pid, const char* name_data, size_t name_size); 126zx_status_t fuchsia_tracelink_RegistryRegisterTraceProviderSynchronously(zx_handle_t _channel, zx_handle_t provider, uint64_t pid, const char* name_data, size_t name_size, int32_t* out_s, bool* out_started); 127 128typedef struct fuchsia_tracelink_Registry_ops { 129 zx_status_t (*RegisterTraceProviderDeprecated)(void* ctx, zx_handle_t provider); 130 zx_status_t (*RegisterTraceProvider)(void* ctx, zx_handle_t provider, uint64_t pid, const char* name_data, size_t name_size); 131 zx_status_t (*RegisterTraceProviderSynchronously)(void* ctx, zx_handle_t provider, uint64_t pid, const char* name_data, size_t name_size, fidl_txn_t* txn); 132} fuchsia_tracelink_Registry_ops_t; 133 134zx_status_t fuchsia_tracelink_Registry_dispatch(void* ctx, fidl_txn_t* txn, fidl_msg_t* msg, const fuchsia_tracelink_Registry_ops_t* ops); 135zx_status_t fuchsia_tracelink_Registry_try_dispatch(void* ctx, fidl_txn_t* txn, fidl_msg_t* msg, const fuchsia_tracelink_Registry_ops_t* ops); 136 137zx_status_t fuchsia_tracelink_RegistryRegisterTraceProviderSynchronously_reply(fidl_txn_t* _txn, int32_t s, bool started); 138 139#if defined(__cplusplus) 140} 141#endif 142