blob: b8d9157cccbd8e6231e0ccd69cc46fe3e55616a9 [file]
// 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.
library banjo.examples.protocolarray;
// TODO(surajmalhotra): Async for arrays.
// TODO(surajmalhotra): Reference for arrays.
using zx;
@transport("Banjo")
@banjo_layout("ddk-protocol")
protocol Array {
Bool(struct {
b array<bool, 1>;
}) -> (struct {
b array<bool, 1>;
});
Int8(struct {
i8 array<int8, 1>;
}) -> (struct {
i8 array<int8, 1>;
});
Int16(struct {
i16 array<int16, 1>;
}) -> (struct {
i16 array<int16, 1>;
});
Int32(struct {
i32 array<int32, 1>;
}) -> (struct {
i32 array<int32, 1>;
});
Int64(struct {
i64 array<int64, 1>;
}) -> (struct {
i64 array<int64, 1>;
});
Uint8(struct {
u8 array<uint8, 1>;
}) -> (struct {
u8 array<uint8, 1>;
});
Uint16(struct {
u16 array<uint16, 1>;
}) -> (struct {
u16 array<uint16, 1>;
});
Uint32(struct {
u32 array<uint32, 1>;
}) -> (struct {
u32 array<uint32, 1>;
});
Uint64(struct {
u64 array<uint64, 1>;
}) -> (struct {
u64 array<uint64, 1>;
});
Float32(struct {
f32 array<float32, 1>;
}) -> (struct {
f32 array<float32, 1>;
});
Float64(struct {
u64 array<float64, 1>;
}) -> (struct {
f64 array<float64, 1>;
});
Handle(resource struct {
u64 array<zx.handle, 1>;
}) -> (resource struct {
f64 array<zx.handle, 1>;
});
};
const array_size uint32 = 32;
@transport("Banjo")
@banjo_layout("ddk-protocol")
protocol Array2 {
Bool(struct {
b array<bool, array_size>;
}) -> (struct {
b array<bool, array_size>;
});
Int8(struct {
i8 array<int8, array_size>;
}) -> (struct {
i8 array<int8, array_size>;
});
Int16(struct {
i16 array<int16, array_size>;
}) -> (struct {
i16 array<int16, array_size>;
});
Int32(struct {
i32 array<int32, array_size>;
}) -> (struct {
i32 array<int32, array_size>;
});
Int64(struct {
i64 array<int64, array_size>;
}) -> (struct {
i64 array<int64, array_size>;
});
Uint8(struct {
u8 array<uint8, array_size>;
}) -> (struct {
u8 array<uint8, array_size>;
});
Uint16(struct {
u16 array<uint16, array_size>;
}) -> (struct {
u16 array<uint16, array_size>;
});
Uint32(struct {
u32 array<uint32, array_size>;
}) -> (struct {
u32 array<uint32, array_size>;
});
Uint64(struct {
u64 array<uint64, array_size>;
}) -> (struct {
u64 array<uint64, array_size>;
});
Float32(struct {
f32 array<float32, array_size>;
}) -> (struct {
f32 array<float32, array_size>;
});
Float64(struct {
u64 array<float64, array_size>;
}) -> (struct {
f64 array<float64, array_size>;
});
Handle(resource struct {
u64 array<zx.handle, array_size>;
}) -> (resource struct {
f64 array<zx.handle, array_size>;
});
};
@transport("Banjo")
@banjo_layout("ddk-protocol")
protocol ArrayofArrays {
Bool(struct {
b array<array<bool, 4>, array_size>;
}) -> (struct {
b array<array<bool, 4>, array_size>;
});
Int8(struct {
i8 array<array<int8, 4>, array_size>;
}) -> (struct {
i8 array<array<int8, 4>, array_size>;
});
Int16(struct {
i16 array<array<int16, 4>, array_size>;
}) -> (struct {
i16 array<array<int16, 4>, array_size>;
});
Int32(struct {
i32 array<array<int32, 4>, array_size>;
}) -> (struct {
i32 array<array<int32, 4>, array_size>;
});
Int64(struct {
i64 array<array<int64, 4>, array_size>;
}) -> (struct {
i64 array<array<int64, 4>, array_size>;
});
Uint8(struct {
u8 array<array<uint8, 4>, array_size>;
}) -> (struct {
u8 array<array<uint8, 4>, array_size>;
});
Uint16(struct {
u16 array<array<uint16, 4>, array_size>;
}) -> (struct {
u16 array<array<uint16, 4>, array_size>;
});
Uint32(struct {
u32 array<array<uint32, 4>, array_size>;
}) -> (struct {
u32 array<array<uint32, 4>, array_size>;
});
Uint64(struct {
u64 array<array<uint64, 4>, array_size>;
}) -> (struct {
u64 array<array<uint64, 4>, array_size>;
});
Float32(struct {
f32 array<array<float32, 4>, array_size>;
}) -> (struct {
f32 array<array<float32, 4>, array_size>;
});
Float64(struct {
u64 array<array<float64, 4>, array_size>;
}) -> (struct {
f64 array<array<float64, 4>, array_size>;
});
Handle(resource struct {
u64 array<array<zx.handle, 4>, array_size>;
}) -> (resource struct {
f64 array<array<zx.handle, 4>, array_size>;
});
};