add validator to restrict the flexibility of LConfig
[lunaix-os.git] / lunaix-os / arch / x86 / LConfig
index 7580a36f1cea1c584c8764d5fcd8bc52ed8f385d..0e4d46382e8cc85af95df950e9869303159cbf04 100644 (file)
@@ -1,34 +1,35 @@
 
-@Group
+@(parent := architecture_support)
 def x86_configurations():
-    
-    add_to_collection(architecture_support)
 
-    @Term
-    def x86_enable_sse_feature():
+    require(arch_x86)
+
+    @flag
+    def x86_bl_mb() -> bool:
+        when (x86_bl is "mb")
+    
+    @flag
+    def x86_bl_mb2() -> bool:
+        when (x86_bl is "mb2")
+    
+    @"Use SSE2/3/4 extension"
+    def x86_enable_sse_feature() -> bool:
         """ 
             Config whether to allow using SSE feature for certain
             optimization
         """
-        
-        type(bool)
-        default(False)
 
+        return False
 
-    @Term
-    def x86_bl():
+    @"Bootloader Model"
+    def x86_bl() -> "mb" | "mb2":
         """
             Select the bootloader interface
             
             Supported interface
-                mb:      multiboot compliant
-                mb2:     multiboot2 compliant
+                mb:      multiboot compliance
+                mb2:     multiboot2 compliance
                 none:    do not use any interface
         """
 
-        type(["mb"])
-        # type(["mb", "mb2", "none"])
-        default("mb")
-
-
-    return v(arch) in ["i386", "x86_64"]
\ No newline at end of file
+        return "mb"
\ No newline at end of file