A Total Overhaul on the Lunaix's Virtual Memory Model (#26)
[lunaix-os.git] / lunaix-os / scripts / templates / i386 / config.json
index 7a0a702b44f5356ed142e22836d79a537c13c386..4b2a186a64cedae331dfc1602e2d320f4c2a36d0 100644 (file)
     },
     "sys_mmap": {
         "$type": "memory_map",
     },
     "sys_mmap": {
         "$type": "memory_map",
+        "@define": {
+            "page_mnts": 4,
+            "vms_mnts": 1
+        },
+
         "width": 32,
         "granule": {
             "page": "0x1000",
         "width": 32,
         "granule": {
             "page": "0x1000",
         },
         "regions": [
             {
         },
         "regions": [
             {
-                "name": "kernel_stack",
-                "start": "3@1M",
-                "size": "1@1M",
+                "name": "kstack_area",
+                "start": "1@1M",
+                "size": "3@1M",
                 "stk_align": 16
             },
             {
                 "stk_align": 16
             },
             {
-                "name": "kernel_exec",
-                "start": "3@1G",
-                "size": "16@4M"
+                "name": "usr_exec",
+                "start": "4@1M",
+                "size": "512@1M"
             },
             {
             },
             {
-                "name": "pd_mount",
-                "size": "1@4M"
+                "name": "usr_mmap"
+            },
+            {
+                "name": "usr_stack",
+                "size": "64@page",
+                "stk_align": 16
+            },
+            {
+                "name": "kernel_img",
+                "start": "3@1G",
+                "size": "16@4M",
+                "block": "1@page"
             },
             {
                 "$type": "list",
             },
             {
                 "$type": "list",
-                "$range": "[1..4]",
+                "$range": "[1..*page_mnts]",
                 "size": "1@page",
                 "name": "pg_mount_{index}"
             },
                 "size": "1@page",
                 "name": "pg_mount_{index}"
             },
                 "name": "vmap",
                 "block": "1@huge"
             },
                 "name": "vmap",
                 "block": "1@huge"
             },
+            {
+                "$type": "list",
+                "$range": "[1..*vms_mnts]",
+                "name": "vms_mount_{index}",
+                "size": "1@4M",
+                "block": "1@huge"
+            },
             {
                 "name": "pd_ref",
                 "start": "1023@4M",
             {
                 "name": "pd_ref",
                 "start": "1023@4M",
-                "size": "1@4M"
+                "size": "1@4M",
+                "block": "1@huge"
             }
         ]
     }
             }
         ]
     }