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