Make kcb 2**13 in size.
authorGerd Zellweger <mail@gerdzellweger.com>
Wed, 18 Dec 2013 08:38:05 +0000 (09:38 +0100)
committerGerd Zellweger <mail@gerdzellweger.com>
Tue, 14 Oct 2014 06:47:40 +0000 (08:47 +0200)
The IDT table alone is already 2**12 in size and we can only allocate in powers
of two.

capabilities/caps.hl
include/barrelfish_kpi/capabilities.h
usr/drivers/cpuboot/x86boot.c

index 1ce9c13..01f51bf 100644 (file)
@@ -27,7 +27,7 @@ define dispatcher_size 10;
 /* Size of (x86_64) VNode: */
 define vnode_size 12; /* BASE_PAGE_BITS */
 /* size of a kernel control block */
-define kcb_size 12;
+define kcb_size 13;
 
 /**
     The capabilities of the whole system are listed thereafter.
index 020b5d9..0b8cbce 100644 (file)
@@ -24,7 +24,7 @@
 #define OBJBITS_DISPATCHER     10
 
 // Size of kernel control block
-#define OBJBITS_KCB            12
+#define OBJBITS_KCB            13
 
 #ifndef __ASSEMBLER__
 
index c0fc1d1..9fd3c04 100644 (file)
@@ -30,6 +30,7 @@
 #include <acpi_client/acpi_client.h>
 #include <vfs/vfs.h>
 
+#include <barrelfish_kpi/capabilities.h>
 #include <barrelfish/invocations_arch.h>
 #include <octopus/octopus.h>
 #include <octopus/capability_storage.h>
@@ -727,7 +728,7 @@ static errval_t create_or_get_kcb_cap(coreid_t coreid)
     printf("%s:%s:%d: Create a new kcb\n",
            __FILE__, __FUNCTION__, __LINE__);
 
-    err = ram_alloc(&kcb_mem, X86_64_BASE_PAGE_BITS);
+    err = ram_alloc(&kcb_mem, OBJBITS_KCB);
     if (err_is_fail(err)) {
         DEBUG_ERR(err, "frame alloc");
         return err;
@@ -741,7 +742,7 @@ static errval_t create_or_get_kcb_cap(coreid_t coreid)
 
     err = cap_retype(kcb, kcb_mem,
                      ObjType_KernelControlBlock,
-                     X86_64_BASE_PAGE_BITS);
+                     OBJBITS_KCB);
     if (err_is_fail(err)) {
         DEBUG_ERR(err, "Failure in cap_retype.");
     }