Support to multi-threading and pthread interface (POSIX.1-2008) (#23)
[lunaix-os.git] / lunaix-os / scripts / templates / i386 / config.json
index 97089c814714129578f6115a9515dbc5ba5a45e6..911bb0e8a523a3c9917a145a3f2ecaa2d25c94f1 100644 (file)
 {
     "exception": {
-        "$type": "list",
-        "$range": "[0..255]",
+        "@define": {
+            "syscall_iv": 33,
+            "iv_counts": 255
+        },
+        "ivdefs": {
+            "$type": "list",
+            "$range": "[0..*iv_counts]",
 
-        "@foreach": {
-            "@case_range_index": {
-                "$range": "[8,10..14,17]",
-
-                "@true": {
-                    "has_errcode": true
+            "iv": "{index}",
+    
+            "@foreach": {
+                "errcode": {
+                    "$type": "case_range_index",
+                    "$range": "[8,10..14,17]",
+    
+                    "@true": {
+                        "has_errcode": true
+                    },
+                    "@else": {
+                        "has_errcode": false
+                    }
                 },
-                "@else": {
-                    "has_errcode": false
+                "dpl": {
+                    "$type": "case_range_index",
+                    "$range": "[*syscall_iv]",
+    
+                    "@true": {
+                        "dpl": 3
+                    },
+                    "@else": {
+                        "dpl": 0
+                    }
                 }
             }
         }
+    },
+    "sys_mmap": {
+        "$type": "memory_map",
+        "@define": {
+            "page_mnts": 4,
+            "vms_mnts": 1
+        },
+
+        "width": 32,
+        "granule": {
+            "page": "0x1000",
+            "1M": "0x100000",
+            "4M": "0x400000",
+            "huge": "0x400000",
+            "1G": "0x40000000"
+        },
+        "regions": [
+            {
+                "name": "kstack_area",
+                "start": "1@1M",
+                "size": "3@1M",
+                "stk_align": 16
+            },
+            {
+                "name": "usr_exec",
+                "start": "4@1M",
+                "size": "512@1M"
+            },
+            {
+                "name": "usr_mmap"
+            },
+            {
+                "name": "usr_stack",
+                "size": "64@page",
+                "stk_align": 16
+            },
+            {
+                "name": "kernel_exec",
+                "start": "3@1G",
+                "size": "16@4M",
+                "block": "1@page"
+            },
+            {
+                "$type": "list",
+                "$range": "[1..*vms_mnts]",
+                "name": "vms_mount_{index}",
+                "size": "1@4M",
+                "block": "1@huge"
+            },
+            {
+                "$type": "list",
+                "$range": "[1..*page_mnts]",
+                "size": "1@page",
+                "name": "pg_mount_{index}"
+            },
+            {
+                "name": "vmap",
+                "block": "1@huge"
+            },
+            {
+                "name": "pd_ref",
+                "start": "1023@4M",
+                "size": "1@4M",
+                "block": "1@huge"
+            }
+        ]
     }
 }
\ No newline at end of file