Contains parallel arrays of handles, path names, and types.
The number of elements in the other arrays of this struct.
handle[i] is the zx_handle_t representing that element in the namespace.
type[i] is a handle info entry as defined in zircon/processargs.h by PA_HND.
path[i] is the user-readable name of that element (e.g., “/bin”).
Create a new directory within a namespace, bound to the directory-protocol-compatible handle h
The path must be an absolute path like “/x/y/z”. It is relative to the root of the namespace.
Ownership of h
is transferred to ns
: it is closed on error.
ZX_ERR_BAD_STATE
: Namespace is already in use and immutable.
ZX_ERR_ALREADY_EXISTS
: There is already a mounted directory there.
ZX_ERR_NOT_SUPPORTED
: path
would shadow a mounted directory.
ZX_ERR_INVALID_ARGS
: path
is null or is not an absolute path.
ZX_ERR_BAD_PATH
: path
is not a valid path.
Create a new directory within a namespace, bound to the directory referenced by the file descriptor fd. The path must be an absolute path like “/x/y/z”. It is relative to the root of the namespace.
fd
is borrowed by this function, but is not closed on success or error. Closing the fd after success does not affect namespace.
ZX_ERR_BAD_STATE: Namespace is already in use and immutable or
fd` cannot be cloned in its current state.
`ZX_ERR_ALREADY_EXISTS: There is already a mounted directory there.
ZX_ERR_NOT_SUPPORTED:
pathwould shadow a mounted directory or
fd` cannot be represented as a handle.
ZX_ERR_INVALID_ARGS:
pathis null or is not an absolute path or
fd` is not a valid file descriptor.
ZX_ERR_BAD_PATH:
path` is not a valid path.
ZX_ERR_ACCESS_DENIED:
fd` has insufficient rights to clone the underlying object.
Create a new local entry within a namespace.
Opening the path will run the given on_open
with the given context
to populate the file. The callback must set the zxio operations table, and can set an internal state inside the provided storage.
The path must be an absolute path like “/x/y/z”. It is relative to the root of the namespace.
ZX_ERR_BAD_STATE
: Namespace is already in use and immutable.
ZX_ERR_ALREADY_EXISTS
: There is already a mounted directory there.
ZX_ERR_NOT_SUPPORTED
: path
would shadow a mounted directory.
ZX_ERR_INVALID_ARGS
: path
is null or is not an absolute path.
ZX_ERR_BAD_PATH
: path
is not a valid path.
Changes the current directory to “/” in the provided namespace.
Attempt to connect to a service through the namespace. The handle is always consumed. It will be closed on error or passed to the remote service on success. The path must be an absolute path starting with “/”.
Create a new, empty namespace
Destroy and deallocate a namespace.
If the namespace is in-use, it will be destroyed once it is no longer referenced.
This function always returns ZX_OK
.
On success the caller takes ownership of a fdio_flat_namespace_t containing a flat representation of the exported namespace (the one provided in ‘ns’ or the active root namespace, respectively.) The handles are CLONEs of the handles in the namespace and also belong to the caller.
The whole data structure can be released with fdio_ns_free_flat_ns().
Frees a flat namespace.
Closes all handles contained within ns
.
Retrieve the fdio “global” namespace (if any).
Whether path
is bound to a remote directory in ns
.
Opens an object at path
relative to the root of ns
with flags
asynchronously.
path
is looked up in ns
. If found, the object at path
is opened, passing request
to the remote party.
Upon success, request
is handed off to the remote party. The operation completes asynchronously, which means a ZX_OK result does not ensure that the requested service actually exists.
path
must be absolute.
flags
is a fuchsia.io/OpenFlags
.
request
must be a channel and it is always consumed by this function.
ZX_ERR_INVALID_ARGS
: path
is invalid.
ZX_ERR_NOT_FOUND
: A prefix of path
cannot be found in ns
.
Opens the root directory of the namespace as a file descriptor
Connects to a service at path
relative to the root of ns
asynchronously.
path
is looked up in ns
. If found, the object at path
is opened, passing request
to the remote party.
Upon success, request
is handed off to the remote party. The operation completes asynchronously, which means a ZX_OK result does not ensure that the requested service actually exists.
path
must be absolute.
request
must be a channel and it is always consumed by this function.
ZX_ERR_INVALID_ARGS
: path
is invalid.
ZX_ERR_NOT_FOUND
: A prefix of path
cannot be found in ns
.
Unbinds path
from a namespace, closing the handle within ns
that corresponds to that path when all references to the node go out of scope.
ZX_ERR_NOT_FOUND:
path` is not a remote.
ZX_ERR_NOT_SUPPORTED:
path` is the root of the namespace.
ZX_ERR_INVALID_ARGS:
path` is null or not an absolute path.
ZX_ERR_BAD_PATH:
path` is not a valid path.