blob: 6e665f0cfffceb33a07f0b20b5800597f289be16 [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.protocolbase;
using zx;
@transport("Banjo")
@banjo_layout("ddk-protocol")
protocol SynchronousBase {
Status(struct {
status zx.status;
}) -> (struct {
status zx.status;
status_2 zx.status;
});
Time(struct {
time zx.time;
}) -> (struct {
time zx.time;
time_2 zx.time;
});
Duration(struct {
duration zx.duration;
}) -> (struct {
duration zx.duration;
duration_2 zx.duration;
});
Koid(struct {
koid zx.koid;
}) -> (struct {
koid zx.koid;
koid_2 zx.koid;
});
Vaddr(struct {
vaddr zx.vaddr;
}) -> (struct {
vaddr zx.vaddr;
vaddr_2 zx.vaddr;
});
Paddr(struct {
paddr zx.paddr;
}) -> (struct {
paddr zx.paddr;
paddr_2 zx.paddr;
});
Paddr32(struct {
paddr32 zx.paddr32;
}) -> (struct {
paddr32 zx.paddr32;
paddr32_2 zx.paddr32;
});
Gpaddr(struct {
gpaddr zx.gpaddr;
}) -> (struct {
gpaddr zx.gpaddr;
gpaddr_2 zx.gpaddr;
});
Off(struct {
off zx.off;
}) -> (struct {
off zx.off;
off_2 zx.off;
});
};
@transport("Banjo")
@banjo_layout("ddk-protocol")
protocol AsyncBase {
@async
Status(struct {
status zx.status;
}) -> (struct {
status zx.status;
status_2 zx.status;
});
@async
Time(struct {
time zx.time;
}) -> (struct {
time zx.time;
time_2 zx.time;
});
@async
Duration(struct {
duration zx.duration;
}) -> (struct {
duration zx.duration;
duration_2 zx.duration;
});
@async
Koid(struct {
koid zx.koid;
}) -> (struct {
koid zx.koid;
koid_2 zx.koid;
});
@async
Vaddr(struct {
vaddr zx.vaddr;
}) -> (struct {
vaddr zx.vaddr;
vaddr_2 zx.vaddr;
});
@async
Paddr(struct {
paddr zx.paddr;
}) -> (struct {
paddr zx.paddr;
paddr_2 zx.paddr;
});
@async
Paddr32(struct {
paddr32 zx.paddr32;
}) -> (struct {
paddr32 zx.paddr32;
paddr32_2 zx.paddr32;
});
@async
Gpaddr(struct {
gpaddr zx.gpaddr;
}) -> (struct {
gpaddr zx.gpaddr;
gpaddr_2 zx.gpaddr;
});
@async
Off(struct {
off zx.off;
}) -> (struct {
off zx.off;
off_2 zx.off;
});
};
protocol WrongTransport {
Status(struct {
status zx.status;
}) -> (struct {
status zx.status;
status_2 zx.status;
});
Time(struct {
time zx.time;
}) -> (struct {
time zx.time;
time_2 zx.time;
});
Duration(struct {
duration zx.duration;
}) -> (struct {
duration zx.duration;
duration_2 zx.duration;
});
Koid(struct {
koid zx.koid;
}) -> (struct {
koid zx.koid;
koid_2 zx.koid;
});
Vaddr(struct {
vaddr zx.vaddr;
}) -> (struct {
vaddr zx.vaddr;
vaddr_2 zx.vaddr;
});
Paddr(struct {
paddr zx.paddr;
}) -> (struct {
paddr zx.paddr;
paddr_2 zx.paddr;
});
Paddr32(struct {
paddr32 zx.paddr32;
}) -> (struct {
paddr32 zx.paddr32;
paddr32_2 zx.paddr32;
});
Gpaddr(struct {
gpaddr zx.gpaddr;
}) -> (struct {
gpaddr zx.gpaddr;
gpaddr_2 zx.gpaddr;
});
Off(struct {
off zx.off;
}) -> (struct {
off zx.off;
off_2 zx.off;
});
};