Made lib/numa compile on x86_32
authorDavid Cock <david.cock@inf.ethz.ch>
Thu, 27 Aug 2015 18:27:22 +0000 (20:27 +0200)
committerDavid Cock <david.cock@inf.ethz.ch>
Thu, 27 Aug 2015 18:31:27 +0000 (20:31 +0200)
My fixes will need to be looked at by someone familiar with the code.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>

lib/numa/alloc.c
lib/numa/utilities.c

index 3ee12ef..3cc0759 100644 (file)
@@ -30,7 +30,8 @@ struct bitmap *numa_alloc_bind_mask;
 
 static void validate_page_size(size_t *pagesize, vregion_flags_t *flags)
 {
-#if !defined(__x86_64__)
+// XXX - Something is seriously wrong here.
+#if 0 // !defined(__x86_64__)
     if (*pagesize < LARGE_PAGE_SIZE) {
         *pagesize = BASE_PAGE_SIZE;
         *flags = VREGION_FLAGS_READ_WRITE;
@@ -365,7 +366,8 @@ void *numa_alloc_interleaved_subset(size_t size, size_t pagesize,
         goto out_err;
     }
 
-    return (void *)vregion_get_base_addr(vreg);
+    // XXX - Is this right?
+    return (void *)(uintptr_t)vregion_get_base_addr(vreg);
 
     out_err:
     for (int i = 0; i < node_idx; ++i) {
index 2660a0b..ecf912e 100644 (file)
@@ -46,7 +46,7 @@ void numa_dump_topology(struct numa_topology *topology)
         struct numa_node *node = &topology->nodes[nodeid];
         printf(" # Node %" PRIuNODEID ":  [0x%016" PRIxLPADDR ", 0x%016" PRIxLPADDR
                "] of %" PRIu64 " MB\n", nodeid, node->mem_base, node->mem_limit,
-               (node->mem_limit - node->mem_base) >> 20);
+               (uint64_t)(node->mem_limit - node->mem_base) >> 20);
         for (coreid_t coreid = 0; coreid < node->num_cores; ++coreid) {
             struct numa_core *core = &node->cores[coreid];
             printf("  + Core %-3" PRIuCOREID ": [apic=%-3" PRIu16 ", node=%-3"