package embox.profiler

@DefaultImpl(no_tracing)
abstract module trace {
	@IncludeExport(path="profiler/tracing")
	source "trace.h"
}

module no_tracing extends trace {
	source "no_trace.c", "no_trace_impl.h"
}

module tracing extends trace {
	option number max_functions_quantity = 8192//65536
	option number max_recursion_depth = 8192

	source "trace.c", "trace_impl.h"
	source "__cyg_profile.c"
	depends embox.kernel.timer.itimer
	depends embox.kernel.time.clock_source
	@NoRuntime depends embox.lib.libds
	depends embox.lib.debug.symbol

	depends cyg_profile
}

module coverage {
	option number coverage_table_size = 50000
	source "coverage.c"

	depends embox.lib.debug.symbol
	depends cyg_profile
}

static module cyg_profile {
	source "__cyg_profile.c"
	source "cyg_profile.h"
}
