blob: 3fd59eeac92ff645744cafe06a4df041d0e40d7e [file] [log] [blame]
// Copyright 2016 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.
#pragma once
#include <zircon/types.h>
// Rights
// The file may be read.
#define ZX_FS_RIGHT_READABLE 0x00000001
// The file may be written.
#define ZX_FS_RIGHT_WRITABLE 0x00000002
// The connection can mount and unmount filesystems.
#define ZX_FS_RIGHT_ADMIN 0x00000004
#define ZX_FS_RIGHTS 0x0000FFFF
// Flags
// If the file does not exist, it will be created.
#define ZX_FS_FLAG_CREATE 0x00010000
// The file must not exist, otherwise an error will be returned.
// Ignored without ZX_FS_FLAG_CREATE.
#define ZX_FS_FLAG_EXCLUSIVE 0x00020000
// Truncates the file before using it.
#define ZX_FS_FLAG_TRUNCATE 0x00040000
// Returns an error if the opened file is not a directory.
#define ZX_FS_FLAG_DIRECTORY 0x00080000
// The file is opened in append mode, seeking to the end of the file before each
// write.
#define ZX_FS_FLAG_APPEND 0x00100000
// If the endpoint of this request refers to a mount point, open the local
// directory, not the remote mount.
#define ZX_FS_FLAG_NOREMOTE 0x00200000
// The file underlying file should not be opened, just a reference to the file.
#define ZX_FS_FLAG_VNODE_REF_ONLY 0x00400000
// When the file has been opened, the server should transmit a description event.
// This event will be transmitted either on success or failure.
#define ZX_FS_FLAG_DESCRIBE 0x00800000
// Watch event messages are sent via the provided channel and take the form:
// { uint8_t event; uint8_t namelen; uint8_t name[namelen]; }
// Multiple events may arrive in one message, one after another.
// Names do not include a terminating null.
typedef struct {
uint8_t event;
uint8_t len;
char name[];
} vfs_watch_msg_t;
#define VFS_TYPE_BLOBFS 0x9e694d21
#define VFS_TYPE_MINFS 0x6e694d21
#define VFS_TYPE_MEMFS 0x3e694d21