blob: aedc7d1b97b9418d1a0035f9c851c9c7c767900c [file] [log] [blame]
{
include: [ "sdk/lib/diagnostics/syslog/client.shard.cml" ],
program: {
binary: "bin/fshost",
lifecycle: { stop_event: "notify" },
},
capabilities: [
{
directory: "pkgfs-delayed",
rights: [ "rx*" ],
path: "/delayed/fs/pkgfs",
},
{
directory: "system-delayed",
rights: [ "rx*" ],
path: "/delayed/fs/system",
},
{
directory: "bin",
rights: [ "rx*" ],
path: "/fs/bin",
},
{
directory: "blob",
rights: [ "rw*" ],
path: "/fs/blob",
},
{
directory: "factory",
rights: [ "r*" ],
path: "/fs/factory",
},
{
directory: "durable",
rights: [ "rw*" ],
path: "/fs/durable",
},
{
directory: "minfs",
rights: [ "rw*" ],
path: "/fs/data",
},
{
directory: "install",
rights: [ "rw*" ],
path: "/fs/install",
},
{
directory: "pkgfs",
rights: [ "rx*" ],
path: "/fs/pkgfs",
},
{
directory: "config-data",
rights: [ "r*" ],
path: "/delayed/fs/pkgfs/packages/config-data/0/meta/data",
},
{
directory: "system",
rights: [ "rx*" ],
path: "/fs/system",
},
{
directory: "tmp",
rights: [
"admin",
"rw*",
],
path: "/fs/tmp",
},
// Diagnostics/Inspect
{
directory: "diagnostics",
rights: [ "connect" ],
path: "/diagnostics",
},
// TODO: this volume directory is only used by the paver lib in netsvc under
// devcoordinator. The paver lib could create its own memfs instead, so
// this should eventually be removed.
{
directory: "volume",
rights: [
"admin",
"rw*",
],
path: "/fs/volume",
},
{
protocol: "fuchsia.fshost.Filesystems",
path: "/fs-manager-svc/fuchsia.fshost.Filesystems",
},
{
protocol: "fuchsia.fshost.Registry",
path: "/fs-manager-svc/fuchsia.fshost.Registry",
},
{
protocol: [
"fuchsia.fshost.Admin",
"fuchsia.fshost.BlockWatcher",
"fuchsia.fshost.Loader",
],
},
],
use: [
{ runner: "elf" },
{
directory: "dev",
rights: [ "rw*" ],
path: "/dev",
},
{
directory: "boot",
rights: [ "rx*" ],
path: "/boot",
},
{
protocol: [
"fuchsia.boot.Arguments",
"fuchsia.boot.Items",
"fuchsia.boot.WriteOnlyLog",
"fuchsia.cobalt.LoggerFactory",
"fuchsia.process.Launcher",
"fuchsia.tracing.provider.Registry",
],
},
// Use fuchsia.kernel.VmexResource but locate it under a separate directory in fshost's
// namespace. This enables providing the service only to the blobfs process but not other
// filesystems. fshost should not use this itself, only provide to blobfs.
// TODO: Once blobfs is a component this can be routed directly to it.
{
protocol: "fuchsia.kernel.VmexResource",
path: "/svc_blobfs/fuchsia.kernel.VmexResource",
},
{
protocol: "fuchsia.scheduler.ProfileProvider",
path: "/svc_blobfs/fuchsia.scheduler.ProfileProvider",
},
],
expose: [
{
directory: "pkgfs-delayed",
from: "self",
},
{
directory: "system-delayed",
from: "self",
},
{
directory: "bin",
from: "self",
},
{
directory: "blob",
from: "self",
},
{
directory: "factory",
from: "self",
},
{
directory: "durable",
from: "self",
},
{
directory: "minfs",
from: "self",
},
{
directory: "install",
from: "self",
},
{
directory: "pkgfs",
from: "self",
},
{
directory: "config-data",
from: "self",
},
{
directory: "system",
from: "self",
},
{
directory: "tmp",
from: "self",
},
{
directory: "diagnostics",
from: "self",
to: "framework",
},
{
directory: "volume",
from: "self",
},
{
protocol: [
"fuchsia.fshost.Admin",
"fuchsia.fshost.BlockWatcher",
"fuchsia.fshost.Filesystems",
"fuchsia.fshost.Registry",
],
from: "self",
},
// This service name is breaking the convention whereby the directory entry
// name matches the protocol name. This is an implementation of
// fuchsia.ldsvc.Loader, and is renamed to make it easier to identify that
// this implementation comes from fshost.
// TODO(fxbug.dev/34633): This service is deprecated and should only be routed to
// devcoordinator
{
protocol: "fuchsia.fshost.Loader",
from: "self",
},
],
}