from datetime import datetime, date from . import kernel, arch, hal @"Kernel Version" @readonly def lunaix_ver() -> str: """ Lunaix kernel version """ today = date.today() year = today.year start_of_year = datetime(year, 1, 1).date() seq_num = (today - start_of_year).days return "%s v0.%d%d"%(arch.val, year - 2000, seq_num) @"Kernel Debug and Testing" def debug_and_testing(): """ General settings for kernel debugging feature """ @"Supress assertion" def no_assert() -> bool: """ Supress all assertion fail activity. Note: Enable this is highly NOT recommended and would result system extermly unstable """ return False @"Report on stalled thread" def check_stall() -> bool: """ Check and report on any thread that spend too much time in kernel. """ return True @"Max kernel time allowance" def stall_timeout() -> int: """ Set the maximum time (in seconds) spent in kernel before considered to be stalled. """ require(check_stall) return 10 @"Max number of preemptions" def stall_max_preempts() -> int: """ 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 """ require(check_stall) return 0