blob: 45de397e19998384d71526405ca8600d956c3425 [file] [log] [blame]
// 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.
#ifndef ZIRCON_TOOLS_FIDL_INCLUDE_FIDL_TYPES_H_
#define ZIRCON_TOOLS_FIDL_INCLUDE_FIDL_TYPES_H_
#include <zircon/types.h>
namespace fidl {
namespace types {
enum struct Nullability {
kNullable,
kNonnullable,
};
enum struct Strictness {
kFlexible,
kStrict,
};
// Note: must keep in sync with userspace lib internal.h FidlHandleSubtype.
enum struct HandleSubtype : zx_obj_type_t {
// special case to indicate subtype is not specified.
kHandle = ZX_OBJ_TYPE_NONE,
kBti = ZX_OBJ_TYPE_BTI,
kChannel = ZX_OBJ_TYPE_CHANNEL,
kClock = ZX_OBJ_TYPE_CLOCK,
kEvent = ZX_OBJ_TYPE_EVENT,
kEventpair = ZX_OBJ_TYPE_EVENTPAIR,
kException = ZX_OBJ_TYPE_EXCEPTION,
kFifo = ZX_OBJ_TYPE_FIFO,
kGuest = ZX_OBJ_TYPE_GUEST,
kInterrupt = ZX_OBJ_TYPE_INTERRUPT,
kIommu = ZX_OBJ_TYPE_IOMMU,
kJob = ZX_OBJ_TYPE_JOB,
kLog = ZX_OBJ_TYPE_LOG,
kPager = ZX_OBJ_TYPE_PAGER,
kPciDevice = ZX_OBJ_TYPE_PCI_DEVICE,
kPmt = ZX_OBJ_TYPE_PMT,
kPort = ZX_OBJ_TYPE_PORT,
kProcess = ZX_OBJ_TYPE_PROCESS,
kProfile = ZX_OBJ_TYPE_PROFILE,
kResource = ZX_OBJ_TYPE_RESOURCE,
kSocket = ZX_OBJ_TYPE_SOCKET,
kStream = ZX_OBJ_TYPE_STREAM,
kSuspendToken = ZX_OBJ_TYPE_SUSPEND_TOKEN,
kThread = ZX_OBJ_TYPE_THREAD,
kTimer = ZX_OBJ_TYPE_TIMER,
kVcpu = ZX_OBJ_TYPE_VCPU,
kVmar = ZX_OBJ_TYPE_VMAR,
kVmo = ZX_OBJ_TYPE_VMO,
};
enum struct PrimitiveSubtype {
kBool,
kInt8,
kInt16,
kInt32,
kInt64,
kUint8,
kUint16,
kUint32,
kUint64,
kFloat32,
kFloat64,
};
enum struct MessageKind {
kRequest,
kResponse,
kEvent,
};
} // namespace types
} // namespace fidl
#endif // ZIRCON_TOOLS_FIDL_INCLUDE_FIDL_TYPES_H_