| // 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 <sys/types.h> |
| |
| #include <zircon/compiler.h> |
| #include <zircon/types.h> |
| |
| __BEGIN_CDECLS |
| |
| void coordinator(void); |
| |
| void devfs_init(zx_handle_t root_job); |
| |
| void devmgr_io_init(void); |
| void devmgr_vfs_init(void); |
| zx_status_t devmgr_set_platform_id(zx_handle_t vmo, zx_off_t offset, size_t length); |
| |
| zx_handle_t devmgr_load_file(const char* path); |
| |
| zx_status_t devmgr_launch(zx_handle_t job, const char* name, |
| int argc, const char* const* argv, |
| const char** envp, int stdiofd, |
| zx_handle_t* handles, uint32_t* types, size_t len, |
| zx_handle_t* proc_out); |
| void devmgr_launch_devhost(zx_handle_t job, |
| const char* name, int argc, char** argv, |
| zx_handle_t hdevice, zx_handle_t hrpc); |
| ssize_t devmgr_add_systemfs_vmo(zx_handle_t vmo); |
| bool secondary_bootfs_ready(void); |
| void fuchsia_start(void); |
| void fshost_start(void); |
| zx_status_t copy_vmo(zx_handle_t src, zx_off_t offset, size_t length, zx_handle_t* out_dest); |
| |
| void load_system_drivers(void); |
| |
| // The variable to set on the kernel command line to enable ld.so tracing |
| // of the processes we launch. |
| #define LDSO_TRACE_CMDLINE "ldso.trace" |
| // The env var to set to enable ld.so tracing. |
| #define LDSO_TRACE_ENV "LD_TRACE=1" |
| |
| zx_handle_t fs_root_clone(void); |
| zx_handle_t devfs_root_clone(void); |
| zx_handle_t svc_root_clone(void); |
| |
| void block_device_watcher(zx_handle_t job, bool netboot); |
| |
| // getenv_bool looks in the environment for name. If not found, it returns |
| // default. If found, it returns false if the found value matches "0", "off", or |
| // "false", otherwise it returns true. |
| bool getenv_bool(const char* key, bool _default); |
| |
| // Global flag tracking if devmgr believes this is a full Fuchsia build |
| // (requiring /system, etc) or not. |
| extern bool require_system; |
| |
| __END_CDECLS |