blob: 6d2fd2c7174af09a424576a9e3ab6ca1c33e0e19 [file] [log] [blame]
// header file
#pragma once
#include <stdbool.h>
#include <stdint.h>
#include <lib/fidl/coding.h>
#include <zircon/fidl.h>
#include <zircon/syscalls/object.h>
#include <zircon/types.h>
#if defined(__cplusplus)
extern "C" {
#endif
// Forward declarations
typedef uint32_t SeekOrigin;
#define SeekOrigin_Start UINT32_C(0)
#define SeekOrigin_Current UINT32_C(1)
#define SeekOrigin_End UINT32_C(2)
typedef struct ObjectCloneMsg ObjectCloneMsg;
typedef struct ObjectCloseMsg ObjectCloseMsg;
typedef struct ObjectCloseRsp ObjectCloseRsp;
typedef struct ObjectListInterfacesMsg ObjectListInterfacesMsg;
typedef struct ObjectListInterfacesRsp ObjectListInterfacesRsp;
typedef struct ObjectBindMsg ObjectBindMsg;
typedef struct ObjectDescribeMsg ObjectDescribeMsg;
typedef struct ObjectDescribeRsp ObjectDescribeRsp;
typedef struct ObjectOnOpenEvt ObjectOnOpenEvt;
typedef struct NodeSyncMsg NodeSyncMsg;
typedef struct NodeSyncRsp NodeSyncRsp;
typedef struct NodeGetAttrMsg NodeGetAttrMsg;
typedef struct NodeGetAttrRsp NodeGetAttrRsp;
typedef struct NodeSetAttrMsg NodeSetAttrMsg;
typedef struct NodeSetAttrRsp NodeSetAttrRsp;
typedef struct NodeIoctlMsg NodeIoctlMsg;
typedef struct NodeIoctlRsp NodeIoctlRsp;
typedef struct FileReadMsg FileReadMsg;
typedef struct FileReadRsp FileReadRsp;
typedef struct FileReadAtMsg FileReadAtMsg;
typedef struct FileReadAtRsp FileReadAtRsp;
typedef struct FileWriteMsg FileWriteMsg;
typedef struct FileWriteRsp FileWriteRsp;
typedef struct FileWriteAtMsg FileWriteAtMsg;
typedef struct FileWriteAtRsp FileWriteAtRsp;
typedef struct FileSeekMsg FileSeekMsg;
typedef struct FileSeekRsp FileSeekRsp;
typedef struct FileTruncateMsg FileTruncateMsg;
typedef struct FileTruncateRsp FileTruncateRsp;
typedef struct FileGetFlagsMsg FileGetFlagsMsg;
typedef struct FileGetFlagsRsp FileGetFlagsRsp;
typedef struct FileSetFlagsMsg FileSetFlagsMsg;
typedef struct FileSetFlagsRsp FileSetFlagsRsp;
typedef struct FileGetVmoMsg FileGetVmoMsg;
typedef struct FileGetVmoRsp FileGetVmoRsp;
typedef struct FileGetVmoAtMsg FileGetVmoAtMsg;
typedef struct FileGetVmoAtRsp FileGetVmoAtRsp;
typedef struct DirectoryOpenMsg DirectoryOpenMsg;
typedef struct DirectoryUnlinkMsg DirectoryUnlinkMsg;
typedef struct DirectoryUnlinkRsp DirectoryUnlinkRsp;
typedef struct DirectoryReadDirentsMsg DirectoryReadDirentsMsg;
typedef struct DirectoryReadDirentsRsp DirectoryReadDirentsRsp;
typedef struct DirectoryRewindMsg DirectoryRewindMsg;
typedef struct DirectoryRewindRsp DirectoryRewindRsp;
typedef struct DirectoryGetTokenMsg DirectoryGetTokenMsg;
typedef struct DirectoryGetTokenRsp DirectoryGetTokenRsp;
typedef struct DirectoryRenameMsg DirectoryRenameMsg;
typedef struct DirectoryRenameRsp DirectoryRenameRsp;
typedef struct DirectoryLinkMsg DirectoryLinkMsg;
typedef struct DirectoryLinkRsp DirectoryLinkRsp;
typedef struct Service Service;
typedef struct File File;
typedef struct Directory Directory;
typedef struct Pipe Pipe;
typedef struct Vmofile Vmofile;
typedef struct Device Device;
typedef struct NodeAttributes NodeAttributes;
typedef struct ObjectInfo ObjectInfo;
// Extern declarations
extern const fidl_type_t ObjectCloneReqCoded;
extern const fidl_type_t ObjectCloseReqCoded;
extern const fidl_type_t ObjectCloseRspCoded;
extern const fidl_type_t ObjectListInterfacesReqCoded;
extern const fidl_type_t ObjectListInterfacesRspCoded;
extern const fidl_type_t ObjectBindReqCoded;
extern const fidl_type_t ObjectDescribeReqCoded;
extern const fidl_type_t ObjectDescribeRspCoded;
extern const fidl_type_t ObjectOnOpenEvtCoded;
extern const fidl_type_t NodeSyncReqCoded;
extern const fidl_type_t NodeSyncRspCoded;
extern const fidl_type_t NodeGetAttrReqCoded;
extern const fidl_type_t NodeGetAttrRspCoded;
extern const fidl_type_t NodeSetAttrReqCoded;
extern const fidl_type_t NodeSetAttrRspCoded;
extern const fidl_type_t NodeIoctlReqCoded;
extern const fidl_type_t NodeIoctlRspCoded;
extern const fidl_type_t FileReadReqCoded;
extern const fidl_type_t FileReadRspCoded;
extern const fidl_type_t FileReadAtReqCoded;
extern const fidl_type_t FileReadAtRspCoded;
extern const fidl_type_t FileWriteReqCoded;
extern const fidl_type_t FileWriteRspCoded;
extern const fidl_type_t FileWriteAtReqCoded;
extern const fidl_type_t FileWriteAtRspCoded;
extern const fidl_type_t FileSeekReqCoded;
extern const fidl_type_t FileSeekRspCoded;
extern const fidl_type_t FileTruncateReqCoded;
extern const fidl_type_t FileTruncateRspCoded;
extern const fidl_type_t FileGetFlagsReqCoded;
extern const fidl_type_t FileGetFlagsRspCoded;
extern const fidl_type_t FileSetFlagsReqCoded;
extern const fidl_type_t FileSetFlagsRspCoded;
extern const fidl_type_t FileGetVmoReqCoded;
extern const fidl_type_t FileGetVmoRspCoded;
extern const fidl_type_t FileGetVmoAtReqCoded;
extern const fidl_type_t FileGetVmoAtRspCoded;
extern const fidl_type_t DirectoryOpenReqCoded;
extern const fidl_type_t DirectoryUnlinkReqCoded;
extern const fidl_type_t DirectoryUnlinkRspCoded;
extern const fidl_type_t DirectoryReadDirentsReqCoded;
extern const fidl_type_t DirectoryReadDirentsRspCoded;
extern const fidl_type_t DirectoryRewindReqCoded;
extern const fidl_type_t DirectoryRewindRspCoded;
extern const fidl_type_t DirectoryGetTokenReqCoded;
extern const fidl_type_t DirectoryGetTokenRspCoded;
extern const fidl_type_t DirectoryRenameReqCoded;
extern const fidl_type_t DirectoryRenameRspCoded;
extern const fidl_type_t DirectoryLinkReqCoded;
extern const fidl_type_t DirectoryLinkRspCoded;
// Declarations
struct Service {
uint8_t reserved; // Manually inserted to cope with zero-size struct issues
};
struct File {
zx_handle_t e;
};
struct Directory {
uint8_t reserved; // Manually inserted to cope with zero-size struct issues
};
struct Pipe {
zx_handle_t s;
};
struct Vmofile {
zx_handle_t v;
uint64_t offset;
uint64_t length;
};
struct Device {
zx_handle_t e;
};
struct NodeAttributes {
uint32_t mode;
uint64_t id;
uint64_t content_size;
uint64_t storage_size;
uint64_t link_count;
uint64_t creation_time;
uint64_t modification_time;
};
struct ObjectInfo {
fidl_union_tag_t tag;
union {
Service service;
File file;
Directory directory;
Pipe pipe;
Vmofile vmofile;
Device device;
};
};
struct ObjectCloneMsg {
fidl_message_header_t hdr;
uint32_t flags;
zx_handle_t object;
};
struct ObjectCloseMsg {
fidl_message_header_t hdr;
};
struct ObjectCloseRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
struct ObjectListInterfacesMsg {
fidl_message_header_t hdr;
};
struct ObjectListInterfacesRsp {
fidl_message_header_t hdr;
fidl_vector_t interfaces;
};
struct ObjectBindMsg {
fidl_message_header_t hdr;
fidl_string_t iface;
};
struct ObjectDescribeMsg {
fidl_message_header_t hdr;
};
struct ObjectDescribeRsp {
fidl_message_header_t hdr;
ObjectInfo info;
};
struct ObjectOnOpenEvt {
fidl_message_header_t hdr;
zx_status_t s;
ObjectInfo* info;
};
struct NodeSyncMsg {
fidl_message_header_t hdr;
};
struct NodeSyncRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
struct NodeGetAttrMsg {
fidl_message_header_t hdr;
};
struct NodeGetAttrRsp {
fidl_message_header_t hdr;
zx_status_t s;
NodeAttributes attributes;
};
struct NodeSetAttrMsg {
fidl_message_header_t hdr;
uint32_t flags;
NodeAttributes attributes;
};
struct NodeSetAttrRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
struct NodeIoctlMsg {
fidl_message_header_t hdr;
uint32_t opcode;
uint64_t max_out;
fidl_vector_t handles;
fidl_vector_t in;
};
struct NodeIoctlRsp {
fidl_message_header_t hdr;
zx_status_t s;
fidl_vector_t handles;
fidl_vector_t out;
};
struct FileReadMsg {
fidl_message_header_t hdr;
uint64_t count;
};
struct FileReadRsp {
fidl_message_header_t hdr;
zx_status_t s;
fidl_vector_t data;
};
struct FileReadAtMsg {
fidl_message_header_t hdr;
uint64_t count;
uint64_t offset;
};
struct FileReadAtRsp {
fidl_message_header_t hdr;
zx_status_t s;
fidl_vector_t data;
};
struct FileWriteMsg {
fidl_message_header_t hdr;
fidl_vector_t data;
};
struct FileWriteRsp {
fidl_message_header_t hdr;
zx_status_t s;
uint64_t actual;
};
struct FileWriteAtMsg {
fidl_message_header_t hdr;
fidl_vector_t data;
uint64_t offset;
};
struct FileWriteAtRsp {
fidl_message_header_t hdr;
zx_status_t s;
uint64_t actual;
};
struct FileSeekMsg {
fidl_message_header_t hdr;
int64_t offset;
SeekOrigin start;
};
struct FileSeekRsp {
fidl_message_header_t hdr;
zx_status_t s;
uint64_t offset;
};
struct FileTruncateMsg {
fidl_message_header_t hdr;
uint64_t length;
};
struct FileTruncateRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
struct FileGetFlagsMsg {
fidl_message_header_t hdr;
};
struct FileGetFlagsRsp {
fidl_message_header_t hdr;
zx_status_t s;
uint32_t flags;
};
struct FileSetFlagsMsg {
fidl_message_header_t hdr;
uint32_t flags;
};
struct FileSetFlagsRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
struct FileGetVmoMsg {
fidl_message_header_t hdr;
uint32_t flags;
};
struct FileGetVmoRsp {
fidl_message_header_t hdr;
zx_status_t s;
zx_handle_t v;
};
struct FileGetVmoAtMsg {
fidl_message_header_t hdr;
uint32_t flags;
uint64_t offset;
uint64_t length;
};
struct FileGetVmoAtRsp {
fidl_message_header_t hdr;
zx_status_t s;
zx_handle_t v;
};
struct DirectoryOpenMsg {
fidl_message_header_t hdr;
uint32_t flags;
uint32_t mode;
fidl_string_t path;
zx_handle_t object;
};
struct DirectoryUnlinkMsg {
fidl_message_header_t hdr;
fidl_string_t path;
};
struct DirectoryUnlinkRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
struct DirectoryReadDirentsMsg {
fidl_message_header_t hdr;
uint64_t max_out;
};
struct DirectoryReadDirentsRsp {
fidl_message_header_t hdr;
zx_status_t s;
fidl_vector_t dirents;
};
struct DirectoryRewindMsg {
fidl_message_header_t hdr;
};
struct DirectoryRewindRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
struct DirectoryGetTokenMsg {
fidl_message_header_t hdr;
};
struct DirectoryGetTokenRsp {
fidl_message_header_t hdr;
zx_status_t s;
zx_handle_t token;
};
struct DirectoryRenameMsg {
fidl_message_header_t hdr;
fidl_string_t src;
zx_handle_t dst_parent_token;
fidl_string_t dst;
};
struct DirectoryRenameRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
struct DirectoryLinkMsg {
fidl_message_header_t hdr;
fidl_string_t src;
zx_handle_t dst_parent_token;
fidl_string_t dst;
};
struct DirectoryLinkRsp {
fidl_message_header_t hdr;
zx_status_t s;
};
#define ObjectInfo_tag_service UINT32_C(0)
#define ObjectInfo_tag_file UINT32_C(1)
#define ObjectInfo_tag_directory UINT32_C(2)
#define ObjectInfo_tag_pipe UINT32_C(3)
#define ObjectInfo_tag_vmofile UINT32_C(4)
#define ObjectInfo_tag_device UINT32_C(5)
#if defined(__cplusplus)
}
#endif