blob: a835068cd29d55e9b1309e0f3b78b2336e71f21d [file]
// 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.
library banjo.examples.api;
using zx;
@transport("Banjo")
protocol Api {
bool(resource struct {
handle zx.handle;
data bool;
}) -> (struct {
status zx.status;
});
int8(resource struct {
handle zx.handle;
data int8;
}) -> (struct {
status zx.status;
});
int16(resource struct {
handle zx.handle;
data int16;
}) -> (struct {
status zx.status;
});
int32(resource struct {
handle zx.handle;
data int32;
}) -> (struct {
status zx.status;
});
int64(resource struct {
handle zx.handle;
data int64;
}) -> (struct {
status zx.status;
});
uint8(resource struct {
handle zx.handle;
data uint8;
}) -> (struct {
status zx.status;
});
uint16(resource struct {
handle zx.handle;
data uint16;
}) -> (struct {
status zx.status;
});
uint32(resource struct {
handle zx.handle;
data uint32;
}) -> (struct {
status zx.status;
});
uint64(resource struct {
handle zx.handle;
data uint64;
}) -> (struct {
status zx.status;
});
float32(resource struct {
handle zx.handle;
data float32;
}) -> (struct {
status zx.status;
});
float64(resource struct {
handle zx.handle;
data float64;
}) -> (struct {
status zx.status;
});
duration(resource struct {
handle zx.handle;
data zx.duration;
}) -> (struct {
status zx.status;
});
koid(resource struct {
handle zx.handle;
data zx.koid;
}) -> (struct {
status zx.status;
});
paddr(resource struct {
handle zx.handle;
data zx.paddr;
}) -> (struct {
status zx.status;
});
signals(resource struct {
handle zx.handle;
data zx.signals;
}) -> (struct {
status zx.status;
});
time(resource struct {
handle zx.handle;
data zx.time;
}) -> (struct {
status zx.status;
});
vaddr(resource struct {
handle zx.handle;
data zx.vaddr;
}) -> (struct {
status zx.status;
});
output_bool(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result bool;
});
output_int8(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result int8;
});
output_int16(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result int16;
});
output_int32(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result int32;
});
output_int64(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result int64;
});
output_uint8(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result uint8;
});
output_uint16(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result uint16;
});
output_uint32(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result uint32;
});
output_uint64(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result uint64;
});
output_float32(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result float32;
});
output_float64(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result float64;
});
output_duration(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result zx.duration;
});
output_koid(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result zx.koid;
});
output_paddr(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result zx.paddr;
});
output_signals(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result zx.signals;
});
output_time(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result zx.time;
});
output_vaddr(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
result zx.vaddr;
});
return_void(resource struct {
handle zx.handle;
}) -> ();
return_status(resource struct {
handle zx.handle;
}) -> (struct {
status zx.status;
});
return_ticks(resource struct {
handle zx.handle;
}) -> (struct {
result zx.ticks;
});
return_time(resource struct {
handle zx.handle;
}) -> (struct {
result zx.time;
});
return_uint32(resource struct {
handle zx.handle;
}) -> (struct {
result uint32;
});
return_uint64(resource struct {
handle zx.handle;
}) -> (struct {
result uint64;
});
};