/* * SPDX-License-Identifier: GPL-2.0 * * Copyright (C) 2020 Philippe Gerum */ #ifndef _COBALT_KERNEL_DOVETAIL_MACHINE_H #define _COBALT_KERNEL_DOVETAIL_MACHINE_H #include #ifdef CONFIG_FTRACE #define boot_lat_trace_notice "[LTRACE]" #else #define boot_lat_trace_notice "" #endif struct vm_area_struct; struct cobalt_machine { const char *name; int (*init)(void); int (*late_init)(void); void (*cleanup)(void); void (*prefault)(struct vm_area_struct *vma); const char *const *fault_labels; }; extern struct cobalt_machine cobalt_machine; struct cobalt_machine_cpudata { unsigned int faults[32]; }; DECLARE_PER_CPU(struct cobalt_machine_cpudata, cobalt_machine_cpudata); struct cobalt_pipeline { #ifdef CONFIG_SMP cpumask_t supported_cpus; #endif }; int pipeline_init(void); int pipeline_late_init(void); void pipeline_cleanup(void); extern struct cobalt_pipeline cobalt_pipeline; #endif /* !_COBALT_KERNEL_IPIPE_MACHINE_H */