blob: 00fb69de992c94d9d7c71cd7746301d9de835761 [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT
// This file defines:
// * Initialization code for kernel/object module
// * Singleton instances
#include <inttypes.h>
#include <lib/cmdline.h>
#include <lib/crashlog.h>
#include <zircon/boot/crash-reason.h>
#include <zircon/syscalls/object.h>
#include <zircon/types.h>
#include <lk/init.h>
#include <object/diagnostics.h>
#include <object/event_dispatcher.h>
#include <object/executor.h>
#include <object/job_dispatcher.h>
#include <object/memory_watchdog.h>
#include <object/port_dispatcher.h>
#include <platform/crashlog.h>
#include <platform/halt_helper.h>
static Executor gExecutor;
fbl::RefPtr<JobDispatcher> GetRootJobDispatcher() { return gExecutor.GetRootJobDispatcher(); }
Handle* GetRootJobHandle() { return gExecutor.GetRootJobHandle(); }
fbl::RefPtr<EventDispatcher> GetMemPressureEvent(uint32_t kind) {
return gExecutor.GetMemPressureEvent(kind);
}
void StartRootJobObserver() { gExecutor.StartRootJobObserver(); }
static void object_init(uint level) TA_NO_THREAD_SAFETY_ANALYSIS {
Handle::Init();
PortDispatcher::Init();
gExecutor.Init();
}
LK_INIT_HOOK(libobject, object_init, LK_INIT_LEVEL_THREADING)