blob: d8ca4994098565b5190357e1c1cb60c184c971cd [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.
//
// GENERATED FILE: Do not edit!
//
// To rebuild this file, invoke third_party/go/regen-fidl.
// +build fuchsia
package io
import (
_zx "syscall/zx"
_bindings "syscall/zx/fidl"
fuchsiamem "syscall/zx/mem"
)
const (
// Can read from target object.
OpenRightReadable uint32 = 0x00000001
// Can write to target object.
OpenRightWritable uint32 = 0x00000002
// Connection can mount/umount filesystem.
OpenRightAdmin uint32 = 0x00000004
// Create the object if it doesn't exist.
OpenFlagCreate uint32 = 0x00010000
// (with Create) Fail if the object already exists.
OpenFlagCreateIfAbsent uint32 = 0x00020000
// Truncate the object before usage.
OpenFlagTruncate uint32 = 0x00040000
// Return an error if the target object is not a directory.
OpenFlagDirectory uint32 = 0x00080000
// Seek to the end of the object before all writes.
OpenFlagAppend uint32 = 0x00100000
// If the object is a mount point, open the local directory.
OpenFlagNoRemote uint32 = 0x00200000
// Open a reference to the object, not the object itself.
//
// If an object is opened or cloned using this method, all other flags
// except for:
// - OPEN_FLAG_DIRECTORY
// - OPEN_FLAG_DESCRIBE
// Are ignored.
OpenFlagNodeReference uint32 = 0x00400000
// TODO(ZX-1723): Unimplemented.
// Binary OR of OPEN_FLAG_DIRECTORY, OPEN_FLAG_NOT_DIRECTORY, OPEN_FLAG_DESCRIBE, and
// OPEN_FLAG_NODE_REFERENCE. Flags used when opening a node reference must fall within this mask.
OpenFlagsAllowedWithNodeReference uint32 = 0x02c80000
// Requests that an "OnOpen" event is sent, with
// a non-null NodeInfo (if the open is successful).
OpenFlagDescribe uint32 = 0x00800000
// TODO(ZX-1723): Unimplemented.
// Specify this flag to request POSIX-compatibility. Currently, it affects permission handling.
// During Open:
// - If the target path is a directory, the rights on the new connection expands to include
// OPEN_RIGHT_WRITABLE if and only if the current connection and all intermediate mount points
// are writable.
// - Otherwise, this flag is ignored. It is an access denied error to request more rights
// than those on the current connection, or any intermediate mount points.
//
// If the posix compatibility flag is not specified, opening always uses the requested rights,
// failing the operation with access denied error if requested rights exceeds the rights attached
// to the current connection.
//
// If the requesting connection is read-only and the requested rights are read-only, the flag
// may be ignored by the server, and is not forwarded downstream. This is an implementation detail,
// necessary to enforce hierarchical permissions across mount points, and should have no effect
// on the expected behavior for clients.
OpenFlagPosix uint32 = 0x01000000
// TODO(ZX-1723): Unimplemented.
// Assert that the object to be opened is not a directory.
// Return an error if the target object is a directory.
OpenFlagNotDirectory uint32 = 0x02000000
// TODO(ZX-1723): Unimplemented.
// When used during clone, the new connection inherits the rights on the source connection,
// regardless if it is a file or directory. Otherwise, clone attempts to use the requested rights.
// It is invalid to pass any of the OPEN_RIGHT_* flags together with CLONE_FLAGS_SAME_RIGHTS.
CloneFlagSameRights uint32 = 0x04000000
// Bits reserved for posix protections. Native fuchsia filesystems
// are not required to set bits contained within MODE_PROTECTION_MASK,
// but filesystems that wish to do so may refer to sys/stat.h for their
// definitions.
ModeProtectionMask uint32 = 0x00FFF
// Bits indicating node type. The canonical mechanism to check
// for a node type is to take 'mode', bitwise and it with the
// MODE_TYPE_MASK, and check exact equality against a mode type.
ModeTypeMask uint32 = 0xFF000
ModeTypeDirectory uint32 = 0x04000
ModeTypeBlockDevice uint32 = 0x06000
ModeTypeFile uint32 = 0x08000
ModeTypeSocket uint32 = 0x0C000
ModeTypeService uint32 = 0x10000
MaxIoctlHandles uint64 = 2
MaxBuf uint64 = 8192
MaxPath uint64 = 4096
MaxFilename uint64 = 255
// The fields of 'attributes' which are used to update the Node are indicated
// by the 'flags' argument.
NodeAttributeFlagCreationTime uint32 = 0x00000001
NodeAttributeFlagModificationTime uint32 = 0x00000002
// Requests that the VMO be readable.
VmoFlagRead uint32 = 0x00000001
// Requests that the VMO be writable.
VmoFlagWrite uint32 = 0x00000002
// Requests that the VMO be executable.
VmoFlagExec uint32 = 0x00000004
// Require a copy-on-write clone of the underlying VMO.
// The request should fail if the VMO is not cloned.
// May not be supplied with fuchsia_io_VMO_FLAG_EXACT.
VmoFlagPrivate uint32 = 0x00010000
// Require an exact (non-cloned) handle to the underlying VMO.
// The request should fail if a handle to the exact VMO is not returned.
// May not be supplied with VMO_FLAG_PRIVATE.
VmoFlagExact uint32 = 0x00020000
// Dirent type information associated with the results of ReadDirents.
DirentTypeUnknown uint8 = 0
DirentTypeDirectory uint8 = 4
DirentTypeBlockDevice uint8 = 6
DirentTypeFile uint8 = 8
DirentTypeSocket uint8 = 12
DirentTypeService uint8 = 16
// Nodes which do not have ino values should return this value
// from Readdir and GetAttr.
InoUnknown uint64 = 0xFFFFFFFFFFFFFFFF
// Indicates the directory being watched has been deleted.
WatchEventDeleted uint8 = 0
// Indicates a node has been created (either new or moved) into a directory.
WatchEventAdded uint8 = 1
// Identifies a node has been removed (either deleted or moved) from the directory.
WatchEventRemoved uint8 = 2
// Identifies a node already existed in the directory when watching started.
WatchEventExisting uint8 = 3
// Identifies that no more WATCH_EVENT_EXISTING events will be sent.
WatchEventIdle uint8 = 4
// The following are bitmasks corresponding to the "watch events".
// They may be used as arguments to the Directory Watch method, to
// specify which events should receive notifications.
WatchMaskDeleted uint32 = 0x00000001
WatchMaskAdded uint32 = 0x00000002
WatchMaskRemoved uint32 = 0x00000004
WatchMaskExisting uint32 = 0x00000008
WatchMaskIdle uint32 = 0x00000010
WatchMaskAll uint32 = 0x0000001F
MountCreateFlagReplace uint32 = 0x00000001
MaxFsNameBuffer uint64 = 32
)
// Update the Seek offset.
type SeekOrigin uint32
const (
SeekOriginStart SeekOrigin = 0
SeekOriginCurrent SeekOrigin = 1
SeekOriginEnd SeekOrigin = 2
)
func (x SeekOrigin) String() string {
switch x {
case 0:
return "Start"
case 1:
return "Current"
case 2:
return "End"
}
return "Unknown"
}
// The default protocol, interface information must be acquired some
// other way.
type Service struct {
_ struct{} `fidl2:"s,1,1"`
Reserved uint8
}
var _mService = _bindings.CreateLazyMarshaler(Service{})
func (msg *Service) Marshaler() _bindings.Marshaler {
return _mService
}
// Implements Payload.
func (_ *Service) InlineAlignment() int {
return 1
}
// Implements Payload.
func (_ *Service) InlineSize() int {
return 1
}
// The object may be cast to interface 'File'.
type FileObject struct {
_ struct{} `fidl2:"s,4,4"`
Event _zx.Event `fidl:"*" fidl2:"1"`
}
var _mFileObject = _bindings.CreateLazyMarshaler(FileObject{})
func (msg *FileObject) Marshaler() _bindings.Marshaler {
return _mFileObject
}
// Implements Payload.
func (_ *FileObject) InlineAlignment() int {
return 4
}
// Implements Payload.
func (_ *FileObject) InlineSize() int {
return 4
}
// The object may be cast to interface 'Directory'.
type DirectoryObject struct {
_ struct{} `fidl2:"s,1,1"`
Reserved uint8
}
var _mDirectoryObject = _bindings.CreateLazyMarshaler(DirectoryObject{})
func (msg *DirectoryObject) Marshaler() _bindings.Marshaler {
return _mDirectoryObject
}
// Implements Payload.
func (_ *DirectoryObject) InlineAlignment() int {
return 1
}
// Implements Payload.
func (_ *DirectoryObject) InlineSize() int {
return 1
}
// The object is accompanied by a pipe.
type Pipe struct {
_ struct{} `fidl2:"s,4,4"`
Socket _zx.Socket `fidl2:"0"`
}
var _mPipe = _bindings.CreateLazyMarshaler(Pipe{})
func (msg *Pipe) Marshaler() _bindings.Marshaler {
return _mPipe
}
// Implements Payload.
func (_ *Pipe) InlineAlignment() int {
return 4
}
// Implements Payload.
func (_ *Pipe) InlineSize() int {
return 4
}
// The object is accompanied by a VMO.
type Vmofile struct {
_ struct{} `fidl2:"s,24,8"`
Vmo _zx.VMO `fidl2:"0"`
Offset uint64
Length uint64
}
var _mVmofile = _bindings.CreateLazyMarshaler(Vmofile{})
func (msg *Vmofile) Marshaler() _bindings.Marshaler {
return _mVmofile
}
// Implements Payload.
func (_ *Vmofile) InlineAlignment() int {
return 8
}
// Implements Payload.
func (_ *Vmofile) InlineSize() int {
return 24
}
// The object may be cast to interface 'Device'.
type Device struct {
_ struct{} `fidl2:"s,4,4"`
Event _zx.Event `fidl:"*" fidl2:"1"`
}
var _mDevice = _bindings.CreateLazyMarshaler(Device{})
func (msg *Device) Marshaler() _bindings.Marshaler {
return _mDevice
}
// Implements Payload.
func (_ *Device) InlineAlignment() int {
return 4
}
// Implements Payload.
func (_ *Device) InlineSize() int {
return 4
}
// NodeAttributes defines generic information about a filesystem node.
type NodeAttributes struct {
_ struct{} `fidl2:"s,56,8"`
// Protection bits and node type information describe in 'mode'.
Mode uint32
// A filesystem-unique ID.
Id uint64
// Node size, in bytes.
ContentSize uint64
// Space needed to store node (possibly larger than size), in bytes.
StorageSize uint64
// Hard link count.
LinkCount uint64
// Time of creation (may be updated manually after creation) in ns since Unix epoch, UTC.
CreationTime uint64
// Time of last modification in ns since Unix epoch, UTC.
ModificationTime uint64
}
var _mNodeAttributes = _bindings.CreateLazyMarshaler(NodeAttributes{})
func (msg *NodeAttributes) Marshaler() _bindings.Marshaler {
return _mNodeAttributes
}
// Implements Payload.
func (_ *NodeAttributes) InlineAlignment() int {
return 8
}
// Implements Payload.
func (_ *NodeAttributes) InlineSize() int {
return 56
}
// WARNING(ZX-2645): Unused.
//
// WatchedEvent describes events returned from a DirectoryWatcher.
type WatchedEvent struct {
_ struct{} `fidl2:"s,24,8"`
Event uint8
Len uint8
Name []uint8 `fidl:"255" fidl2:"255"`
}
var _mWatchedEvent = _bindings.CreateLazyMarshaler(WatchedEvent{})
func (msg *WatchedEvent) Marshaler() _bindings.Marshaler {
return _mWatchedEvent
}
// Implements Payload.
func (_ *WatchedEvent) InlineAlignment() int {
return 8
}
// Implements Payload.
func (_ *WatchedEvent) InlineSize() int {
return 24
}
type FilesystemInfo struct {
_ struct{} `fidl2:"s,96,8"`
// The number of data bytes which may be stored in a filesystem.
TotalBytes uint64
// The number of data bytes which are in use by the filesystem.
UsedBytes uint64
// The number of nodes which may be stored in the filesystem.
TotalNodes uint64
// The number of nodes used by the filesystem.
UsedNodes uint64
// The amount of space which may be allocated from the underlying
// volume manager. If unsupported, this will be zero.
FreeSharedPoolBytes uint64
// A unique identifier for this filesystem instance. Will not be preserved
// across reboots.
FsId uint64
// The size of a single filesystem block.
BlockSize uint32
// The maximum length of a filesystem name.
MaxFilenameSize uint32
// A unique identifier for the type of the underlying filesystem.
FsType uint32
Padding uint32
// TODO(smklein): Replace this field with a string when supported
// by the "Simple" interface. At the moment, name is a fixed-size,
// null-terminated buffer.
Name [32]int8
}
var _mFilesystemInfo = _bindings.CreateLazyMarshaler(FilesystemInfo{})
func (msg *FilesystemInfo) Marshaler() _bindings.Marshaler {
return _mFilesystemInfo
}
// Implements Payload.
func (_ *FilesystemInfo) InlineAlignment() int {
return 8
}
// Implements Payload.
func (_ *FilesystemInfo) InlineSize() int {
return 96
}
type NodeInfoTag uint32
const (
_ NodeInfoTag = iota
NodeInfoService
NodeInfoFile
NodeInfoDirectory
NodeInfoPipe
NodeInfoVmofile
NodeInfoDevice
)
// Describes how the connection to an should be handled, as well as
// how to interpret the optional handle.
//
// Refer to |Node::Describe()| and |Node::OnOpen()| for usage.
type NodeInfo struct {
NodeInfoTag `fidl:"tag" fidl2:"u,32,8"`
Service Service
File FileObject
Directory DirectoryObject
Pipe Pipe
Vmofile Vmofile
Device Device
}
// Implements Payload.
func (_ *NodeInfo) InlineAlignment() int {
return 8
}
// Implements Payload.
func (_ *NodeInfo) InlineSize() int {
return 32
}
func (u *NodeInfo) Which() NodeInfoTag {
return u.NodeInfoTag
}
func (u *NodeInfo) SetService(service Service) {
u.NodeInfoTag = NodeInfoService
u.Service = service
}
func (u *NodeInfo) SetFile(file FileObject) {
u.NodeInfoTag = NodeInfoFile
u.File = file
}
func (u *NodeInfo) SetDirectory(directory DirectoryObject) {
u.NodeInfoTag = NodeInfoDirectory
u.Directory = directory
}
func (u *NodeInfo) SetPipe(pipe Pipe) {
u.NodeInfoTag = NodeInfoPipe
u.Pipe = pipe
}
func (u *NodeInfo) SetVmofile(vmofile Vmofile) {
u.NodeInfoTag = NodeInfoVmofile
u.Vmofile = vmofile
}
func (u *NodeInfo) SetDevice(device Device) {
u.NodeInfoTag = NodeInfoDevice
u.Device = device
}
const (
NodeCloneOrdinal uint32 = 402549324
NodeCloneGenOrdinal uint32 = 402549324
NodeCloseOrdinal uint32 = 1387878023
NodeCloseGenOrdinal uint32 = 1387878023
NodeDescribeOrdinal uint32 = 526573406
NodeDescribeGenOrdinal uint32 = 526573406
NodeOnOpenOrdinal uint32 = 1191225277
NodeOnOpenGenOrdinal uint32 = 1191225277
NodeSyncOrdinal uint32 = 1648508842
NodeSyncGenOrdinal uint32 = 1648508842
NodeGetAttrOrdinal uint32 = 1166403528
NodeGetAttrGenOrdinal uint32 = 1166403528
NodeSetAttrOrdinal uint32 = 198530458
NodeSetAttrGenOrdinal uint32 = 198530458
NodeIoctlOrdinal uint32 = 905161895
NodeIoctlGenOrdinal uint32 = 905161895
)
type NodeCloneRequest struct {
_ struct{} `fidl2:"s,8,0"`
Flags uint32
Object NodeInterfaceRequest `fidl2:"0"`
}
var _mNodeCloneRequest = _bindings.CreateLazyMarshaler(NodeCloneRequest{})
func (msg *NodeCloneRequest) Marshaler() _bindings.Marshaler {
return _mNodeCloneRequest
}
// Implements Payload.
func (_ *NodeCloneRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeCloneRequest) InlineSize() int {
return 8
}
type NodeCloseResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mNodeCloseResponse = _bindings.CreateLazyMarshaler(NodeCloseResponse{})
func (msg *NodeCloseResponse) Marshaler() _bindings.Marshaler {
return _mNodeCloseResponse
}
// Implements Payload.
func (_ *NodeCloseResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeCloseResponse) InlineSize() int {
return 8
}
type NodeDescribeResponse struct {
_ struct{} `fidl2:"s,32,0"`
Info NodeInfo
}
var _mNodeDescribeResponse = _bindings.CreateLazyMarshaler(NodeDescribeResponse{})
func (msg *NodeDescribeResponse) Marshaler() _bindings.Marshaler {
return _mNodeDescribeResponse
}
// Implements Payload.
func (_ *NodeDescribeResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeDescribeResponse) InlineSize() int {
return 32
}
type NodeOnOpenResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Info *NodeInfo
}
var _mNodeOnOpenResponse = _bindings.CreateLazyMarshaler(NodeOnOpenResponse{})
func (msg *NodeOnOpenResponse) Marshaler() _bindings.Marshaler {
return _mNodeOnOpenResponse
}
// Implements Payload.
func (_ *NodeOnOpenResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeOnOpenResponse) InlineSize() int {
return 16
}
type NodeSyncResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mNodeSyncResponse = _bindings.CreateLazyMarshaler(NodeSyncResponse{})
func (msg *NodeSyncResponse) Marshaler() _bindings.Marshaler {
return _mNodeSyncResponse
}
// Implements Payload.
func (_ *NodeSyncResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeSyncResponse) InlineSize() int {
return 8
}
type NodeGetAttrResponse struct {
_ struct{} `fidl2:"s,64,0"`
S int32
Attributes NodeAttributes
}
var _mNodeGetAttrResponse = _bindings.CreateLazyMarshaler(NodeGetAttrResponse{})
func (msg *NodeGetAttrResponse) Marshaler() _bindings.Marshaler {
return _mNodeGetAttrResponse
}
// Implements Payload.
func (_ *NodeGetAttrResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeGetAttrResponse) InlineSize() int {
return 64
}
type NodeSetAttrRequest struct {
_ struct{} `fidl2:"s,64,0"`
Flags uint32
Attributes NodeAttributes
}
var _mNodeSetAttrRequest = _bindings.CreateLazyMarshaler(NodeSetAttrRequest{})
func (msg *NodeSetAttrRequest) Marshaler() _bindings.Marshaler {
return _mNodeSetAttrRequest
}
// Implements Payload.
func (_ *NodeSetAttrRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeSetAttrRequest) InlineSize() int {
return 64
}
type NodeSetAttrResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mNodeSetAttrResponse = _bindings.CreateLazyMarshaler(NodeSetAttrResponse{})
func (msg *NodeSetAttrResponse) Marshaler() _bindings.Marshaler {
return _mNodeSetAttrResponse
}
// Implements Payload.
func (_ *NodeSetAttrResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeSetAttrResponse) InlineSize() int {
return 8
}
type NodeIoctlRequest struct {
_ struct{} `fidl2:"s,48,0"`
Opcode uint32
MaxOut uint64
Handles []_zx.Handle `fidl:"2" fidl2:"2,0"`
In []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mNodeIoctlRequest = _bindings.CreateLazyMarshaler(NodeIoctlRequest{})
func (msg *NodeIoctlRequest) Marshaler() _bindings.Marshaler {
return _mNodeIoctlRequest
}
// Implements Payload.
func (_ *NodeIoctlRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeIoctlRequest) InlineSize() int {
return 48
}
type NodeIoctlResponse struct {
_ struct{} `fidl2:"s,40,0"`
S int32
Handles []_zx.Handle `fidl:"2" fidl2:"2,0"`
Out []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mNodeIoctlResponse = _bindings.CreateLazyMarshaler(NodeIoctlResponse{})
func (msg *NodeIoctlResponse) Marshaler() _bindings.Marshaler {
return _mNodeIoctlResponse
}
// Implements Payload.
func (_ *NodeIoctlResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *NodeIoctlResponse) InlineSize() int {
return 40
}
type NodeInterface _bindings.ChannelProxy
// Create another connection to the same remote object.
//
// |flags| may be any of:
// - OPEN_RIGHT_*
// - OPEN_FLAG_APPEND
// - OPEN_FLAG_NO_REMOTE
// - OPEN_FLAG_DESCRIBE
//
// All other flags are ignored.
//
// The cloned object must have rights less than or equal to the original object.
//
// TODO: Currently, ulib/fs ignores OPEN_RIGHT_*, and uses the rights of the original
// connection. This is a bug.
func (p *NodeInterface) Clone(flags uint32, object NodeInterfaceRequest) error {
req_ := &NodeCloneRequest{
Flags: flags,
Object: object,
}
err := ((*_bindings.ChannelProxy)(p)).Send(NodeCloneOrdinal, req_)
return err
}
// Terminates connection with object.
//
// This method does not require any rights.
func (p *NodeInterface) Close() (int32, error) {
var req_ _bindings.Payload
resp_ := &NodeCloseResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(NodeCloseOrdinal, req_, resp_)
return resp_.S, err
}
// Returns extra information about the type of the object.
// If the |Describe| operation fails, the connection is closed.
//
// This method does not require any rights.
func (p *NodeInterface) Describe() (NodeInfo, error) {
var req_ _bindings.Payload
resp_ := &NodeDescribeResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(NodeDescribeOrdinal, req_, resp_)
return resp_.Info, err
}
// An event produced eagerly by a fidl server if requested by |OPEN_FLAG_DESCRIBE|.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is |ZX_OK|, |info| contains descriptive information about the object
// (the same as would be returned by |Describe|).
func (p *NodeInterface) ExpectOnOpen() (int32, *NodeInfo, error) {
resp_ := &NodeOnOpenResponse{}
err := ((*_bindings.ChannelProxy)(p)).Recv(NodeOnOpenOrdinal, resp_)
return resp_.S, resp_.Info, err
}
// Synchronizes updates to the node to the underlying media, if it exists.
func (p *NodeInterface) Sync() (int32, error) {
var req_ _bindings.Payload
resp_ := &NodeSyncResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(NodeSyncOrdinal, req_, resp_)
return resp_.S, err
}
// Acquires information about the node.
//
// This method does not require any rights.
func (p *NodeInterface) GetAttr() (int32, NodeAttributes, error) {
var req_ _bindings.Payload
resp_ := &NodeGetAttrResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(NodeGetAttrOrdinal, req_, resp_)
return resp_.S, resp_.Attributes, err
}
// Updates information about the node.
// |flags| may be any of NODE_ATTRIBUTE_FLAG_*.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
// TODO(ZX-1262): This access restriction is not implemented in ulib/fs.
func (p *NodeInterface) SetAttr(flags uint32, attributes NodeAttributes) (int32, error) {
req_ := &NodeSetAttrRequest{
Flags: flags,
Attributes: attributes,
}
resp_ := &NodeSetAttrResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(NodeSetAttrOrdinal, req_, resp_)
return resp_.S, err
}
// Deprecated. Only for use with compatibility with devhost.
func (p *NodeInterface) Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error) {
req_ := &NodeIoctlRequest{
Opcode: opcode,
MaxOut: maxOut,
Handles: handles,
In: in,
}
resp_ := &NodeIoctlResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(NodeIoctlOrdinal, req_, resp_)
return resp_.S, resp_.Handles, resp_.Out, err
}
// Node defines the minimal interface for entities which can be accessed in a filesystem.
type Node interface {
// Create another connection to the same remote object.
//
// |flags| may be any of:
// - OPEN_RIGHT_*
// - OPEN_FLAG_APPEND
// - OPEN_FLAG_NO_REMOTE
// - OPEN_FLAG_DESCRIBE
//
// All other flags are ignored.
//
// The cloned object must have rights less than or equal to the original object.
//
// TODO: Currently, ulib/fs ignores OPEN_RIGHT_*, and uses the rights of the original
// connection. This is a bug.
Clone(flags uint32, object NodeInterfaceRequest) error
// Terminates connection with object.
//
// This method does not require any rights.
Close() (int32, error)
// Returns extra information about the type of the object.
// If the |Describe| operation fails, the connection is closed.
//
// This method does not require any rights.
Describe() (NodeInfo, error)
// An event produced eagerly by a fidl server if requested by |OPEN_FLAG_DESCRIBE|.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is |ZX_OK|, |info| contains descriptive information about the object
// (the same as would be returned by |Describe|).
// Synchronizes updates to the node to the underlying media, if it exists.
Sync() (int32, error)
// Acquires information about the node.
//
// This method does not require any rights.
GetAttr() (int32, NodeAttributes, error)
// Updates information about the node.
// |flags| may be any of NODE_ATTRIBUTE_FLAG_*.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
// TODO(ZX-1262): This access restriction is not implemented in ulib/fs.
SetAttr(flags uint32, attributes NodeAttributes) (int32, error)
// Deprecated. Only for use with compatibility with devhost.
Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error)
}
type NodeTransitionalBase struct{}
type NodeInterfaceRequest _bindings.InterfaceRequest
func NewNodeInterfaceRequest() (NodeInterfaceRequest, *NodeInterface, error) {
req, cli, err := _bindings.NewInterfaceRequest()
return NodeInterfaceRequest(req), (*NodeInterface)(cli), err
}
type NodeStub struct {
Impl Node
}
func (s *NodeStub) Dispatch(ord uint32, b_ []byte, h_ []_zx.Handle) (_bindings.Payload, error) {
switch ord {
case NodeCloneOrdinal:
in_ := NodeCloneRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
err_ := s.Impl.Clone(in_.Flags, in_.Object)
return nil, err_
case NodeCloseOrdinal:
s, err_ := s.Impl.Close()
out_ := NodeCloseResponse{}
out_.S = s
return &out_, err_
case NodeDescribeOrdinal:
info, err_ := s.Impl.Describe()
out_ := NodeDescribeResponse{}
out_.Info = info
return &out_, err_
case NodeSyncOrdinal:
s, err_ := s.Impl.Sync()
out_ := NodeSyncResponse{}
out_.S = s
return &out_, err_
case NodeGetAttrOrdinal:
s, attributes, err_ := s.Impl.GetAttr()
out_ := NodeGetAttrResponse{}
out_.S = s
out_.Attributes = attributes
return &out_, err_
case NodeSetAttrOrdinal:
in_ := NodeSetAttrRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.SetAttr(in_.Flags, in_.Attributes)
out_ := NodeSetAttrResponse{}
out_.S = s
return &out_, err_
case NodeIoctlOrdinal:
in_ := NodeIoctlRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, handles, out, err_ := s.Impl.Ioctl(in_.Opcode, in_.MaxOut, in_.Handles, in_.In)
out_ := NodeIoctlResponse{}
out_.S = s
out_.Handles = handles
out_.Out = out
return &out_, err_
}
return nil, _bindings.ErrUnknownOrdinal
}
type NodeService struct {
_bindings.BindingSet
}
func (s *NodeService) Add(impl Node, c _zx.Channel, onError func(error)) (_bindings.BindingKey, error) {
return s.BindingSet.Add(&NodeStub{Impl: impl}, c, onError)
}
func (s *NodeService) EventProxyFor(key _bindings.BindingKey) (*NodeEventProxy, bool) {
pxy, err := s.BindingSet.ProxyFor(key)
return (*NodeEventProxy)(pxy), err
}
type NodeEventProxy _bindings.ChannelProxy
func (p *NodeEventProxy) OnOpen(s int32, info *NodeInfo) error {
event_ := &NodeOnOpenResponse{
S: s,
Info: info,
}
return ((*_bindings.ChannelProxy)(p)).Send(NodeOnOpenOrdinal, event_)
}
const (
FileCloneOrdinal uint32 = 402549324
FileCloneGenOrdinal uint32 = 402549324
FileCloseOrdinal uint32 = 1387878023
FileCloseGenOrdinal uint32 = 1387878023
FileDescribeOrdinal uint32 = 526573406
FileDescribeGenOrdinal uint32 = 526573406
FileOnOpenOrdinal uint32 = 1191225277
FileOnOpenGenOrdinal uint32 = 1191225277
FileSyncOrdinal uint32 = 1648508842
FileSyncGenOrdinal uint32 = 1648508842
FileGetAttrOrdinal uint32 = 1166403528
FileGetAttrGenOrdinal uint32 = 1166403528
FileSetAttrOrdinal uint32 = 198530458
FileSetAttrGenOrdinal uint32 = 198530458
FileIoctlOrdinal uint32 = 905161895
FileIoctlGenOrdinal uint32 = 905161895
FileReadOrdinal uint32 = 636961156
FileReadGenOrdinal uint32 = 636961156
FileReadAtOrdinal uint32 = 2087865796
FileReadAtGenOrdinal uint32 = 2087865796
FileWriteOrdinal uint32 = 85125024
FileWriteGenOrdinal uint32 = 85125024
FileWriteAtOrdinal uint32 = 1045766885
FileWriteAtGenOrdinal uint32 = 1045766885
FileSeekOrdinal uint32 = 2016048965
FileSeekGenOrdinal uint32 = 2016048965
FileTruncateOrdinal uint32 = 1118517818
FileTruncateGenOrdinal uint32 = 1118517818
FileGetFlagsOrdinal uint32 = 1679205366
FileGetFlagsGenOrdinal uint32 = 1679205366
FileSetFlagsOrdinal uint32 = 1059310710
FileSetFlagsGenOrdinal uint32 = 1059310710
FileGetBufferOrdinal uint32 = 1958938995
FileGetBufferGenOrdinal uint32 = 1958938995
)
type FileCloneRequest struct {
_ struct{} `fidl2:"s,8,0"`
Flags uint32
Object NodeInterfaceRequest `fidl2:"0"`
}
var _mFileCloneRequest = _bindings.CreateLazyMarshaler(FileCloneRequest{})
func (msg *FileCloneRequest) Marshaler() _bindings.Marshaler {
return _mFileCloneRequest
}
// Implements Payload.
func (_ *FileCloneRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileCloneRequest) InlineSize() int {
return 8
}
type FileCloseResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mFileCloseResponse = _bindings.CreateLazyMarshaler(FileCloseResponse{})
func (msg *FileCloseResponse) Marshaler() _bindings.Marshaler {
return _mFileCloseResponse
}
// Implements Payload.
func (_ *FileCloseResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileCloseResponse) InlineSize() int {
return 8
}
type FileDescribeResponse struct {
_ struct{} `fidl2:"s,32,0"`
Info NodeInfo
}
var _mFileDescribeResponse = _bindings.CreateLazyMarshaler(FileDescribeResponse{})
func (msg *FileDescribeResponse) Marshaler() _bindings.Marshaler {
return _mFileDescribeResponse
}
// Implements Payload.
func (_ *FileDescribeResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileDescribeResponse) InlineSize() int {
return 32
}
type FileOnOpenResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Info *NodeInfo
}
var _mFileOnOpenResponse = _bindings.CreateLazyMarshaler(FileOnOpenResponse{})
func (msg *FileOnOpenResponse) Marshaler() _bindings.Marshaler {
return _mFileOnOpenResponse
}
// Implements Payload.
func (_ *FileOnOpenResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileOnOpenResponse) InlineSize() int {
return 16
}
type FileSyncResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mFileSyncResponse = _bindings.CreateLazyMarshaler(FileSyncResponse{})
func (msg *FileSyncResponse) Marshaler() _bindings.Marshaler {
return _mFileSyncResponse
}
// Implements Payload.
func (_ *FileSyncResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileSyncResponse) InlineSize() int {
return 8
}
type FileGetAttrResponse struct {
_ struct{} `fidl2:"s,64,0"`
S int32
Attributes NodeAttributes
}
var _mFileGetAttrResponse = _bindings.CreateLazyMarshaler(FileGetAttrResponse{})
func (msg *FileGetAttrResponse) Marshaler() _bindings.Marshaler {
return _mFileGetAttrResponse
}
// Implements Payload.
func (_ *FileGetAttrResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileGetAttrResponse) InlineSize() int {
return 64
}
type FileSetAttrRequest struct {
_ struct{} `fidl2:"s,64,0"`
Flags uint32
Attributes NodeAttributes
}
var _mFileSetAttrRequest = _bindings.CreateLazyMarshaler(FileSetAttrRequest{})
func (msg *FileSetAttrRequest) Marshaler() _bindings.Marshaler {
return _mFileSetAttrRequest
}
// Implements Payload.
func (_ *FileSetAttrRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileSetAttrRequest) InlineSize() int {
return 64
}
type FileSetAttrResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mFileSetAttrResponse = _bindings.CreateLazyMarshaler(FileSetAttrResponse{})
func (msg *FileSetAttrResponse) Marshaler() _bindings.Marshaler {
return _mFileSetAttrResponse
}
// Implements Payload.
func (_ *FileSetAttrResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileSetAttrResponse) InlineSize() int {
return 8
}
type FileIoctlRequest struct {
_ struct{} `fidl2:"s,48,0"`
Opcode uint32
MaxOut uint64
Handles []_zx.Handle `fidl:"2" fidl2:"2,0"`
In []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mFileIoctlRequest = _bindings.CreateLazyMarshaler(FileIoctlRequest{})
func (msg *FileIoctlRequest) Marshaler() _bindings.Marshaler {
return _mFileIoctlRequest
}
// Implements Payload.
func (_ *FileIoctlRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileIoctlRequest) InlineSize() int {
return 48
}
type FileIoctlResponse struct {
_ struct{} `fidl2:"s,40,0"`
S int32
Handles []_zx.Handle `fidl:"2" fidl2:"2,0"`
Out []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mFileIoctlResponse = _bindings.CreateLazyMarshaler(FileIoctlResponse{})
func (msg *FileIoctlResponse) Marshaler() _bindings.Marshaler {
return _mFileIoctlResponse
}
// Implements Payload.
func (_ *FileIoctlResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileIoctlResponse) InlineSize() int {
return 40
}
type FileReadRequest struct {
_ struct{} `fidl2:"s,8,0"`
Count uint64
}
var _mFileReadRequest = _bindings.CreateLazyMarshaler(FileReadRequest{})
func (msg *FileReadRequest) Marshaler() _bindings.Marshaler {
return _mFileReadRequest
}
// Implements Payload.
func (_ *FileReadRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileReadRequest) InlineSize() int {
return 8
}
type FileReadResponse struct {
_ struct{} `fidl2:"s,24,0"`
S int32
Data []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mFileReadResponse = _bindings.CreateLazyMarshaler(FileReadResponse{})
func (msg *FileReadResponse) Marshaler() _bindings.Marshaler {
return _mFileReadResponse
}
// Implements Payload.
func (_ *FileReadResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileReadResponse) InlineSize() int {
return 24
}
type FileReadAtRequest struct {
_ struct{} `fidl2:"s,16,0"`
Count uint64
Offset uint64
}
var _mFileReadAtRequest = _bindings.CreateLazyMarshaler(FileReadAtRequest{})
func (msg *FileReadAtRequest) Marshaler() _bindings.Marshaler {
return _mFileReadAtRequest
}
// Implements Payload.
func (_ *FileReadAtRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileReadAtRequest) InlineSize() int {
return 16
}
type FileReadAtResponse struct {
_ struct{} `fidl2:"s,24,0"`
S int32
Data []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mFileReadAtResponse = _bindings.CreateLazyMarshaler(FileReadAtResponse{})
func (msg *FileReadAtResponse) Marshaler() _bindings.Marshaler {
return _mFileReadAtResponse
}
// Implements Payload.
func (_ *FileReadAtResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileReadAtResponse) InlineSize() int {
return 24
}
type FileWriteRequest struct {
_ struct{} `fidl2:"s,16,0"`
Data []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mFileWriteRequest = _bindings.CreateLazyMarshaler(FileWriteRequest{})
func (msg *FileWriteRequest) Marshaler() _bindings.Marshaler {
return _mFileWriteRequest
}
// Implements Payload.
func (_ *FileWriteRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileWriteRequest) InlineSize() int {
return 16
}
type FileWriteResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Actual uint64
}
var _mFileWriteResponse = _bindings.CreateLazyMarshaler(FileWriteResponse{})
func (msg *FileWriteResponse) Marshaler() _bindings.Marshaler {
return _mFileWriteResponse
}
// Implements Payload.
func (_ *FileWriteResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileWriteResponse) InlineSize() int {
return 16
}
type FileWriteAtRequest struct {
_ struct{} `fidl2:"s,24,0"`
Data []uint8 `fidl:"8192" fidl2:"8192"`
Offset uint64
}
var _mFileWriteAtRequest = _bindings.CreateLazyMarshaler(FileWriteAtRequest{})
func (msg *FileWriteAtRequest) Marshaler() _bindings.Marshaler {
return _mFileWriteAtRequest
}
// Implements Payload.
func (_ *FileWriteAtRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileWriteAtRequest) InlineSize() int {
return 24
}
type FileWriteAtResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Actual uint64
}
var _mFileWriteAtResponse = _bindings.CreateLazyMarshaler(FileWriteAtResponse{})
func (msg *FileWriteAtResponse) Marshaler() _bindings.Marshaler {
return _mFileWriteAtResponse
}
// Implements Payload.
func (_ *FileWriteAtResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileWriteAtResponse) InlineSize() int {
return 16
}
type FileSeekRequest struct {
_ struct{} `fidl2:"s,16,0"`
Offset int64
Start SeekOrigin
}
var _mFileSeekRequest = _bindings.CreateLazyMarshaler(FileSeekRequest{})
func (msg *FileSeekRequest) Marshaler() _bindings.Marshaler {
return _mFileSeekRequest
}
// Implements Payload.
func (_ *FileSeekRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileSeekRequest) InlineSize() int {
return 16
}
type FileSeekResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Offset uint64
}
var _mFileSeekResponse = _bindings.CreateLazyMarshaler(FileSeekResponse{})
func (msg *FileSeekResponse) Marshaler() _bindings.Marshaler {
return _mFileSeekResponse
}
// Implements Payload.
func (_ *FileSeekResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileSeekResponse) InlineSize() int {
return 16
}
type FileTruncateRequest struct {
_ struct{} `fidl2:"s,8,0"`
Length uint64
}
var _mFileTruncateRequest = _bindings.CreateLazyMarshaler(FileTruncateRequest{})
func (msg *FileTruncateRequest) Marshaler() _bindings.Marshaler {
return _mFileTruncateRequest
}
// Implements Payload.
func (_ *FileTruncateRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileTruncateRequest) InlineSize() int {
return 8
}
type FileTruncateResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mFileTruncateResponse = _bindings.CreateLazyMarshaler(FileTruncateResponse{})
func (msg *FileTruncateResponse) Marshaler() _bindings.Marshaler {
return _mFileTruncateResponse
}
// Implements Payload.
func (_ *FileTruncateResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileTruncateResponse) InlineSize() int {
return 8
}
type FileGetFlagsResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
Flags uint32
}
var _mFileGetFlagsResponse = _bindings.CreateLazyMarshaler(FileGetFlagsResponse{})
func (msg *FileGetFlagsResponse) Marshaler() _bindings.Marshaler {
return _mFileGetFlagsResponse
}
// Implements Payload.
func (_ *FileGetFlagsResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileGetFlagsResponse) InlineSize() int {
return 8
}
type FileSetFlagsRequest struct {
_ struct{} `fidl2:"s,8,0"`
Flags uint32
}
var _mFileSetFlagsRequest = _bindings.CreateLazyMarshaler(FileSetFlagsRequest{})
func (msg *FileSetFlagsRequest) Marshaler() _bindings.Marshaler {
return _mFileSetFlagsRequest
}
// Implements Payload.
func (_ *FileSetFlagsRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileSetFlagsRequest) InlineSize() int {
return 8
}
type FileSetFlagsResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mFileSetFlagsResponse = _bindings.CreateLazyMarshaler(FileSetFlagsResponse{})
func (msg *FileSetFlagsResponse) Marshaler() _bindings.Marshaler {
return _mFileSetFlagsResponse
}
// Implements Payload.
func (_ *FileSetFlagsResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileSetFlagsResponse) InlineSize() int {
return 8
}
type FileGetBufferRequest struct {
_ struct{} `fidl2:"s,8,0"`
Flags uint32
}
var _mFileGetBufferRequest = _bindings.CreateLazyMarshaler(FileGetBufferRequest{})
func (msg *FileGetBufferRequest) Marshaler() _bindings.Marshaler {
return _mFileGetBufferRequest
}
// Implements Payload.
func (_ *FileGetBufferRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileGetBufferRequest) InlineSize() int {
return 8
}
type FileGetBufferResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Buffer *fuchsiamem.Buffer
}
var _mFileGetBufferResponse = _bindings.CreateLazyMarshaler(FileGetBufferResponse{})
func (msg *FileGetBufferResponse) Marshaler() _bindings.Marshaler {
return _mFileGetBufferResponse
}
// Implements Payload.
func (_ *FileGetBufferResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *FileGetBufferResponse) InlineSize() int {
return 16
}
type FileInterface _bindings.ChannelProxy
// Create another connection to the same remote object.
//
// |flags| may be any of:
// - OPEN_RIGHT_*
// - OPEN_FLAG_APPEND
// - OPEN_FLAG_NO_REMOTE
// - OPEN_FLAG_DESCRIBE
//
// All other flags are ignored.
//
// The cloned object must have rights less than or equal to the original object.
//
// TODO: Currently, ulib/fs ignores OPEN_RIGHT_*, and uses the rights of the original
// connection. This is a bug.
func (p *FileInterface) Clone(flags uint32, object NodeInterfaceRequest) error {
req_ := &FileCloneRequest{
Flags: flags,
Object: object,
}
err := ((*_bindings.ChannelProxy)(p)).Send(FileCloneOrdinal, req_)
return err
}
// Terminates connection with object.
//
// This method does not require any rights.
func (p *FileInterface) Close() (int32, error) {
var req_ _bindings.Payload
resp_ := &FileCloseResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileCloseOrdinal, req_, resp_)
return resp_.S, err
}
// Returns extra information about the type of the object.
// If the |Describe| operation fails, the connection is closed.
//
// This method does not require any rights.
func (p *FileInterface) Describe() (NodeInfo, error) {
var req_ _bindings.Payload
resp_ := &FileDescribeResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileDescribeOrdinal, req_, resp_)
return resp_.Info, err
}
// An event produced eagerly by a fidl server if requested by |OPEN_FLAG_DESCRIBE|.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is |ZX_OK|, |info| contains descriptive information about the object
// (the same as would be returned by |Describe|).
func (p *FileInterface) ExpectOnOpen() (int32, *NodeInfo, error) {
resp_ := &FileOnOpenResponse{}
err := ((*_bindings.ChannelProxy)(p)).Recv(FileOnOpenOrdinal, resp_)
return resp_.S, resp_.Info, err
}
// Synchronizes updates to the node to the underlying media, if it exists.
func (p *FileInterface) Sync() (int32, error) {
var req_ _bindings.Payload
resp_ := &FileSyncResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileSyncOrdinal, req_, resp_)
return resp_.S, err
}
// Acquires information about the node.
//
// This method does not require any rights.
func (p *FileInterface) GetAttr() (int32, NodeAttributes, error) {
var req_ _bindings.Payload
resp_ := &FileGetAttrResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileGetAttrOrdinal, req_, resp_)
return resp_.S, resp_.Attributes, err
}
// Updates information about the node.
// |flags| may be any of NODE_ATTRIBUTE_FLAG_*.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
// TODO(ZX-1262): This access restriction is not implemented in ulib/fs.
func (p *FileInterface) SetAttr(flags uint32, attributes NodeAttributes) (int32, error) {
req_ := &FileSetAttrRequest{
Flags: flags,
Attributes: attributes,
}
resp_ := &FileSetAttrResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileSetAttrOrdinal, req_, resp_)
return resp_.S, err
}
// Deprecated. Only for use with compatibility with devhost.
func (p *FileInterface) Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error) {
req_ := &FileIoctlRequest{
Opcode: opcode,
MaxOut: maxOut,
Handles: handles,
In: in,
}
resp_ := &FileIoctlResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileIoctlOrdinal, req_, resp_)
return resp_.S, resp_.Handles, resp_.Out, err
}
// Read 'count' bytes at the seek offset.
// The seek offset is moved forward by the number of bytes read.
//
// This method requires following rights: OPEN_RIGHT_READABLE.
func (p *FileInterface) Read(count uint64) (int32, []uint8, error) {
req_ := &FileReadRequest{
Count: count,
}
resp_ := &FileReadResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileReadOrdinal, req_, resp_)
return resp_.S, resp_.Data, err
}
// Read 'count' bytes at the provided offset.
// Does not affect the seek offset.
//
// This method requires following rights: OPEN_RIGHT_READABLE.
func (p *FileInterface) ReadAt(count uint64, offset uint64) (int32, []uint8, error) {
req_ := &FileReadAtRequest{
Count: count,
Offset: offset,
}
resp_ := &FileReadAtResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileReadAtOrdinal, req_, resp_)
return resp_.S, resp_.Data, err
}
// Write data at the seek offset.
// The seek offset is moved forward by the number of bytes written.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
func (p *FileInterface) Write(data []uint8) (int32, uint64, error) {
req_ := &FileWriteRequest{
Data: data,
}
resp_ := &FileWriteResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileWriteOrdinal, req_, resp_)
return resp_.S, resp_.Actual, err
}
// Write data to the provided offset.
// Does not affect the seek offset.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
func (p *FileInterface) WriteAt(data []uint8, offset uint64) (int32, uint64, error) {
req_ := &FileWriteAtRequest{
Data: data,
Offset: offset,
}
resp_ := &FileWriteAtResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileWriteAtOrdinal, req_, resp_)
return resp_.S, resp_.Actual, err
}
// Moves the offset at which the next invocation of |Read()| or |Write()| will
// occur.
//
// This method does not require any rights.
func (p *FileInterface) Seek(offset int64, start SeekOrigin) (int32, uint64, error) {
req_ := &FileSeekRequest{
Offset: offset,
Start: start,
}
resp_ := &FileSeekResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileSeekOrdinal, req_, resp_)
return resp_.S, resp_.Offset, err
}
// Shrink the file size to 'length' bytes.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
func (p *FileInterface) Truncate(length uint64) (int32, error) {
req_ := &FileTruncateRequest{
Length: length,
}
resp_ := &FileTruncateResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileTruncateOrdinal, req_, resp_)
return resp_.S, err
}
// Acquire the Directory::Open rights and flags used to access this file.
//
// This method does not require any rights.
func (p *FileInterface) GetFlags() (int32, uint32, error) {
var req_ _bindings.Payload
resp_ := &FileGetFlagsResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileGetFlagsOrdinal, req_, resp_)
return resp_.S, resp_.Flags, err
}
// Change the Directory::Open flags used to access the file.
// Supported flags which can be turned on / off:
// - OPEN_FLAG_APPEND
//
// This method does not require any rights.
func (p *FileInterface) SetFlags(flags uint32) (int32, error) {
req_ := &FileSetFlagsRequest{
Flags: flags,
}
resp_ := &FileSetFlagsResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileSetFlagsOrdinal, req_, resp_)
return resp_.S, err
}
// Acquire a VMO representing this file, if there is one, with the
// requested access rights.
//
// |flags| may be any of VMO_FLAG_*.
//
// This method requires following rights:
// - OPEN_RIGHT_WRITABLE if |flags| includes VMO_FLAG_WRITE.
// - OPEN_RIGHT_READABLE if |flags| includes VMO_FLAG_READ or VMO_FLAG_EXEC.
func (p *FileInterface) GetBuffer(flags uint32) (int32, *fuchsiamem.Buffer, error) {
req_ := &FileGetBufferRequest{
Flags: flags,
}
resp_ := &FileGetBufferResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(FileGetBufferOrdinal, req_, resp_)
return resp_.S, resp_.Buffer, err
}
// File defines the interface of a node which contains a flat layout of data.
type File interface {
// Create another connection to the same remote object.
//
// |flags| may be any of:
// - OPEN_RIGHT_*
// - OPEN_FLAG_APPEND
// - OPEN_FLAG_NO_REMOTE
// - OPEN_FLAG_DESCRIBE
//
// All other flags are ignored.
//
// The cloned object must have rights less than or equal to the original object.
//
// TODO: Currently, ulib/fs ignores OPEN_RIGHT_*, and uses the rights of the original
// connection. This is a bug.
Clone(flags uint32, object NodeInterfaceRequest) error
// Terminates connection with object.
//
// This method does not require any rights.
Close() (int32, error)
// Returns extra information about the type of the object.
// If the |Describe| operation fails, the connection is closed.
//
// This method does not require any rights.
Describe() (NodeInfo, error)
// An event produced eagerly by a fidl server if requested by |OPEN_FLAG_DESCRIBE|.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is |ZX_OK|, |info| contains descriptive information about the object
// (the same as would be returned by |Describe|).
// Synchronizes updates to the node to the underlying media, if it exists.
Sync() (int32, error)
// Acquires information about the node.
//
// This method does not require any rights.
GetAttr() (int32, NodeAttributes, error)
// Updates information about the node.
// |flags| may be any of NODE_ATTRIBUTE_FLAG_*.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
// TODO(ZX-1262): This access restriction is not implemented in ulib/fs.
SetAttr(flags uint32, attributes NodeAttributes) (int32, error)
// Deprecated. Only for use with compatibility with devhost.
Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error)
// Read 'count' bytes at the seek offset.
// The seek offset is moved forward by the number of bytes read.
//
// This method requires following rights: OPEN_RIGHT_READABLE.
Read(count uint64) (int32, []uint8, error)
// Read 'count' bytes at the provided offset.
// Does not affect the seek offset.
//
// This method requires following rights: OPEN_RIGHT_READABLE.
ReadAt(count uint64, offset uint64) (int32, []uint8, error)
// Write data at the seek offset.
// The seek offset is moved forward by the number of bytes written.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
Write(data []uint8) (int32, uint64, error)
// Write data to the provided offset.
// Does not affect the seek offset.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
WriteAt(data []uint8, offset uint64) (int32, uint64, error)
// Moves the offset at which the next invocation of |Read()| or |Write()| will
// occur.
//
// This method does not require any rights.
Seek(offset int64, start SeekOrigin) (int32, uint64, error)
// Shrink the file size to 'length' bytes.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
Truncate(length uint64) (int32, error)
// Acquire the Directory::Open rights and flags used to access this file.
//
// This method does not require any rights.
GetFlags() (int32, uint32, error)
// Change the Directory::Open flags used to access the file.
// Supported flags which can be turned on / off:
// - OPEN_FLAG_APPEND
//
// This method does not require any rights.
SetFlags(flags uint32) (int32, error)
// Acquire a VMO representing this file, if there is one, with the
// requested access rights.
//
// |flags| may be any of VMO_FLAG_*.
//
// This method requires following rights:
// - OPEN_RIGHT_WRITABLE if |flags| includes VMO_FLAG_WRITE.
// - OPEN_RIGHT_READABLE if |flags| includes VMO_FLAG_READ or VMO_FLAG_EXEC.
GetBuffer(flags uint32) (int32, *fuchsiamem.Buffer, error)
}
type FileTransitionalBase struct{}
type FileInterfaceRequest _bindings.InterfaceRequest
func NewFileInterfaceRequest() (FileInterfaceRequest, *FileInterface, error) {
req, cli, err := _bindings.NewInterfaceRequest()
return FileInterfaceRequest(req), (*FileInterface)(cli), err
}
type FileStub struct {
Impl File
}
func (s *FileStub) Dispatch(ord uint32, b_ []byte, h_ []_zx.Handle) (_bindings.Payload, error) {
switch ord {
case FileCloneOrdinal:
in_ := FileCloneRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
err_ := s.Impl.Clone(in_.Flags, in_.Object)
return nil, err_
case FileCloseOrdinal:
s, err_ := s.Impl.Close()
out_ := FileCloseResponse{}
out_.S = s
return &out_, err_
case FileDescribeOrdinal:
info, err_ := s.Impl.Describe()
out_ := FileDescribeResponse{}
out_.Info = info
return &out_, err_
case FileSyncOrdinal:
s, err_ := s.Impl.Sync()
out_ := FileSyncResponse{}
out_.S = s
return &out_, err_
case FileGetAttrOrdinal:
s, attributes, err_ := s.Impl.GetAttr()
out_ := FileGetAttrResponse{}
out_.S = s
out_.Attributes = attributes
return &out_, err_
case FileSetAttrOrdinal:
in_ := FileSetAttrRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.SetAttr(in_.Flags, in_.Attributes)
out_ := FileSetAttrResponse{}
out_.S = s
return &out_, err_
case FileIoctlOrdinal:
in_ := FileIoctlRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, handles, out, err_ := s.Impl.Ioctl(in_.Opcode, in_.MaxOut, in_.Handles, in_.In)
out_ := FileIoctlResponse{}
out_.S = s
out_.Handles = handles
out_.Out = out
return &out_, err_
case FileReadOrdinal:
in_ := FileReadRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, data, err_ := s.Impl.Read(in_.Count)
out_ := FileReadResponse{}
out_.S = s
out_.Data = data
return &out_, err_
case FileReadAtOrdinal:
in_ := FileReadAtRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, data, err_ := s.Impl.ReadAt(in_.Count, in_.Offset)
out_ := FileReadAtResponse{}
out_.S = s
out_.Data = data
return &out_, err_
case FileWriteOrdinal:
in_ := FileWriteRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, actual, err_ := s.Impl.Write(in_.Data)
out_ := FileWriteResponse{}
out_.S = s
out_.Actual = actual
return &out_, err_
case FileWriteAtOrdinal:
in_ := FileWriteAtRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, actual, err_ := s.Impl.WriteAt(in_.Data, in_.Offset)
out_ := FileWriteAtResponse{}
out_.S = s
out_.Actual = actual
return &out_, err_
case FileSeekOrdinal:
in_ := FileSeekRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, offset, err_ := s.Impl.Seek(in_.Offset, in_.Start)
out_ := FileSeekResponse{}
out_.S = s
out_.Offset = offset
return &out_, err_
case FileTruncateOrdinal:
in_ := FileTruncateRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Truncate(in_.Length)
out_ := FileTruncateResponse{}
out_.S = s
return &out_, err_
case FileGetFlagsOrdinal:
s, flags, err_ := s.Impl.GetFlags()
out_ := FileGetFlagsResponse{}
out_.S = s
out_.Flags = flags
return &out_, err_
case FileSetFlagsOrdinal:
in_ := FileSetFlagsRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.SetFlags(in_.Flags)
out_ := FileSetFlagsResponse{}
out_.S = s
return &out_, err_
case FileGetBufferOrdinal:
in_ := FileGetBufferRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, buffer, err_ := s.Impl.GetBuffer(in_.Flags)
out_ := FileGetBufferResponse{}
out_.S = s
out_.Buffer = buffer
return &out_, err_
}
return nil, _bindings.ErrUnknownOrdinal
}
type FileService struct {
_bindings.BindingSet
}
func (s *FileService) Add(impl File, c _zx.Channel, onError func(error)) (_bindings.BindingKey, error) {
return s.BindingSet.Add(&FileStub{Impl: impl}, c, onError)
}
func (s *FileService) EventProxyFor(key _bindings.BindingKey) (*FileEventProxy, bool) {
pxy, err := s.BindingSet.ProxyFor(key)
return (*FileEventProxy)(pxy), err
}
type FileEventProxy _bindings.ChannelProxy
func (p *FileEventProxy) OnOpen(s int32, info *NodeInfo) error {
event_ := &FileOnOpenResponse{
S: s,
Info: info,
}
return ((*_bindings.ChannelProxy)(p)).Send(FileOnOpenOrdinal, event_)
}
const (
DirectoryWatcherOnEventOrdinal uint32 = 546032797
DirectoryWatcherOnEventGenOrdinal uint32 = 546032797
)
type DirectoryWatcherOnEventRequest struct {
_ struct{} `fidl2:"s,16,0"`
Events []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mDirectoryWatcherOnEventRequest = _bindings.CreateLazyMarshaler(DirectoryWatcherOnEventRequest{})
func (msg *DirectoryWatcherOnEventRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryWatcherOnEventRequest
}
// Implements Payload.
func (_ *DirectoryWatcherOnEventRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryWatcherOnEventRequest) InlineSize() int {
return 16
}
type DirectoryWatcherInterface _bindings.ChannelProxy
// TODO(smklein): Convert this to a vector of WatchedEvents, when possible.
func (p *DirectoryWatcherInterface) OnEvent(events []uint8) error {
req_ := &DirectoryWatcherOnEventRequest{
Events: events,
}
err := ((*_bindings.ChannelProxy)(p)).Send(DirectoryWatcherOnEventOrdinal, req_)
return err
}
// WARNING(ZX-2645): Unused.
//
// DirectoryWatcher transmits messages from a filesystem server
// about events happening in the filesystem. Clients can register
// new watchers using the Directory "Watch" method, where they can
// filter which events they want to receive notifications for.
type DirectoryWatcher interface {
// TODO(smklein): Convert this to a vector of WatchedEvents, when possible.
OnEvent(events []uint8) error
}
type DirectoryWatcherTransitionalBase struct{}
type DirectoryWatcherInterfaceRequest _bindings.InterfaceRequest
func NewDirectoryWatcherInterfaceRequest() (DirectoryWatcherInterfaceRequest, *DirectoryWatcherInterface, error) {
req, cli, err := _bindings.NewInterfaceRequest()
return DirectoryWatcherInterfaceRequest(req), (*DirectoryWatcherInterface)(cli), err
}
type DirectoryWatcherStub struct {
Impl DirectoryWatcher
}
func (s *DirectoryWatcherStub) Dispatch(ord uint32, b_ []byte, h_ []_zx.Handle) (_bindings.Payload, error) {
switch ord {
case DirectoryWatcherOnEventOrdinal:
in_ := DirectoryWatcherOnEventRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
err_ := s.Impl.OnEvent(in_.Events)
return nil, err_
}
return nil, _bindings.ErrUnknownOrdinal
}
type DirectoryWatcherService struct {
_bindings.BindingSet
}
func (s *DirectoryWatcherService) Add(impl DirectoryWatcher, c _zx.Channel, onError func(error)) (_bindings.BindingKey, error) {
return s.BindingSet.Add(&DirectoryWatcherStub{Impl: impl}, c, onError)
}
func (s *DirectoryWatcherService) EventProxyFor(key _bindings.BindingKey) (*DirectoryWatcherEventProxy, bool) {
pxy, err := s.BindingSet.ProxyFor(key)
return (*DirectoryWatcherEventProxy)(pxy), err
}
type DirectoryWatcherEventProxy _bindings.ChannelProxy
const (
DirectoryCloneOrdinal uint32 = 402549324
DirectoryCloneGenOrdinal uint32 = 402549324
DirectoryCloseOrdinal uint32 = 1387878023
DirectoryCloseGenOrdinal uint32 = 1387878023
DirectoryDescribeOrdinal uint32 = 526573406
DirectoryDescribeGenOrdinal uint32 = 526573406
DirectoryOnOpenOrdinal uint32 = 1191225277
DirectoryOnOpenGenOrdinal uint32 = 1191225277
DirectorySyncOrdinal uint32 = 1648508842
DirectorySyncGenOrdinal uint32 = 1648508842
DirectoryGetAttrOrdinal uint32 = 1166403528
DirectoryGetAttrGenOrdinal uint32 = 1166403528
DirectorySetAttrOrdinal uint32 = 198530458
DirectorySetAttrGenOrdinal uint32 = 198530458
DirectoryIoctlOrdinal uint32 = 905161895
DirectoryIoctlGenOrdinal uint32 = 905161895
DirectoryOpenOrdinal uint32 = 2011483371
DirectoryOpenGenOrdinal uint32 = 2011483371
DirectoryUnlinkOrdinal uint32 = 750443289
DirectoryUnlinkGenOrdinal uint32 = 750443289
DirectoryReadDirentsOrdinal uint32 = 782580781
DirectoryReadDirentsGenOrdinal uint32 = 782580781
DirectoryRewindOrdinal uint32 = 1886584199
DirectoryRewindGenOrdinal uint32 = 1886584199
DirectoryGetTokenOrdinal uint32 = 840416493
DirectoryGetTokenGenOrdinal uint32 = 840416493
DirectoryRenameOrdinal uint32 = 1251258540
DirectoryRenameGenOrdinal uint32 = 1251258540
DirectoryLinkOrdinal uint32 = 462052964
DirectoryLinkGenOrdinal uint32 = 462052964
DirectoryWatchOrdinal uint32 = 1522700084
DirectoryWatchGenOrdinal uint32 = 1522700084
)
type DirectoryCloneRequest struct {
_ struct{} `fidl2:"s,8,0"`
Flags uint32
Object NodeInterfaceRequest `fidl2:"0"`
}
var _mDirectoryCloneRequest = _bindings.CreateLazyMarshaler(DirectoryCloneRequest{})
func (msg *DirectoryCloneRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryCloneRequest
}
// Implements Payload.
func (_ *DirectoryCloneRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryCloneRequest) InlineSize() int {
return 8
}
type DirectoryCloseResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryCloseResponse = _bindings.CreateLazyMarshaler(DirectoryCloseResponse{})
func (msg *DirectoryCloseResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryCloseResponse
}
// Implements Payload.
func (_ *DirectoryCloseResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryCloseResponse) InlineSize() int {
return 8
}
type DirectoryDescribeResponse struct {
_ struct{} `fidl2:"s,32,0"`
Info NodeInfo
}
var _mDirectoryDescribeResponse = _bindings.CreateLazyMarshaler(DirectoryDescribeResponse{})
func (msg *DirectoryDescribeResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryDescribeResponse
}
// Implements Payload.
func (_ *DirectoryDescribeResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryDescribeResponse) InlineSize() int {
return 32
}
type DirectoryOnOpenResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Info *NodeInfo
}
var _mDirectoryOnOpenResponse = _bindings.CreateLazyMarshaler(DirectoryOnOpenResponse{})
func (msg *DirectoryOnOpenResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryOnOpenResponse
}
// Implements Payload.
func (_ *DirectoryOnOpenResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryOnOpenResponse) InlineSize() int {
return 16
}
type DirectorySyncResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectorySyncResponse = _bindings.CreateLazyMarshaler(DirectorySyncResponse{})
func (msg *DirectorySyncResponse) Marshaler() _bindings.Marshaler {
return _mDirectorySyncResponse
}
// Implements Payload.
func (_ *DirectorySyncResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectorySyncResponse) InlineSize() int {
return 8
}
type DirectoryGetAttrResponse struct {
_ struct{} `fidl2:"s,64,0"`
S int32
Attributes NodeAttributes
}
var _mDirectoryGetAttrResponse = _bindings.CreateLazyMarshaler(DirectoryGetAttrResponse{})
func (msg *DirectoryGetAttrResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryGetAttrResponse
}
// Implements Payload.
func (_ *DirectoryGetAttrResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryGetAttrResponse) InlineSize() int {
return 64
}
type DirectorySetAttrRequest struct {
_ struct{} `fidl2:"s,64,0"`
Flags uint32
Attributes NodeAttributes
}
var _mDirectorySetAttrRequest = _bindings.CreateLazyMarshaler(DirectorySetAttrRequest{})
func (msg *DirectorySetAttrRequest) Marshaler() _bindings.Marshaler {
return _mDirectorySetAttrRequest
}
// Implements Payload.
func (_ *DirectorySetAttrRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectorySetAttrRequest) InlineSize() int {
return 64
}
type DirectorySetAttrResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectorySetAttrResponse = _bindings.CreateLazyMarshaler(DirectorySetAttrResponse{})
func (msg *DirectorySetAttrResponse) Marshaler() _bindings.Marshaler {
return _mDirectorySetAttrResponse
}
// Implements Payload.
func (_ *DirectorySetAttrResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectorySetAttrResponse) InlineSize() int {
return 8
}
type DirectoryIoctlRequest struct {
_ struct{} `fidl2:"s,48,0"`
Opcode uint32
MaxOut uint64
Handles []_zx.Handle `fidl:"2" fidl2:"2,0"`
In []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mDirectoryIoctlRequest = _bindings.CreateLazyMarshaler(DirectoryIoctlRequest{})
func (msg *DirectoryIoctlRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryIoctlRequest
}
// Implements Payload.
func (_ *DirectoryIoctlRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryIoctlRequest) InlineSize() int {
return 48
}
type DirectoryIoctlResponse struct {
_ struct{} `fidl2:"s,40,0"`
S int32
Handles []_zx.Handle `fidl:"2" fidl2:"2,0"`
Out []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mDirectoryIoctlResponse = _bindings.CreateLazyMarshaler(DirectoryIoctlResponse{})
func (msg *DirectoryIoctlResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryIoctlResponse
}
// Implements Payload.
func (_ *DirectoryIoctlResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryIoctlResponse) InlineSize() int {
return 40
}
type DirectoryOpenRequest struct {
_ struct{} `fidl2:"s,32,0"`
Flags uint32
Mode uint32
Path string `fidl:"4096" fidl2:"4096"`
Object NodeInterfaceRequest `fidl2:"0"`
}
var _mDirectoryOpenRequest = _bindings.CreateLazyMarshaler(DirectoryOpenRequest{})
func (msg *DirectoryOpenRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryOpenRequest
}
// Implements Payload.
func (_ *DirectoryOpenRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryOpenRequest) InlineSize() int {
return 32
}
type DirectoryUnlinkRequest struct {
_ struct{} `fidl2:"s,16,0"`
Path string `fidl:"4096" fidl2:"4096"`
}
var _mDirectoryUnlinkRequest = _bindings.CreateLazyMarshaler(DirectoryUnlinkRequest{})
func (msg *DirectoryUnlinkRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryUnlinkRequest
}
// Implements Payload.
func (_ *DirectoryUnlinkRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryUnlinkRequest) InlineSize() int {
return 16
}
type DirectoryUnlinkResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryUnlinkResponse = _bindings.CreateLazyMarshaler(DirectoryUnlinkResponse{})
func (msg *DirectoryUnlinkResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryUnlinkResponse
}
// Implements Payload.
func (_ *DirectoryUnlinkResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryUnlinkResponse) InlineSize() int {
return 8
}
type DirectoryReadDirentsRequest struct {
_ struct{} `fidl2:"s,8,0"`
MaxBytes uint64
}
var _mDirectoryReadDirentsRequest = _bindings.CreateLazyMarshaler(DirectoryReadDirentsRequest{})
func (msg *DirectoryReadDirentsRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryReadDirentsRequest
}
// Implements Payload.
func (_ *DirectoryReadDirentsRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryReadDirentsRequest) InlineSize() int {
return 8
}
type DirectoryReadDirentsResponse struct {
_ struct{} `fidl2:"s,24,0"`
S int32
Dirents []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mDirectoryReadDirentsResponse = _bindings.CreateLazyMarshaler(DirectoryReadDirentsResponse{})
func (msg *DirectoryReadDirentsResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryReadDirentsResponse
}
// Implements Payload.
func (_ *DirectoryReadDirentsResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryReadDirentsResponse) InlineSize() int {
return 24
}
type DirectoryRewindResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryRewindResponse = _bindings.CreateLazyMarshaler(DirectoryRewindResponse{})
func (msg *DirectoryRewindResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryRewindResponse
}
// Implements Payload.
func (_ *DirectoryRewindResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryRewindResponse) InlineSize() int {
return 8
}
type DirectoryGetTokenResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
Token _zx.Handle `fidl:"*" fidl2:"1"`
}
var _mDirectoryGetTokenResponse = _bindings.CreateLazyMarshaler(DirectoryGetTokenResponse{})
func (msg *DirectoryGetTokenResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryGetTokenResponse
}
// Implements Payload.
func (_ *DirectoryGetTokenResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryGetTokenResponse) InlineSize() int {
return 8
}
type DirectoryRenameRequest struct {
_ struct{} `fidl2:"s,40,0"`
Src string `fidl:"4096" fidl2:"4096"`
DstParentToken _zx.Handle `fidl2:"0"`
Dst string `fidl:"4096" fidl2:"4096"`
}
var _mDirectoryRenameRequest = _bindings.CreateLazyMarshaler(DirectoryRenameRequest{})
func (msg *DirectoryRenameRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryRenameRequest
}
// Implements Payload.
func (_ *DirectoryRenameRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryRenameRequest) InlineSize() int {
return 40
}
type DirectoryRenameResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryRenameResponse = _bindings.CreateLazyMarshaler(DirectoryRenameResponse{})
func (msg *DirectoryRenameResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryRenameResponse
}
// Implements Payload.
func (_ *DirectoryRenameResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryRenameResponse) InlineSize() int {
return 8
}
type DirectoryLinkRequest struct {
_ struct{} `fidl2:"s,40,0"`
Src string `fidl:"4096" fidl2:"4096"`
DstParentToken _zx.Handle `fidl2:"0"`
Dst string `fidl:"4096" fidl2:"4096"`
}
var _mDirectoryLinkRequest = _bindings.CreateLazyMarshaler(DirectoryLinkRequest{})
func (msg *DirectoryLinkRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryLinkRequest
}
// Implements Payload.
func (_ *DirectoryLinkRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryLinkRequest) InlineSize() int {
return 40
}
type DirectoryLinkResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryLinkResponse = _bindings.CreateLazyMarshaler(DirectoryLinkResponse{})
func (msg *DirectoryLinkResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryLinkResponse
}
// Implements Payload.
func (_ *DirectoryLinkResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryLinkResponse) InlineSize() int {
return 8
}
type DirectoryWatchRequest struct {
_ struct{} `fidl2:"s,16,0"`
Mask uint32
Options uint32
Watcher _zx.Channel `fidl2:"0"`
}
var _mDirectoryWatchRequest = _bindings.CreateLazyMarshaler(DirectoryWatchRequest{})
func (msg *DirectoryWatchRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryWatchRequest
}
// Implements Payload.
func (_ *DirectoryWatchRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryWatchRequest) InlineSize() int {
return 16
}
type DirectoryWatchResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryWatchResponse = _bindings.CreateLazyMarshaler(DirectoryWatchResponse{})
func (msg *DirectoryWatchResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryWatchResponse
}
// Implements Payload.
func (_ *DirectoryWatchResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryWatchResponse) InlineSize() int {
return 8
}
type DirectoryInterface _bindings.ChannelProxy
// Create another connection to the same remote object.
//
// |flags| may be any of:
// - OPEN_RIGHT_*
// - OPEN_FLAG_APPEND
// - OPEN_FLAG_NO_REMOTE
// - OPEN_FLAG_DESCRIBE
//
// All other flags are ignored.
//
// The cloned object must have rights less than or equal to the original object.
//
// TODO: Currently, ulib/fs ignores OPEN_RIGHT_*, and uses the rights of the original
// connection. This is a bug.
func (p *DirectoryInterface) Clone(flags uint32, object NodeInterfaceRequest) error {
req_ := &DirectoryCloneRequest{
Flags: flags,
Object: object,
}
err := ((*_bindings.ChannelProxy)(p)).Send(DirectoryCloneOrdinal, req_)
return err
}
// Terminates connection with object.
//
// This method does not require any rights.
func (p *DirectoryInterface) Close() (int32, error) {
var req_ _bindings.Payload
resp_ := &DirectoryCloseResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryCloseOrdinal, req_, resp_)
return resp_.S, err
}
// Returns extra information about the type of the object.
// If the |Describe| operation fails, the connection is closed.
//
// This method does not require any rights.
func (p *DirectoryInterface) Describe() (NodeInfo, error) {
var req_ _bindings.Payload
resp_ := &DirectoryDescribeResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryDescribeOrdinal, req_, resp_)
return resp_.Info, err
}
// An event produced eagerly by a fidl server if requested by |OPEN_FLAG_DESCRIBE|.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is |ZX_OK|, |info| contains descriptive information about the object
// (the same as would be returned by |Describe|).
func (p *DirectoryInterface) ExpectOnOpen() (int32, *NodeInfo, error) {
resp_ := &DirectoryOnOpenResponse{}
err := ((*_bindings.ChannelProxy)(p)).Recv(DirectoryOnOpenOrdinal, resp_)
return resp_.S, resp_.Info, err
}
// Synchronizes updates to the node to the underlying media, if it exists.
func (p *DirectoryInterface) Sync() (int32, error) {
var req_ _bindings.Payload
resp_ := &DirectorySyncResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectorySyncOrdinal, req_, resp_)
return resp_.S, err
}
// Acquires information about the node.
//
// This method does not require any rights.
func (p *DirectoryInterface) GetAttr() (int32, NodeAttributes, error) {
var req_ _bindings.Payload
resp_ := &DirectoryGetAttrResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryGetAttrOrdinal, req_, resp_)
return resp_.S, resp_.Attributes, err
}
// Updates information about the node.
// |flags| may be any of NODE_ATTRIBUTE_FLAG_*.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
// TODO(ZX-1262): This access restriction is not implemented in ulib/fs.
func (p *DirectoryInterface) SetAttr(flags uint32, attributes NodeAttributes) (int32, error) {
req_ := &DirectorySetAttrRequest{
Flags: flags,
Attributes: attributes,
}
resp_ := &DirectorySetAttrResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectorySetAttrOrdinal, req_, resp_)
return resp_.S, err
}
// Deprecated. Only for use with compatibility with devhost.
func (p *DirectoryInterface) Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error) {
req_ := &DirectoryIoctlRequest{
Opcode: opcode,
MaxOut: maxOut,
Handles: handles,
In: in,
}
resp_ := &DirectoryIoctlResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryIoctlOrdinal, req_, resp_)
return resp_.S, resp_.Handles, resp_.Out, err
}
// Open a new object relative to this directory object.
//
// Flags may be any of the OPEN_FLAG_* and OPEN_RIGHT_* values, bitwise ORed together.
// The OPEN_FLAG_DESCRIBE flag may cause an |OnOpen| event to be transmitted
// on the |object| handle, indicating the type of object opened.
func (p *DirectoryInterface) Open(flags uint32, mode uint32, path string, object NodeInterfaceRequest) error {
req_ := &DirectoryOpenRequest{
Flags: flags,
Mode: mode,
Path: path,
Object: object,
}
err := ((*_bindings.ChannelProxy)(p)).Send(DirectoryOpenOrdinal, req_)
return err
}
// Remove an object relative to this directory object.
func (p *DirectoryInterface) Unlink(path string) (int32, error) {
req_ := &DirectoryUnlinkRequest{
Path: path,
}
resp_ := &DirectoryUnlinkResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryUnlinkOrdinal, req_, resp_)
return resp_.S, err
}
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// /// POSIX d_type values. Use DIRENT_TYPE_* constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
func (p *DirectoryInterface) ReadDirents(maxBytes uint64) (int32, []uint8, error) {
req_ := &DirectoryReadDirentsRequest{
MaxBytes: maxBytes,
}
resp_ := &DirectoryReadDirentsResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryReadDirentsOrdinal, req_, resp_)
return resp_.S, resp_.Dirents, err
}
// Reset the directory seek offset.
func (p *DirectoryInterface) Rewind() (int32, error) {
var req_ _bindings.Payload
resp_ := &DirectoryRewindResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryRewindOrdinal, req_, resp_)
return resp_.S, err
}
// Acquire a token to a Directory which can be used to identify
// access to it at a later point in time.
func (p *DirectoryInterface) GetToken() (int32, _zx.Handle, error) {
var req_ _bindings.Payload
resp_ := &DirectoryGetTokenResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryGetTokenOrdinal, req_, resp_)
return resp_.S, resp_.Token, err
}
// Within the directory, rename an object named src to the name dst, in
// a directory represented by token.
func (p *DirectoryInterface) Rename(src string, dstParentToken _zx.Handle, dst string) (int32, error) {
req_ := &DirectoryRenameRequest{
Src: src,
DstParentToken: dstParentToken,
Dst: dst,
}
resp_ := &DirectoryRenameResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryRenameOrdinal, req_, resp_)
return resp_.S, err
}
// Within the directory, create a link to an object named src by the name
// dst, within a directory represented by token.
func (p *DirectoryInterface) Link(src string, dstParentToken _zx.Handle, dst string) (int32, error) {
req_ := &DirectoryLinkRequest{
Src: src,
DstParentToken: dstParentToken,
Dst: dst,
}
resp_ := &DirectoryLinkResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryLinkOrdinal, req_, resp_)
return resp_.S, err
}
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The "watcher" handle will send messages of the form:
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a "DirectoryWatcher" client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
func (p *DirectoryInterface) Watch(mask uint32, options uint32, watcher _zx.Channel) (int32, error) {
req_ := &DirectoryWatchRequest{
Mask: mask,
Options: options,
Watcher: watcher,
}
resp_ := &DirectoryWatchResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryWatchOrdinal, req_, resp_)
return resp_.S, err
}
// Directory defines a node which is capable of containing other Objects.
type Directory interface {
// Create another connection to the same remote object.
//
// |flags| may be any of:
// - OPEN_RIGHT_*
// - OPEN_FLAG_APPEND
// - OPEN_FLAG_NO_REMOTE
// - OPEN_FLAG_DESCRIBE
//
// All other flags are ignored.
//
// The cloned object must have rights less than or equal to the original object.
//
// TODO: Currently, ulib/fs ignores OPEN_RIGHT_*, and uses the rights of the original
// connection. This is a bug.
Clone(flags uint32, object NodeInterfaceRequest) error
// Terminates connection with object.
//
// This method does not require any rights.
Close() (int32, error)
// Returns extra information about the type of the object.
// If the |Describe| operation fails, the connection is closed.
//
// This method does not require any rights.
Describe() (NodeInfo, error)
// An event produced eagerly by a fidl server if requested by |OPEN_FLAG_DESCRIBE|.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is |ZX_OK|, |info| contains descriptive information about the object
// (the same as would be returned by |Describe|).
// Synchronizes updates to the node to the underlying media, if it exists.
Sync() (int32, error)
// Acquires information about the node.
//
// This method does not require any rights.
GetAttr() (int32, NodeAttributes, error)
// Updates information about the node.
// |flags| may be any of NODE_ATTRIBUTE_FLAG_*.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
// TODO(ZX-1262): This access restriction is not implemented in ulib/fs.
SetAttr(flags uint32, attributes NodeAttributes) (int32, error)
// Deprecated. Only for use with compatibility with devhost.
Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error)
// Open a new object relative to this directory object.
//
// Flags may be any of the OPEN_FLAG_* and OPEN_RIGHT_* values, bitwise ORed together.
// The OPEN_FLAG_DESCRIBE flag may cause an |OnOpen| event to be transmitted
// on the |object| handle, indicating the type of object opened.
Open(flags uint32, mode uint32, path string, object NodeInterfaceRequest) error
// Remove an object relative to this directory object.
Unlink(path string) (int32, error)
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// /// POSIX d_type values. Use DIRENT_TYPE_* constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
ReadDirents(maxBytes uint64) (int32, []uint8, error)
// Reset the directory seek offset.
Rewind() (int32, error)
// Acquire a token to a Directory which can be used to identify
// access to it at a later point in time.
GetToken() (int32, _zx.Handle, error)
// Within the directory, rename an object named src to the name dst, in
// a directory represented by token.
Rename(src string, dstParentToken _zx.Handle, dst string) (int32, error)
// Within the directory, create a link to an object named src by the name
// dst, within a directory represented by token.
Link(src string, dstParentToken _zx.Handle, dst string) (int32, error)
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The "watcher" handle will send messages of the form:
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a "DirectoryWatcher" client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
Watch(mask uint32, options uint32, watcher _zx.Channel) (int32, error)
}
type DirectoryTransitionalBase struct{}
type DirectoryInterfaceRequest _bindings.InterfaceRequest
func NewDirectoryInterfaceRequest() (DirectoryInterfaceRequest, *DirectoryInterface, error) {
req, cli, err := _bindings.NewInterfaceRequest()
return DirectoryInterfaceRequest(req), (*DirectoryInterface)(cli), err
}
type DirectoryStub struct {
Impl Directory
}
func (s *DirectoryStub) Dispatch(ord uint32, b_ []byte, h_ []_zx.Handle) (_bindings.Payload, error) {
switch ord {
case DirectoryCloneOrdinal:
in_ := DirectoryCloneRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
err_ := s.Impl.Clone(in_.Flags, in_.Object)
return nil, err_
case DirectoryCloseOrdinal:
s, err_ := s.Impl.Close()
out_ := DirectoryCloseResponse{}
out_.S = s
return &out_, err_
case DirectoryDescribeOrdinal:
info, err_ := s.Impl.Describe()
out_ := DirectoryDescribeResponse{}
out_.Info = info
return &out_, err_
case DirectorySyncOrdinal:
s, err_ := s.Impl.Sync()
out_ := DirectorySyncResponse{}
out_.S = s
return &out_, err_
case DirectoryGetAttrOrdinal:
s, attributes, err_ := s.Impl.GetAttr()
out_ := DirectoryGetAttrResponse{}
out_.S = s
out_.Attributes = attributes
return &out_, err_
case DirectorySetAttrOrdinal:
in_ := DirectorySetAttrRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.SetAttr(in_.Flags, in_.Attributes)
out_ := DirectorySetAttrResponse{}
out_.S = s
return &out_, err_
case DirectoryIoctlOrdinal:
in_ := DirectoryIoctlRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, handles, out, err_ := s.Impl.Ioctl(in_.Opcode, in_.MaxOut, in_.Handles, in_.In)
out_ := DirectoryIoctlResponse{}
out_.S = s
out_.Handles = handles
out_.Out = out
return &out_, err_
case DirectoryOpenOrdinal:
in_ := DirectoryOpenRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
err_ := s.Impl.Open(in_.Flags, in_.Mode, in_.Path, in_.Object)
return nil, err_
case DirectoryUnlinkOrdinal:
in_ := DirectoryUnlinkRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Unlink(in_.Path)
out_ := DirectoryUnlinkResponse{}
out_.S = s
return &out_, err_
case DirectoryReadDirentsOrdinal:
in_ := DirectoryReadDirentsRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, dirents, err_ := s.Impl.ReadDirents(in_.MaxBytes)
out_ := DirectoryReadDirentsResponse{}
out_.S = s
out_.Dirents = dirents
return &out_, err_
case DirectoryRewindOrdinal:
s, err_ := s.Impl.Rewind()
out_ := DirectoryRewindResponse{}
out_.S = s
return &out_, err_
case DirectoryGetTokenOrdinal:
s, token, err_ := s.Impl.GetToken()
out_ := DirectoryGetTokenResponse{}
out_.S = s
out_.Token = token
return &out_, err_
case DirectoryRenameOrdinal:
in_ := DirectoryRenameRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Rename(in_.Src, in_.DstParentToken, in_.Dst)
out_ := DirectoryRenameResponse{}
out_.S = s
return &out_, err_
case DirectoryLinkOrdinal:
in_ := DirectoryLinkRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Link(in_.Src, in_.DstParentToken, in_.Dst)
out_ := DirectoryLinkResponse{}
out_.S = s
return &out_, err_
case DirectoryWatchOrdinal:
in_ := DirectoryWatchRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Watch(in_.Mask, in_.Options, in_.Watcher)
out_ := DirectoryWatchResponse{}
out_.S = s
return &out_, err_
}
return nil, _bindings.ErrUnknownOrdinal
}
type DirectoryService struct {
_bindings.BindingSet
}
func (s *DirectoryService) Add(impl Directory, c _zx.Channel, onError func(error)) (_bindings.BindingKey, error) {
return s.BindingSet.Add(&DirectoryStub{Impl: impl}, c, onError)
}
func (s *DirectoryService) EventProxyFor(key _bindings.BindingKey) (*DirectoryEventProxy, bool) {
pxy, err := s.BindingSet.ProxyFor(key)
return (*DirectoryEventProxy)(pxy), err
}
type DirectoryEventProxy _bindings.ChannelProxy
func (p *DirectoryEventProxy) OnOpen(s int32, info *NodeInfo) error {
event_ := &DirectoryOnOpenResponse{
S: s,
Info: info,
}
return ((*_bindings.ChannelProxy)(p)).Send(DirectoryOnOpenOrdinal, event_)
}
const (
DirectoryAdminCloneOrdinal uint32 = 402549324
DirectoryAdminCloneGenOrdinal uint32 = 402549324
DirectoryAdminCloseOrdinal uint32 = 1387878023
DirectoryAdminCloseGenOrdinal uint32 = 1387878023
DirectoryAdminDescribeOrdinal uint32 = 526573406
DirectoryAdminDescribeGenOrdinal uint32 = 526573406
DirectoryAdminOnOpenOrdinal uint32 = 1191225277
DirectoryAdminOnOpenGenOrdinal uint32 = 1191225277
DirectoryAdminSyncOrdinal uint32 = 1648508842
DirectoryAdminSyncGenOrdinal uint32 = 1648508842
DirectoryAdminGetAttrOrdinal uint32 = 1166403528
DirectoryAdminGetAttrGenOrdinal uint32 = 1166403528
DirectoryAdminSetAttrOrdinal uint32 = 198530458
DirectoryAdminSetAttrGenOrdinal uint32 = 198530458
DirectoryAdminIoctlOrdinal uint32 = 905161895
DirectoryAdminIoctlGenOrdinal uint32 = 905161895
DirectoryAdminOpenOrdinal uint32 = 2011483371
DirectoryAdminOpenGenOrdinal uint32 = 2011483371
DirectoryAdminUnlinkOrdinal uint32 = 750443289
DirectoryAdminUnlinkGenOrdinal uint32 = 750443289
DirectoryAdminReadDirentsOrdinal uint32 = 782580781
DirectoryAdminReadDirentsGenOrdinal uint32 = 782580781
DirectoryAdminRewindOrdinal uint32 = 1886584199
DirectoryAdminRewindGenOrdinal uint32 = 1886584199
DirectoryAdminGetTokenOrdinal uint32 = 840416493
DirectoryAdminGetTokenGenOrdinal uint32 = 840416493
DirectoryAdminRenameOrdinal uint32 = 1251258540
DirectoryAdminRenameGenOrdinal uint32 = 1251258540
DirectoryAdminLinkOrdinal uint32 = 462052964
DirectoryAdminLinkGenOrdinal uint32 = 462052964
DirectoryAdminWatchOrdinal uint32 = 1522700084
DirectoryAdminWatchGenOrdinal uint32 = 1522700084
DirectoryAdminMountOrdinal uint32 = 2120159974
DirectoryAdminMountGenOrdinal uint32 = 2120159974
DirectoryAdminMountAndCreateOrdinal uint32 = 841348753
DirectoryAdminMountAndCreateGenOrdinal uint32 = 841348753
DirectoryAdminUnmountOrdinal uint32 = 620898132
DirectoryAdminUnmountGenOrdinal uint32 = 620898132
DirectoryAdminUnmountNodeOrdinal uint32 = 383400103
DirectoryAdminUnmountNodeGenOrdinal uint32 = 383400103
DirectoryAdminQueryFilesystemOrdinal uint32 = 1713999250
DirectoryAdminQueryFilesystemGenOrdinal uint32 = 1713999250
DirectoryAdminGetDevicePathOrdinal uint32 = 787943096
DirectoryAdminGetDevicePathGenOrdinal uint32 = 787943096
)
type DirectoryAdminCloneRequest struct {
_ struct{} `fidl2:"s,8,0"`
Flags uint32
Object NodeInterfaceRequest `fidl2:"0"`
}
var _mDirectoryAdminCloneRequest = _bindings.CreateLazyMarshaler(DirectoryAdminCloneRequest{})
func (msg *DirectoryAdminCloneRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminCloneRequest
}
// Implements Payload.
func (_ *DirectoryAdminCloneRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminCloneRequest) InlineSize() int {
return 8
}
type DirectoryAdminCloseResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminCloseResponse = _bindings.CreateLazyMarshaler(DirectoryAdminCloseResponse{})
func (msg *DirectoryAdminCloseResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminCloseResponse
}
// Implements Payload.
func (_ *DirectoryAdminCloseResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminCloseResponse) InlineSize() int {
return 8
}
type DirectoryAdminDescribeResponse struct {
_ struct{} `fidl2:"s,32,0"`
Info NodeInfo
}
var _mDirectoryAdminDescribeResponse = _bindings.CreateLazyMarshaler(DirectoryAdminDescribeResponse{})
func (msg *DirectoryAdminDescribeResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminDescribeResponse
}
// Implements Payload.
func (_ *DirectoryAdminDescribeResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminDescribeResponse) InlineSize() int {
return 32
}
type DirectoryAdminOnOpenResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Info *NodeInfo
}
var _mDirectoryAdminOnOpenResponse = _bindings.CreateLazyMarshaler(DirectoryAdminOnOpenResponse{})
func (msg *DirectoryAdminOnOpenResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminOnOpenResponse
}
// Implements Payload.
func (_ *DirectoryAdminOnOpenResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminOnOpenResponse) InlineSize() int {
return 16
}
type DirectoryAdminSyncResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminSyncResponse = _bindings.CreateLazyMarshaler(DirectoryAdminSyncResponse{})
func (msg *DirectoryAdminSyncResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminSyncResponse
}
// Implements Payload.
func (_ *DirectoryAdminSyncResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminSyncResponse) InlineSize() int {
return 8
}
type DirectoryAdminGetAttrResponse struct {
_ struct{} `fidl2:"s,64,0"`
S int32
Attributes NodeAttributes
}
var _mDirectoryAdminGetAttrResponse = _bindings.CreateLazyMarshaler(DirectoryAdminGetAttrResponse{})
func (msg *DirectoryAdminGetAttrResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminGetAttrResponse
}
// Implements Payload.
func (_ *DirectoryAdminGetAttrResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminGetAttrResponse) InlineSize() int {
return 64
}
type DirectoryAdminSetAttrRequest struct {
_ struct{} `fidl2:"s,64,0"`
Flags uint32
Attributes NodeAttributes
}
var _mDirectoryAdminSetAttrRequest = _bindings.CreateLazyMarshaler(DirectoryAdminSetAttrRequest{})
func (msg *DirectoryAdminSetAttrRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminSetAttrRequest
}
// Implements Payload.
func (_ *DirectoryAdminSetAttrRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminSetAttrRequest) InlineSize() int {
return 64
}
type DirectoryAdminSetAttrResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminSetAttrResponse = _bindings.CreateLazyMarshaler(DirectoryAdminSetAttrResponse{})
func (msg *DirectoryAdminSetAttrResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminSetAttrResponse
}
// Implements Payload.
func (_ *DirectoryAdminSetAttrResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminSetAttrResponse) InlineSize() int {
return 8
}
type DirectoryAdminIoctlRequest struct {
_ struct{} `fidl2:"s,48,0"`
Opcode uint32
MaxOut uint64
Handles []_zx.Handle `fidl:"2" fidl2:"2,0"`
In []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mDirectoryAdminIoctlRequest = _bindings.CreateLazyMarshaler(DirectoryAdminIoctlRequest{})
func (msg *DirectoryAdminIoctlRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminIoctlRequest
}
// Implements Payload.
func (_ *DirectoryAdminIoctlRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminIoctlRequest) InlineSize() int {
return 48
}
type DirectoryAdminIoctlResponse struct {
_ struct{} `fidl2:"s,40,0"`
S int32
Handles []_zx.Handle `fidl:"2" fidl2:"2,0"`
Out []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mDirectoryAdminIoctlResponse = _bindings.CreateLazyMarshaler(DirectoryAdminIoctlResponse{})
func (msg *DirectoryAdminIoctlResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminIoctlResponse
}
// Implements Payload.
func (_ *DirectoryAdminIoctlResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminIoctlResponse) InlineSize() int {
return 40
}
type DirectoryAdminOpenRequest struct {
_ struct{} `fidl2:"s,32,0"`
Flags uint32
Mode uint32
Path string `fidl:"4096" fidl2:"4096"`
Object NodeInterfaceRequest `fidl2:"0"`
}
var _mDirectoryAdminOpenRequest = _bindings.CreateLazyMarshaler(DirectoryAdminOpenRequest{})
func (msg *DirectoryAdminOpenRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminOpenRequest
}
// Implements Payload.
func (_ *DirectoryAdminOpenRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminOpenRequest) InlineSize() int {
return 32
}
type DirectoryAdminUnlinkRequest struct {
_ struct{} `fidl2:"s,16,0"`
Path string `fidl:"4096" fidl2:"4096"`
}
var _mDirectoryAdminUnlinkRequest = _bindings.CreateLazyMarshaler(DirectoryAdminUnlinkRequest{})
func (msg *DirectoryAdminUnlinkRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminUnlinkRequest
}
// Implements Payload.
func (_ *DirectoryAdminUnlinkRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminUnlinkRequest) InlineSize() int {
return 16
}
type DirectoryAdminUnlinkResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminUnlinkResponse = _bindings.CreateLazyMarshaler(DirectoryAdminUnlinkResponse{})
func (msg *DirectoryAdminUnlinkResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminUnlinkResponse
}
// Implements Payload.
func (_ *DirectoryAdminUnlinkResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminUnlinkResponse) InlineSize() int {
return 8
}
type DirectoryAdminReadDirentsRequest struct {
_ struct{} `fidl2:"s,8,0"`
MaxBytes uint64
}
var _mDirectoryAdminReadDirentsRequest = _bindings.CreateLazyMarshaler(DirectoryAdminReadDirentsRequest{})
func (msg *DirectoryAdminReadDirentsRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminReadDirentsRequest
}
// Implements Payload.
func (_ *DirectoryAdminReadDirentsRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminReadDirentsRequest) InlineSize() int {
return 8
}
type DirectoryAdminReadDirentsResponse struct {
_ struct{} `fidl2:"s,24,0"`
S int32
Dirents []uint8 `fidl:"8192" fidl2:"8192"`
}
var _mDirectoryAdminReadDirentsResponse = _bindings.CreateLazyMarshaler(DirectoryAdminReadDirentsResponse{})
func (msg *DirectoryAdminReadDirentsResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminReadDirentsResponse
}
// Implements Payload.
func (_ *DirectoryAdminReadDirentsResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminReadDirentsResponse) InlineSize() int {
return 24
}
type DirectoryAdminRewindResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminRewindResponse = _bindings.CreateLazyMarshaler(DirectoryAdminRewindResponse{})
func (msg *DirectoryAdminRewindResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminRewindResponse
}
// Implements Payload.
func (_ *DirectoryAdminRewindResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminRewindResponse) InlineSize() int {
return 8
}
type DirectoryAdminGetTokenResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
Token _zx.Handle `fidl:"*" fidl2:"1"`
}
var _mDirectoryAdminGetTokenResponse = _bindings.CreateLazyMarshaler(DirectoryAdminGetTokenResponse{})
func (msg *DirectoryAdminGetTokenResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminGetTokenResponse
}
// Implements Payload.
func (_ *DirectoryAdminGetTokenResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminGetTokenResponse) InlineSize() int {
return 8
}
type DirectoryAdminRenameRequest struct {
_ struct{} `fidl2:"s,40,0"`
Src string `fidl:"4096" fidl2:"4096"`
DstParentToken _zx.Handle `fidl2:"0"`
Dst string `fidl:"4096" fidl2:"4096"`
}
var _mDirectoryAdminRenameRequest = _bindings.CreateLazyMarshaler(DirectoryAdminRenameRequest{})
func (msg *DirectoryAdminRenameRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminRenameRequest
}
// Implements Payload.
func (_ *DirectoryAdminRenameRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminRenameRequest) InlineSize() int {
return 40
}
type DirectoryAdminRenameResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminRenameResponse = _bindings.CreateLazyMarshaler(DirectoryAdminRenameResponse{})
func (msg *DirectoryAdminRenameResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminRenameResponse
}
// Implements Payload.
func (_ *DirectoryAdminRenameResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminRenameResponse) InlineSize() int {
return 8
}
type DirectoryAdminLinkRequest struct {
_ struct{} `fidl2:"s,40,0"`
Src string `fidl:"4096" fidl2:"4096"`
DstParentToken _zx.Handle `fidl2:"0"`
Dst string `fidl:"4096" fidl2:"4096"`
}
var _mDirectoryAdminLinkRequest = _bindings.CreateLazyMarshaler(DirectoryAdminLinkRequest{})
func (msg *DirectoryAdminLinkRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminLinkRequest
}
// Implements Payload.
func (_ *DirectoryAdminLinkRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminLinkRequest) InlineSize() int {
return 40
}
type DirectoryAdminLinkResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminLinkResponse = _bindings.CreateLazyMarshaler(DirectoryAdminLinkResponse{})
func (msg *DirectoryAdminLinkResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminLinkResponse
}
// Implements Payload.
func (_ *DirectoryAdminLinkResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminLinkResponse) InlineSize() int {
return 8
}
type DirectoryAdminWatchRequest struct {
_ struct{} `fidl2:"s,16,0"`
Mask uint32
Options uint32
Watcher _zx.Channel `fidl2:"0"`
}
var _mDirectoryAdminWatchRequest = _bindings.CreateLazyMarshaler(DirectoryAdminWatchRequest{})
func (msg *DirectoryAdminWatchRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminWatchRequest
}
// Implements Payload.
func (_ *DirectoryAdminWatchRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminWatchRequest) InlineSize() int {
return 16
}
type DirectoryAdminWatchResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminWatchResponse = _bindings.CreateLazyMarshaler(DirectoryAdminWatchResponse{})
func (msg *DirectoryAdminWatchResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminWatchResponse
}
// Implements Payload.
func (_ *DirectoryAdminWatchResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminWatchResponse) InlineSize() int {
return 8
}
type DirectoryAdminMountRequest struct {
_ struct{} `fidl2:"s,8,0"`
Remote DirectoryInterface
}
var _mDirectoryAdminMountRequest = _bindings.CreateLazyMarshaler(DirectoryAdminMountRequest{})
func (msg *DirectoryAdminMountRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminMountRequest
}
// Implements Payload.
func (_ *DirectoryAdminMountRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminMountRequest) InlineSize() int {
return 8
}
type DirectoryAdminMountResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminMountResponse = _bindings.CreateLazyMarshaler(DirectoryAdminMountResponse{})
func (msg *DirectoryAdminMountResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminMountResponse
}
// Implements Payload.
func (_ *DirectoryAdminMountResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminMountResponse) InlineSize() int {
return 8
}
type DirectoryAdminMountAndCreateRequest struct {
_ struct{} `fidl2:"s,32,0"`
Remote DirectoryInterface
Name string `fidl:"255" fidl2:"255"`
Flags uint32
}
var _mDirectoryAdminMountAndCreateRequest = _bindings.CreateLazyMarshaler(DirectoryAdminMountAndCreateRequest{})
func (msg *DirectoryAdminMountAndCreateRequest) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminMountAndCreateRequest
}
// Implements Payload.
func (_ *DirectoryAdminMountAndCreateRequest) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminMountAndCreateRequest) InlineSize() int {
return 32
}
type DirectoryAdminMountAndCreateResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminMountAndCreateResponse = _bindings.CreateLazyMarshaler(DirectoryAdminMountAndCreateResponse{})
func (msg *DirectoryAdminMountAndCreateResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminMountAndCreateResponse
}
// Implements Payload.
func (_ *DirectoryAdminMountAndCreateResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminMountAndCreateResponse) InlineSize() int {
return 8
}
type DirectoryAdminUnmountResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
}
var _mDirectoryAdminUnmountResponse = _bindings.CreateLazyMarshaler(DirectoryAdminUnmountResponse{})
func (msg *DirectoryAdminUnmountResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminUnmountResponse
}
// Implements Payload.
func (_ *DirectoryAdminUnmountResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminUnmountResponse) InlineSize() int {
return 8
}
type DirectoryAdminUnmountNodeResponse struct {
_ struct{} `fidl2:"s,8,0"`
S int32
Remote DirectoryInterface `fidl:"*"`
}
var _mDirectoryAdminUnmountNodeResponse = _bindings.CreateLazyMarshaler(DirectoryAdminUnmountNodeResponse{})
func (msg *DirectoryAdminUnmountNodeResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminUnmountNodeResponse
}
// Implements Payload.
func (_ *DirectoryAdminUnmountNodeResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminUnmountNodeResponse) InlineSize() int {
return 8
}
type DirectoryAdminQueryFilesystemResponse struct {
_ struct{} `fidl2:"s,16,0"`
S int32
Info *FilesystemInfo
}
var _mDirectoryAdminQueryFilesystemResponse = _bindings.CreateLazyMarshaler(DirectoryAdminQueryFilesystemResponse{})
func (msg *DirectoryAdminQueryFilesystemResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminQueryFilesystemResponse
}
// Implements Payload.
func (_ *DirectoryAdminQueryFilesystemResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminQueryFilesystemResponse) InlineSize() int {
return 16
}
type DirectoryAdminGetDevicePathResponse struct {
_ struct{} `fidl2:"s,24,0"`
S int32
Path *string `fidl:"4096" fidl2:"4096"`
}
var _mDirectoryAdminGetDevicePathResponse = _bindings.CreateLazyMarshaler(DirectoryAdminGetDevicePathResponse{})
func (msg *DirectoryAdminGetDevicePathResponse) Marshaler() _bindings.Marshaler {
return _mDirectoryAdminGetDevicePathResponse
}
// Implements Payload.
func (_ *DirectoryAdminGetDevicePathResponse) InlineAlignment() int {
return 0
}
// Implements Payload.
func (_ *DirectoryAdminGetDevicePathResponse) InlineSize() int {
return 24
}
type DirectoryAdminInterface _bindings.ChannelProxy
// Create another connection to the same remote object.
//
// |flags| may be any of:
// - OPEN_RIGHT_*
// - OPEN_FLAG_APPEND
// - OPEN_FLAG_NO_REMOTE
// - OPEN_FLAG_DESCRIBE
//
// All other flags are ignored.
//
// The cloned object must have rights less than or equal to the original object.
//
// TODO: Currently, ulib/fs ignores OPEN_RIGHT_*, and uses the rights of the original
// connection. This is a bug.
func (p *DirectoryAdminInterface) Clone(flags uint32, object NodeInterfaceRequest) error {
req_ := &DirectoryAdminCloneRequest{
Flags: flags,
Object: object,
}
err := ((*_bindings.ChannelProxy)(p)).Send(DirectoryAdminCloneOrdinal, req_)
return err
}
// Terminates connection with object.
//
// This method does not require any rights.
func (p *DirectoryAdminInterface) Close() (int32, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminCloseResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminCloseOrdinal, req_, resp_)
return resp_.S, err
}
// Returns extra information about the type of the object.
// If the |Describe| operation fails, the connection is closed.
//
// This method does not require any rights.
func (p *DirectoryAdminInterface) Describe() (NodeInfo, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminDescribeResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminDescribeOrdinal, req_, resp_)
return resp_.Info, err
}
// An event produced eagerly by a fidl server if requested by |OPEN_FLAG_DESCRIBE|.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is |ZX_OK|, |info| contains descriptive information about the object
// (the same as would be returned by |Describe|).
func (p *DirectoryAdminInterface) ExpectOnOpen() (int32, *NodeInfo, error) {
resp_ := &DirectoryAdminOnOpenResponse{}
err := ((*_bindings.ChannelProxy)(p)).Recv(DirectoryAdminOnOpenOrdinal, resp_)
return resp_.S, resp_.Info, err
}
// Synchronizes updates to the node to the underlying media, if it exists.
func (p *DirectoryAdminInterface) Sync() (int32, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminSyncResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminSyncOrdinal, req_, resp_)
return resp_.S, err
}
// Acquires information about the node.
//
// This method does not require any rights.
func (p *DirectoryAdminInterface) GetAttr() (int32, NodeAttributes, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminGetAttrResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminGetAttrOrdinal, req_, resp_)
return resp_.S, resp_.Attributes, err
}
// Updates information about the node.
// |flags| may be any of NODE_ATTRIBUTE_FLAG_*.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
// TODO(ZX-1262): This access restriction is not implemented in ulib/fs.
func (p *DirectoryAdminInterface) SetAttr(flags uint32, attributes NodeAttributes) (int32, error) {
req_ := &DirectoryAdminSetAttrRequest{
Flags: flags,
Attributes: attributes,
}
resp_ := &DirectoryAdminSetAttrResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminSetAttrOrdinal, req_, resp_)
return resp_.S, err
}
// Deprecated. Only for use with compatibility with devhost.
func (p *DirectoryAdminInterface) Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error) {
req_ := &DirectoryAdminIoctlRequest{
Opcode: opcode,
MaxOut: maxOut,
Handles: handles,
In: in,
}
resp_ := &DirectoryAdminIoctlResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminIoctlOrdinal, req_, resp_)
return resp_.S, resp_.Handles, resp_.Out, err
}
// Open a new object relative to this directory object.
//
// Flags may be any of the OPEN_FLAG_* and OPEN_RIGHT_* values, bitwise ORed together.
// The OPEN_FLAG_DESCRIBE flag may cause an |OnOpen| event to be transmitted
// on the |object| handle, indicating the type of object opened.
func (p *DirectoryAdminInterface) Open(flags uint32, mode uint32, path string, object NodeInterfaceRequest) error {
req_ := &DirectoryAdminOpenRequest{
Flags: flags,
Mode: mode,
Path: path,
Object: object,
}
err := ((*_bindings.ChannelProxy)(p)).Send(DirectoryAdminOpenOrdinal, req_)
return err
}
// Remove an object relative to this directory object.
func (p *DirectoryAdminInterface) Unlink(path string) (int32, error) {
req_ := &DirectoryAdminUnlinkRequest{
Path: path,
}
resp_ := &DirectoryAdminUnlinkResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminUnlinkOrdinal, req_, resp_)
return resp_.S, err
}
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// /// POSIX d_type values. Use DIRENT_TYPE_* constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
func (p *DirectoryAdminInterface) ReadDirents(maxBytes uint64) (int32, []uint8, error) {
req_ := &DirectoryAdminReadDirentsRequest{
MaxBytes: maxBytes,
}
resp_ := &DirectoryAdminReadDirentsResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminReadDirentsOrdinal, req_, resp_)
return resp_.S, resp_.Dirents, err
}
// Reset the directory seek offset.
func (p *DirectoryAdminInterface) Rewind() (int32, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminRewindResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminRewindOrdinal, req_, resp_)
return resp_.S, err
}
// Acquire a token to a Directory which can be used to identify
// access to it at a later point in time.
func (p *DirectoryAdminInterface) GetToken() (int32, _zx.Handle, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminGetTokenResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminGetTokenOrdinal, req_, resp_)
return resp_.S, resp_.Token, err
}
// Within the directory, rename an object named src to the name dst, in
// a directory represented by token.
func (p *DirectoryAdminInterface) Rename(src string, dstParentToken _zx.Handle, dst string) (int32, error) {
req_ := &DirectoryAdminRenameRequest{
Src: src,
DstParentToken: dstParentToken,
Dst: dst,
}
resp_ := &DirectoryAdminRenameResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminRenameOrdinal, req_, resp_)
return resp_.S, err
}
// Within the directory, create a link to an object named src by the name
// dst, within a directory represented by token.
func (p *DirectoryAdminInterface) Link(src string, dstParentToken _zx.Handle, dst string) (int32, error) {
req_ := &DirectoryAdminLinkRequest{
Src: src,
DstParentToken: dstParentToken,
Dst: dst,
}
resp_ := &DirectoryAdminLinkResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminLinkOrdinal, req_, resp_)
return resp_.S, err
}
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The "watcher" handle will send messages of the form:
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a "DirectoryWatcher" client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
func (p *DirectoryAdminInterface) Watch(mask uint32, options uint32, watcher _zx.Channel) (int32, error) {
req_ := &DirectoryAdminWatchRequest{
Mask: mask,
Options: options,
Watcher: watcher,
}
resp_ := &DirectoryAdminWatchResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminWatchOrdinal, req_, resp_)
return resp_.S, err
}
// Mount a channel representing a remote filesystem onto this directory.
// All future requests to this node will be forwarded to the remote filesystem.
// To re-open a node without forwarding to the remote target, the node
// should be opened with OPEN_FLAG_NO_REMOTE.
func (p *DirectoryAdminInterface) Mount(remote DirectoryInterface) (int32, error) {
req_ := &DirectoryAdminMountRequest{
Remote: remote,
}
resp_ := &DirectoryAdminMountResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminMountOrdinal, req_, resp_)
return resp_.S, err
}
// Atomically create a directory with a provided path, and mount the
// remote handle to the newly created directory.
func (p *DirectoryAdminInterface) MountAndCreate(remote DirectoryInterface, name string, flags uint32) (int32, error) {
req_ := &DirectoryAdminMountAndCreateRequest{
Remote: remote,
Name: name,
Flags: flags,
}
resp_ := &DirectoryAdminMountAndCreateResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminMountAndCreateOrdinal, req_, resp_)
return resp_.S, err
}
// Unmount this filesystem. After this function returns successfully,
// all connections to the filesystem will be terminated.
func (p *DirectoryAdminInterface) Unmount() (int32, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminUnmountResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminUnmountOrdinal, req_, resp_)
return resp_.S, err
}
// Detach a node which was previously attached to this directory
// with Mount.
func (p *DirectoryAdminInterface) UnmountNode() (int32, DirectoryInterface, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminUnmountNodeResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminUnmountNodeOrdinal, req_, resp_)
return resp_.S, resp_.Remote, err
}
// Query the filesystem for filesystem-specific information.
func (p *DirectoryAdminInterface) QueryFilesystem() (int32, *FilesystemInfo, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminQueryFilesystemResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminQueryFilesystemOrdinal, req_, resp_)
return resp_.S, resp_.Info, err
}
// Acquire the path to the device backing this filesystem, if there is one.
func (p *DirectoryAdminInterface) GetDevicePath() (int32, *string, error) {
var req_ _bindings.Payload
resp_ := &DirectoryAdminGetDevicePathResponse{}
err := ((*_bindings.ChannelProxy)(p)).Call(DirectoryAdminGetDevicePathOrdinal, req_, resp_)
return resp_.S, resp_.Path, err
}
// DirectoryAdmin defines a directory which is capable of handling
// administrator tasks within the filesystem.
type DirectoryAdmin interface {
// Create another connection to the same remote object.
//
// |flags| may be any of:
// - OPEN_RIGHT_*
// - OPEN_FLAG_APPEND
// - OPEN_FLAG_NO_REMOTE
// - OPEN_FLAG_DESCRIBE
//
// All other flags are ignored.
//
// The cloned object must have rights less than or equal to the original object.
//
// TODO: Currently, ulib/fs ignores OPEN_RIGHT_*, and uses the rights of the original
// connection. This is a bug.
Clone(flags uint32, object NodeInterfaceRequest) error
// Terminates connection with object.
//
// This method does not require any rights.
Close() (int32, error)
// Returns extra information about the type of the object.
// If the |Describe| operation fails, the connection is closed.
//
// This method does not require any rights.
Describe() (NodeInfo, error)
// An event produced eagerly by a fidl server if requested by |OPEN_FLAG_DESCRIBE|.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is |ZX_OK|, |info| contains descriptive information about the object
// (the same as would be returned by |Describe|).
// Synchronizes updates to the node to the underlying media, if it exists.
Sync() (int32, error)
// Acquires information about the node.
//
// This method does not require any rights.
GetAttr() (int32, NodeAttributes, error)
// Updates information about the node.
// |flags| may be any of NODE_ATTRIBUTE_FLAG_*.
//
// This method requires following rights: OPEN_RIGHT_WRITABLE.
// TODO(ZX-1262): This access restriction is not implemented in ulib/fs.
SetAttr(flags uint32, attributes NodeAttributes) (int32, error)
// Deprecated. Only for use with compatibility with devhost.
Ioctl(opcode uint32, maxOut uint64, handles []_zx.Handle, in []uint8) (int32, []_zx.Handle, []uint8, error)
// Open a new object relative to this directory object.
//
// Flags may be any of the OPEN_FLAG_* and OPEN_RIGHT_* values, bitwise ORed together.
// The OPEN_FLAG_DESCRIBE flag may cause an |OnOpen| event to be transmitted
// on the |object| handle, indicating the type of object opened.
Open(flags uint32, mode uint32, path string, object NodeInterfaceRequest) error
// Remove an object relative to this directory object.
Unlink(path string) (int32, error)
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// /// POSIX d_type values. Use DIRENT_TYPE_* constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
ReadDirents(maxBytes uint64) (int32, []uint8, error)
// Reset the directory seek offset.
Rewind() (int32, error)
// Acquire a token to a Directory which can be used to identify
// access to it at a later point in time.
GetToken() (int32, _zx.Handle, error)
// Within the directory, rename an object named src to the name dst, in
// a directory represented by token.
Rename(src string, dstParentToken _zx.Handle, dst string) (int32, error)
// Within the directory, create a link to an object named src by the name
// dst, within a directory represented by token.
Link(src string, dstParentToken _zx.Handle, dst string) (int32, error)
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The "watcher" handle will send messages of the form:
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a "DirectoryWatcher" client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
Watch(mask uint32, options uint32, watcher _zx.Channel) (int32, error)
// Mount a channel representing a remote filesystem onto this directory.
// All future requests to this node will be forwarded to the remote filesystem.
// To re-open a node without forwarding to the remote target, the node
// should be opened with OPEN_FLAG_NO_REMOTE.
Mount(remote DirectoryInterface) (int32, error)
// Atomically create a directory with a provided path, and mount the
// remote handle to the newly created directory.
MountAndCreate(remote DirectoryInterface, name string, flags uint32) (int32, error)
// Unmount this filesystem. After this function returns successfully,
// all connections to the filesystem will be terminated.
Unmount() (int32, error)
// Detach a node which was previously attached to this directory
// with Mount.
UnmountNode() (int32, DirectoryInterface, error)
// Query the filesystem for filesystem-specific information.
QueryFilesystem() (int32, *FilesystemInfo, error)
// Acquire the path to the device backing this filesystem, if there is one.
GetDevicePath() (int32, *string, error)
}
type DirectoryAdminTransitionalBase struct{}
type DirectoryAdminInterfaceRequest _bindings.InterfaceRequest
func NewDirectoryAdminInterfaceRequest() (DirectoryAdminInterfaceRequest, *DirectoryAdminInterface, error) {
req, cli, err := _bindings.NewInterfaceRequest()
return DirectoryAdminInterfaceRequest(req), (*DirectoryAdminInterface)(cli), err
}
type DirectoryAdminStub struct {
Impl DirectoryAdmin
}
func (s *DirectoryAdminStub) Dispatch(ord uint32, b_ []byte, h_ []_zx.Handle) (_bindings.Payload, error) {
switch ord {
case DirectoryAdminCloneOrdinal:
in_ := DirectoryAdminCloneRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
err_ := s.Impl.Clone(in_.Flags, in_.Object)
return nil, err_
case DirectoryAdminCloseOrdinal:
s, err_ := s.Impl.Close()
out_ := DirectoryAdminCloseResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminDescribeOrdinal:
info, err_ := s.Impl.Describe()
out_ := DirectoryAdminDescribeResponse{}
out_.Info = info
return &out_, err_
case DirectoryAdminSyncOrdinal:
s, err_ := s.Impl.Sync()
out_ := DirectoryAdminSyncResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminGetAttrOrdinal:
s, attributes, err_ := s.Impl.GetAttr()
out_ := DirectoryAdminGetAttrResponse{}
out_.S = s
out_.Attributes = attributes
return &out_, err_
case DirectoryAdminSetAttrOrdinal:
in_ := DirectoryAdminSetAttrRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.SetAttr(in_.Flags, in_.Attributes)
out_ := DirectoryAdminSetAttrResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminIoctlOrdinal:
in_ := DirectoryAdminIoctlRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, handles, out, err_ := s.Impl.Ioctl(in_.Opcode, in_.MaxOut, in_.Handles, in_.In)
out_ := DirectoryAdminIoctlResponse{}
out_.S = s
out_.Handles = handles
out_.Out = out
return &out_, err_
case DirectoryAdminOpenOrdinal:
in_ := DirectoryAdminOpenRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
err_ := s.Impl.Open(in_.Flags, in_.Mode, in_.Path, in_.Object)
return nil, err_
case DirectoryAdminUnlinkOrdinal:
in_ := DirectoryAdminUnlinkRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Unlink(in_.Path)
out_ := DirectoryAdminUnlinkResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminReadDirentsOrdinal:
in_ := DirectoryAdminReadDirentsRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, dirents, err_ := s.Impl.ReadDirents(in_.MaxBytes)
out_ := DirectoryAdminReadDirentsResponse{}
out_.S = s
out_.Dirents = dirents
return &out_, err_
case DirectoryAdminRewindOrdinal:
s, err_ := s.Impl.Rewind()
out_ := DirectoryAdminRewindResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminGetTokenOrdinal:
s, token, err_ := s.Impl.GetToken()
out_ := DirectoryAdminGetTokenResponse{}
out_.S = s
out_.Token = token
return &out_, err_
case DirectoryAdminRenameOrdinal:
in_ := DirectoryAdminRenameRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Rename(in_.Src, in_.DstParentToken, in_.Dst)
out_ := DirectoryAdminRenameResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminLinkOrdinal:
in_ := DirectoryAdminLinkRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Link(in_.Src, in_.DstParentToken, in_.Dst)
out_ := DirectoryAdminLinkResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminWatchOrdinal:
in_ := DirectoryAdminWatchRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Watch(in_.Mask, in_.Options, in_.Watcher)
out_ := DirectoryAdminWatchResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminMountOrdinal:
in_ := DirectoryAdminMountRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.Mount(in_.Remote)
out_ := DirectoryAdminMountResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminMountAndCreateOrdinal:
in_ := DirectoryAdminMountAndCreateRequest{}
if err_ := _bindings.Unmarshal(b_, h_, &in_); err_ != nil {
return nil, err_
}
s, err_ := s.Impl.MountAndCreate(in_.Remote, in_.Name, in_.Flags)
out_ := DirectoryAdminMountAndCreateResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminUnmountOrdinal:
s, err_ := s.Impl.Unmount()
out_ := DirectoryAdminUnmountResponse{}
out_.S = s
return &out_, err_
case DirectoryAdminUnmountNodeOrdinal:
s, remote, err_ := s.Impl.UnmountNode()
out_ := DirectoryAdminUnmountNodeResponse{}
out_.S = s
out_.Remote = remote
return &out_, err_
case DirectoryAdminQueryFilesystemOrdinal:
s, info, err_ := s.Impl.QueryFilesystem()
out_ := DirectoryAdminQueryFilesystemResponse{}
out_.S = s
out_.Info = info
return &out_, err_
case DirectoryAdminGetDevicePathOrdinal:
s, path, err_ := s.Impl.GetDevicePath()
out_ := DirectoryAdminGetDevicePathResponse{}
out_.S = s
out_.Path = path
return &out_, err_
}
return nil, _bindings.ErrUnknownOrdinal
}
type DirectoryAdminService struct {
_bindings.BindingSet
}
func (s *DirectoryAdminService) Add(impl DirectoryAdmin, c _zx.Channel, onError func(error)) (_bindings.BindingKey, error) {
return s.BindingSet.Add(&DirectoryAdminStub{Impl: impl}, c, onError)
}
func (s *DirectoryAdminService) EventProxyFor(key _bindings.BindingKey) (*DirectoryAdminEventProxy, bool) {
pxy, err := s.BindingSet.ProxyFor(key)
return (*DirectoryAdminEventProxy)(pxy), err
}
type DirectoryAdminEventProxy _bindings.ChannelProxy
func (p *DirectoryAdminEventProxy) OnOpen(s int32, info *NodeInfo) error {
event_ := &DirectoryAdminOnOpenResponse{
S: s,
Info: info,
}
return ((*_bindings.ChannelProxy)(p)).Send(DirectoryAdminOnOpenOrdinal, event_)
}