package embox.kernel.cpu

@DefaultImpl(no_bkl)
abstract module bkl_api {
}

module no_bkl extends bkl_api {
	source "no_bkl_impl.h"
}

module bkl extends bkl_api {
	source "bkl.c"
}

module common {
	source "common.c"

	depends cpudata_api
	@NoRuntime depends embox.compat.posix.util.time
	@NoRuntime depends embox.kernel.sched.affinity.affinity
}

@DefaultImpl(no_cpudata)
abstract module cpudata_api {
}

module no_cpudata extends cpudata_api {
	source "no_cpudata_impl.h"
}

module cpudata extends cpudata_api {
	source "cpudata.c", "cpudata_impl.h", "cpudata.lds.S"
	depends embox.arch.cpu
	@NoRuntime depends embox.compat.libc.assert
	@NoRuntime depends embox.compat.libc.str
}

module stats {
	source "stats.c"

	depends common
	depends embox.compat.posix.util.time
}
