blob: 39ca2fe814e2bcb7f0ea64a13de6f21f9c555814 [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.
// WARNING: THIS FILE IS MACHINE GENERATED. DO NOT EDIT.
// Generated from the banjo.examples.protocolbase banjo file
#pragma once
#include <zircon/compiler.h>
#include <zircon/types.h>
__BEGIN_CDECLS
// Forward declarations
typedef struct synchronous_base_protocol synchronous_base_protocol_t;
typedef struct synchronous_base_protocol_ops synchronous_base_protocol_ops_t;
typedef void (*async_base_status_callback)(void* ctx, zx_status_t status, zx_status_t status_2);
typedef void (*async_base_time_callback)(void* ctx, zx_time_t time, zx_time_t time_2);
typedef void (*async_base_duration_callback)(void* ctx, zx_duration_t duration, zx_duration_t duration_2);
typedef void (*async_base_koid_callback)(void* ctx, zx_koid_t koid, zx_koid_t koid_2);
typedef void (*async_base_vaddr_callback)(void* ctx, zx_vaddr_t vaddr, zx_vaddr_t vaddr_2);
typedef void (*async_base_paddr_callback)(void* ctx, zx_paddr_t paddr, zx_paddr_t paddr_2);
typedef void (*async_base_paddr32_callback)(void* ctx, zx_paddr32_t paddr32, zx_paddr32_t paddr32_2);
typedef void (*async_base_gpaddr_callback)(void* ctx, zx_gpaddr_t gpaddr, zx_gpaddr_t gpaddr_2);
typedef void (*async_base_off_callback)(void* ctx, zx_off_t off, zx_off_t off_2);
typedef struct async_base_protocol async_base_protocol_t;
typedef struct async_base_protocol_ops async_base_protocol_ops_t;
// Declarations
struct synchronous_base_protocol_ops {
zx_status_t (*status)(void* ctx, zx_status_t status, zx_status_t* out_status_2);
zx_time_t (*time)(void* ctx, zx_time_t time, zx_time_t* out_time_2);
zx_duration_t (*duration)(void* ctx, zx_duration_t duration, zx_duration_t* out_duration_2);
zx_koid_t (*koid)(void* ctx, zx_koid_t koid, zx_koid_t* out_koid_2);
zx_vaddr_t (*vaddr)(void* ctx, zx_vaddr_t vaddr, zx_vaddr_t* out_vaddr_2);
zx_paddr_t (*paddr)(void* ctx, zx_paddr_t paddr, zx_paddr_t* out_paddr_2);
zx_paddr32_t (*paddr32)(void* ctx, zx_paddr32_t paddr32, zx_paddr32_t* out_paddr32_2);
zx_gpaddr_t (*gpaddr)(void* ctx, zx_gpaddr_t gpaddr, zx_gpaddr_t* out_gpaddr_2);
zx_off_t (*off)(void* ctx, zx_off_t off, zx_off_t* out_off_2);
};
struct synchronous_base_protocol {
synchronous_base_protocol_ops_t* ops;
void* ctx;
};
struct async_base_protocol_ops {
void (*status)(void* ctx, zx_status_t status, async_base_status_callback callback, void* cookie);
void (*time)(void* ctx, zx_time_t time, async_base_time_callback callback, void* cookie);
void (*duration)(void* ctx, zx_duration_t duration, async_base_duration_callback callback, void* cookie);
void (*koid)(void* ctx, zx_koid_t koid, async_base_koid_callback callback, void* cookie);
void (*vaddr)(void* ctx, zx_vaddr_t vaddr, async_base_vaddr_callback callback, void* cookie);
void (*paddr)(void* ctx, zx_paddr_t paddr, async_base_paddr_callback callback, void* cookie);
void (*paddr32)(void* ctx, zx_paddr32_t paddr32, async_base_paddr32_callback callback, void* cookie);
void (*gpaddr)(void* ctx, zx_gpaddr_t gpaddr, async_base_gpaddr_callback callback, void* cookie);
void (*off)(void* ctx, zx_off_t off, async_base_off_callback callback, void* cookie);
};
struct async_base_protocol {
async_base_protocol_ops_t* ops;
void* ctx;
};
// Helpers
static inline zx_status_t synchronous_base_status(const synchronous_base_protocol_t* proto, zx_status_t status, zx_status_t* out_status_2) {
return proto->ops->status(proto->ctx, status, out_status_2);
}
static inline zx_time_t synchronous_base_time(const synchronous_base_protocol_t* proto, zx_time_t time, zx_time_t* out_time_2) {
return proto->ops->time(proto->ctx, time, out_time_2);
}
static inline zx_duration_t synchronous_base_duration(const synchronous_base_protocol_t* proto, zx_duration_t duration, zx_duration_t* out_duration_2) {
return proto->ops->duration(proto->ctx, duration, out_duration_2);
}
static inline zx_koid_t synchronous_base_koid(const synchronous_base_protocol_t* proto, zx_koid_t koid, zx_koid_t* out_koid_2) {
return proto->ops->koid(proto->ctx, koid, out_koid_2);
}
static inline zx_vaddr_t synchronous_base_vaddr(const synchronous_base_protocol_t* proto, zx_vaddr_t vaddr, zx_vaddr_t* out_vaddr_2) {
return proto->ops->vaddr(proto->ctx, vaddr, out_vaddr_2);
}
static inline zx_paddr_t synchronous_base_paddr(const synchronous_base_protocol_t* proto, zx_paddr_t paddr, zx_paddr_t* out_paddr_2) {
return proto->ops->paddr(proto->ctx, paddr, out_paddr_2);
}
static inline zx_paddr32_t synchronous_base_paddr32(const synchronous_base_protocol_t* proto, zx_paddr32_t paddr32, zx_paddr32_t* out_paddr32_2) {
return proto->ops->paddr32(proto->ctx, paddr32, out_paddr32_2);
}
static inline zx_gpaddr_t synchronous_base_gpaddr(const synchronous_base_protocol_t* proto, zx_gpaddr_t gpaddr, zx_gpaddr_t* out_gpaddr_2) {
return proto->ops->gpaddr(proto->ctx, gpaddr, out_gpaddr_2);
}
static inline zx_off_t synchronous_base_off(const synchronous_base_protocol_t* proto, zx_off_t off, zx_off_t* out_off_2) {
return proto->ops->off(proto->ctx, off, out_off_2);
}
static inline void async_base_status(const async_base_protocol_t* proto, zx_status_t status, async_base_status_callback callback, void* cookie) {
proto->ops->status(proto->ctx, status, callback, cookie);
}
static inline void async_base_time(const async_base_protocol_t* proto, zx_time_t time, async_base_time_callback callback, void* cookie) {
proto->ops->time(proto->ctx, time, callback, cookie);
}
static inline void async_base_duration(const async_base_protocol_t* proto, zx_duration_t duration, async_base_duration_callback callback, void* cookie) {
proto->ops->duration(proto->ctx, duration, callback, cookie);
}
static inline void async_base_koid(const async_base_protocol_t* proto, zx_koid_t koid, async_base_koid_callback callback, void* cookie) {
proto->ops->koid(proto->ctx, koid, callback, cookie);
}
static inline void async_base_vaddr(const async_base_protocol_t* proto, zx_vaddr_t vaddr, async_base_vaddr_callback callback, void* cookie) {
proto->ops->vaddr(proto->ctx, vaddr, callback, cookie);
}
static inline void async_base_paddr(const async_base_protocol_t* proto, zx_paddr_t paddr, async_base_paddr_callback callback, void* cookie) {
proto->ops->paddr(proto->ctx, paddr, callback, cookie);
}
static inline void async_base_paddr32(const async_base_protocol_t* proto, zx_paddr32_t paddr32, async_base_paddr32_callback callback, void* cookie) {
proto->ops->paddr32(proto->ctx, paddr32, callback, cookie);
}
static inline void async_base_gpaddr(const async_base_protocol_t* proto, zx_gpaddr_t gpaddr, async_base_gpaddr_callback callback, void* cookie) {
proto->ops->gpaddr(proto->ctx, gpaddr, callback, cookie);
}
static inline void async_base_off(const async_base_protocol_t* proto, zx_off_t off, async_base_off_callback callback, void* cookie) {
proto->ops->off(proto->ctx, off, callback, cookie);
}
__END_CDECLS