import time
+from datetime import datetime, date
-include("kernel/LConfig")
-include("arch/LConfig")
+include("kernel")
+include("arch")
+include("hal")
-@Term("Version")
+@Term("Kernel Version")
@ReadOnly
def lunaix_ver():
"""
type(str)
- seq_num = int(time.time() / 3600)
- default("dev-2024_%d"%(seq_num))
+ today = date.today()
+ year = today.year
+ start_of_year = datetime(year, 1, 1).date()
+ seq_num = (today - start_of_year).days
+
+ default("%s v0.%d%d"%(v(arch), year - 2000, seq_num))
-@Collection
+@Collection("Kernel Debug and Testing")
def debug_and_testing():
"""
General settings for kernel debugging feature
extermly unstable
"""
type(bool)
- default(False)
\ No newline at end of file
+ default(False)
+
+ @Term("Report on stalled thread")
+ def check_stall():
+ """
+ Check and report on any thread that spend too much time in kernel.
+ """
+
+ type(bool)
+ default(True)
+
+ @Term("Max kernel time allowance")
+ def stall_timeout():
+ """
+ Set the maximum time (in seconds) spent in kernel before considered
+ to be stalled.
+ """
+
+ type(int)
+ default(10)
+
+ return v(check_stall)
+
+ @Term("Max number of preemptions")
+ def stall_max_preempts():
+ """
+ Set the maximum number of preemptions that a task can take
+ before it is considered to be stucked in some loops.
+
+ Setting it to 0 disable this check
+ """
+
+ type(int)
+ default(0)
+
+ return v(check_stall)
\ No newline at end of file