# SPDX-License-Identifier: GPL-2.0-only
#
config RV_MON_EVENTS
	bool

config RV_MON_MAINTENANCE_EVENTS
	bool

config DA_MON_EVENTS_IMPLICIT
	select RV_MON_EVENTS
	select RV_MON_MAINTENANCE_EVENTS
	bool

config DA_MON_EVENTS_ID
	select RV_MON_EVENTS
	select RV_MON_MAINTENANCE_EVENTS
	bool

config LTL_MON_EVENTS_ID
	select RV_MON_EVENTS
	bool

config RV_LTL_MONITOR
	bool

config RV_HA_MONITOR
	bool

config HA_MON_EVENTS_IMPLICIT
	select DA_MON_EVENTS_IMPLICIT
	select RV_HA_MONITOR
	bool

config HA_MON_EVENTS_ID
	select DA_MON_EVENTS_ID
	select RV_HA_MONITOR
	bool

menuconfig RV
	bool "Runtime Verification"
	select TRACING
	help
	  Enable the kernel runtime verification infrastructure. RV is a
	  lightweight (yet rigorous) method that complements classical
	  exhaustive verification techniques (such as model checking and
	  theorem proving). RV works by analyzing the trace of the system's
	  actual execution, comparing it against a formal specification of
	  the system behavior.

	  For further information, see:
	    Documentation/trace/rv/runtime-verification.rst

config RV_PER_TASK_MONITORS
	int "Maximum number of per-task monitor"
	depends on RV
	range 1 8
	default 2
	help
	  This option configures the maximum number of per-task RV monitors that can run
	  simultaneously.

source "kernel/trace/rv/monitors/wip/Kconfig"
source "kernel/trace/rv/monitors/wwnr/Kconfig"

source "kernel/trace/rv/monitors/sched/Kconfig"
source "kernel/trace/rv/monitors/sco/Kconfig"
source "kernel/trace/rv/monitors/snroc/Kconfig"
source "kernel/trace/rv/monitors/scpd/Kconfig"
source "kernel/trace/rv/monitors/snep/Kconfig"
source "kernel/trace/rv/monitors/sts/Kconfig"
source "kernel/trace/rv/monitors/nrp/Kconfig"
source "kernel/trace/rv/monitors/sssw/Kconfig"
source "kernel/trace/rv/monitors/opid/Kconfig"
# Add new sched monitors here

source "kernel/trace/rv/monitors/rtapp/Kconfig"
source "kernel/trace/rv/monitors/pagefault/Kconfig"
source "kernel/trace/rv/monitors/sleep/Kconfig"
# Add new rtapp monitors here

source "kernel/trace/rv/monitors/stall/Kconfig"
source "kernel/trace/rv/monitors/deadline/Kconfig"
source "kernel/trace/rv/monitors/nomiss/Kconfig"
# Add new deadline monitors here

# Add new monitors here

config RV_REACTORS
	bool "Runtime verification reactors"
	default y
	depends on RV
	help
	  Enables the online runtime verification reactors. A runtime
	  monitor can cause a reaction to the detection of an exception
	  on the model's execution. By default, the monitors have
	  tracing reactions, printing the monitor output via tracepoints,
	  but other reactions can be added (on-demand) via this interface.

config RV_REACT_PRINTK
	bool "Printk reactor"
	depends on RV_REACTORS
	default y
	help
	  Enables the printk reactor. The printk reactor emits a printk()
	  message if an exception is found.

config RV_REACT_PANIC
	bool "Panic reactor"
	depends on RV_REACTORS
	default y
	help
	  Enables the panic reactor. The panic reactor emits a printk()
	  message if an exception is found and panic()s the system.
