fix page mounting contention (close #57)
[lunaix-os.git] / lunaix-os / LConfig
1 import time
2 from datetime import datetime, date
3
4 include("kernel")
5 include("arch")
6 include("hal")
7
8 @Term("Kernel Version")
9 @ReadOnly
10 def lunaix_ver():
11     """
12     Lunaix kernel version
13     """
14
15     type(str)
16     
17     today = date.today()
18     year = today.year
19     start_of_year = datetime(year, 1, 1).date()
20     seq_num = (today - start_of_year).days
21     
22     default("%s v0.%d%d"%(v(arch), year - 2000, seq_num))
23
24 @Collection("Kernel Debug and Testing")
25 def debug_and_testing():
26     """
27     General settings for kernel debugging feature
28     """
29
30     @Term("Supress assertion")
31     def no_assert():
32         """
33         Supress all assertion fail activity.
34         Note: Enable this is highly NOT recommended and would result system
35               extermly unstable
36         """
37         type(bool)
38         default(False)
39
40     @Term("Report on stalled thread")
41     def check_stall():
42         """
43         Check and report on any thread that spend too much time in kernel.
44         """
45
46         type(bool)
47         default(True)
48         
49     @Term("Max kernel time allowance")
50     def stall_timeout():
51         """
52         Set the maximum time (in seconds) spent in kernel before considered
53         to be stalled.
54         """
55
56         type(int)
57         default(10)
58
59         return v(check_stall)
60     
61     @Term("Max number of preemptions")
62     def stall_max_preempts():
63         """
64         Set the maximum number of preemptions that a task can take
65         before it is considered to be stucked in some loops.
66
67         Setting it to 0 disable this check
68         """
69
70         type(int)
71         default(0)
72
73         return v(check_stall)