from datetime import datetime, date from . import kernel, arch, hal @native def get_patch_seq(): today = date.today() year = today.year start_of_year = datetime(year, 1, 1).date() seq_num = (today - start_of_year).days return "%d%d"%(year - 2000, seq_num) @"Kernel Version" @readonly def lunaix_ver() -> str: """ Lunaix kernel version """ return f"{arch.val} v0.0.{get_patch_seq()}" @"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