#include #include #include #include #include #include #include #include /* One vm_pg_data_t per NUMA node. */ static vm_pg_data_t *node_data = NULL; kern_status_t vm_bootstrap(const vm_zone_descriptor_t *zones, size_t nr_zones) { int numa_count = 1; /* we're only worrying about UMA systems for now */ node_data = memblock_alloc(sizeof(vm_pg_data_t) * numa_count); vm_page_init_array(); for (size_t i = 0; i < nr_zones; i++) { vm_zone_init(&node_data->pg_zones[zones[i].zd_id], zones[i].zd_name, zones[i].zd_base, zones[i].zd_limit); } return KERN_OK; }