blob: e7e77fc6570197dc6f533ea2d6d54bfd36773534 [file] [log] [blame]
{
include: [
"inspect/client.shard.cml",
"syslog/client.shard.cml",
"syslog/elf_stdio.shard.cml",
],
program: {
runner: "elf",
binary: "bin/starnix_runner",
job_policy_create_raw_processes: "true",
use_next_vdso: "true",
},
capabilities: [
{
runner: "starnix",
path: "/svc/fuchsia.component.runner.ComponentRunner",
},
{
protocol: [
"fuchsia.component.runner.ComponentRunner",
"fuchsia.starnix.developer.Manager",
],
},
],
use: [
{
directory: "dev-gpu",
rights: [ "rw*" ],
path: "/dev/class/gpu",
},
{
protocol: [
// Note that this is the parent's realm. This is used to create children in
// starnix_manager's collection.
"fuchsia.component.Realm",
"fuchsia.kernel.VmexResource",
"fuchsia.sysmem.Allocator",
// Wayland bridge protocols.
"fuchsia.tracing.provider.Registry",
"fuchsia.ui.composition.Allocator",
"fuchsia.ui.composition.Flatland",
"fuchsia.ui.input3.Keyboard",
"fuchsia.ui.scenic.Scenic",
"fuchsia.vulkan.loader.Loader",
],
from: "parent",
},
],
expose: [
{
runner: "starnix",
from: "self",
},
{
protocol: [
"fuchsia.component.runner.ComponentRunner",
// In principle, this protocol should be exposed by a separate
// starnix_manager component, but that is blocked behind fxb/74087
"fuchsia.starnix.developer.Manager",
],
from: "self",
},
],
config: {
// Hack for specifying apexes.
apex_hack: {
type: "vector",
element: {
type: "string",
max_size: 256,
},
max_count: 100,
},
// The features to run in the galaxy (e.g., wayland support).
features: {
type: "vector",
element: {
type: "string",
max_size: 256,
},
max_count: 100,
},
// The arguments for the `init` task. The first argument must be an absolute path to the binary. Specify an empty vector to not start an init task.
init: {
type: "vector",
element: {
type: "string",
max_size: 256,
},
max_count: 100,
},
// The user string used when creating the `init` task.
init_user: {
type: "string",
max_size: 256,
},
// The command line arguments for the kernel.
kernel_cmdline: {
type: "string",
max_size: 256,
},
// The filesystems that get mounted when the galaxy is created.
mounts: {
type: "vector",
element: {
type: "string",
max_size: 256,
},
max_count: 100,
},
// The name of the galaxy.
name: {
type: "string",
max_size: 256,
},
// A file path that will be used to determine whether or not the system is ready to execute
// tasks. Prior to the existence of this file (if specified), the system will only run the
// `init` task (and any tasks `init` spawns). The `init` task is expected to create a file
// at this path.
startup_file_path: {
type: "string",
max_size: 1024,
},
},
}