T119: kernel, spawn, libbarrelfish, fish: Remove DEBUG_PRINT_CAPABILITIES syscall...
authorMoritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Mon, 15 Jun 2015 15:06:29 +0000 (17:06 +0200)
committerMoritz Hoffmann <moritz.hoffmann@inf.ethz.ch>
Tue, 16 Jun 2015 11:37:41 +0000 (13:37 +0200)
Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

include/barrelfish/syscalls.h
include/barrelfish_kpi/sys_debug.h
kernel/arch/x86_32/syscall.c
kernel/arch/x86_64/syscall.c
kernel/include/capabilities.h
kernel/sys_debug.c
lib/barrelfish/sys_debug.c
usr/fish/fish_common.c

index 9ab5205..ad0e47e 100644 (file)
@@ -60,11 +60,6 @@ errval_t sys_print(const char *string, size_t length);
  */
 uint64_t sys_get_absolute_time(void);
 
-/**
- * \brief Print capability information.
- */
-errval_t
-sys_debug_print_capabilities(void);
 __END_DECLS
 
 #endif //LIBBARRELFISH_SYSCALL_H
index 2498234..cd1caa1 100644 (file)
@@ -33,8 +33,7 @@ enum debug_message {
     DEBUG_GET_APIC_TICKS_PER_SEC,
     DEBUG_FEIGN_FRAME_CAP,
     DEBUG_TRACE_PMEM_CTRL,
-    DEBUG_GET_APIC_ID,
-    DEBUG_PRINT_CAPABILITIES
+    DEBUG_GET_APIC_ID
 };
 
 #endif //BARRELFISH_KPI_SYS_DEBUG_H
index 1f534b6..aac69cc 100644 (file)
@@ -1169,11 +1169,6 @@ struct sysret sys_syscall(uintptr_t arg0, uintptr_t arg1, uintptr_t *args,
             }
             break;
 
-        case DEBUG_PRINT_CAPABILITIES: {
-            retval = sys_debug_print_capabilities();
-            break;
-        }
-
         default:
             printk(LOG_ERR, "invalid sys_debug msg type\n");
         }
index 50217ca..75bd149 100644 (file)
@@ -1271,11 +1271,6 @@ struct sysret sys_syscall(uint64_t syscall, uint64_t arg0, uint64_t arg1,
             retval.value = apic_get_id();
             break;
 
-        case DEBUG_PRINT_CAPABILITIES: {
-            retval = sys_debug_print_capabilities();
-            break;
-        }
-
         default:
             printk(LOG_ERR, "invalid sys_debug msg type\n");
         }
index 8d6dab4..6eff5e4 100644 (file)
@@ -120,16 +120,6 @@ errval_t caps_delete(struct cte *cte);
 errval_t caps_revoke(struct cte *cte);
 
 /*
- * Cap debugging
- */
-struct cap_visited_list {
-    struct cap_visited_list *parent;
-    struct cte *c;
-};
-
-errval_t caps_debug_print(struct cte *cte, struct cap_visited_list *);
-
-/*
  * Cap tracing
  */
 
index 91dbf09..7aaadfc 100644 (file)
 #include <trace_definitions/trace_defs.h>
 #include <kcb.h>
 
-
-
-// If you create more capability types you need to deal with them
-// in the table below.
-STATIC_ASSERT(27 == ObjType_Num, "Knowledge of all cap types");
-
-
-errval_t
-caps_debug_print(struct cte *c, struct cap_visited_list *parent)
-{
-    genpaddr_t base;
-    uint8_t bits;
-    char* name = NULL;
-
-//    struct cap_visited_list this = { .parent = parent, .c = c };
-
-    switch (c->cap.type) {
-    // all cap types
-    case ObjType_CNode: {
-//        struct CNode *cn = &(c->cap.u.cnode);
-//        for (cslot_t slot = 0; slot < 1UL << cn->bits; slot++) {
-//
-//            struct cte *child = (struct cte *) local_phys_to_mem(
-//                    cn->cnode + slot * sizeof(*c));
-//
-//            uint8_t recurse = 1;
-//
-//            struct cap_visited_list *p = parent;
-//            int depth = 0;
-//            while (p && recurse) {
-//                recurse = p->c != child;
-//                p = p->parent;
-//                depth++;
-//            }
-//            if (recurse && depth < 4) {
-//                errval_t err = caps_debug_print(child, &this);
-//                if (err_is_fail(err)) {
-//                    return err;
-//                }
-//            }
-//        }
-        break;
-    }
-    case ObjType_PhysAddr: {
-        base = c->cap.u.physaddr.base;
-        bits = c->cap.u.physaddr.bits;
-        name = "PhysAddr";
-        break;
-    }
-    case ObjType_RAM: {
-        base = c->cap.u.ram.base;
-        bits = c->cap.u.ram.bits;
-        name = "RAM";
-        break;
-    }
-    case ObjType_Frame: {
-        base = c->cap.u.frame.base;
-        bits = c->cap.u.frame.bits;
-        name = "Frame";
-        break;
-    }
-    case ObjType_DevFrame: {
-        base = c->cap.u.devframe.base;
-        bits = c->cap.u.devframe.bits;
-        name = "DevFrame";
-        break;
-    }
-    case ObjType_Null: {
-        break;
-    }
-    default: {
-        // Unhandled source type for mint
-        printk(LOG_NOTE, "Unknown capability type: %d\n", c->cap.type);
-        break;
-    }
-    }
-
-    if (name) {
-        printk(LOG_NOTE,
-                "%s: base=0x%"PRIxGENPADDR" bits=%d end=0x%"PRIxGENPADDR"\n",
-                name, base, bits, base + (1UL << bits));
-    }
-
-    return SYS_ERR_OK;
-}
-
-
-static bool sys_debug_print_capabilities_check_cnode(struct cte *cte, struct cte **dispatcher) {
+static bool
+sys_debug_print_capabilities_check_cnode(struct cte *cte, struct cte **dispatcher) {
     enum objtype type = cte->cap.type;
 
     if (type == ObjType_Dispatcher) {
@@ -202,8 +116,9 @@ sys_debug_print_capabilities_cb(struct cte *cte, void *data) {
         get_dispatcher_shared_generic(handle);
 
     if (my_dcb == dcb) {
-//        printk(LOG_NOTE, "disp->name=%s\n", disp->name);
-        caps_debug_print(cte, NULL);
+        char buffer[256];
+        sprint_cap(buffer, 256, &cte->cap);
+        printk(LOG_NOTE, "disp->name=%s %s\n", disp->name, buffer);
     }
 
     return SYS_ERR_OK;
@@ -213,11 +128,3 @@ errval_t
 debug_print_cababilities(struct dcb *dispatcher) {
     return mdb_traverse(MDB_TRAVERSAL_ORDER_ASCENDING, sys_debug_print_capabilities_cb, dispatcher);
 }
-
-struct sysret
-sys_debug_print_capabilities(void) {
-
-    errval_t err = debug_print_cababilities(dcb_current);
-
-    return SYSRET(err);
-}
index c886209..6cd018a 100644 (file)
@@ -92,7 +92,3 @@ errval_t sys_debug_cap_trace_ctrl(bool enable, genpaddr_t start, gensize_t size)
                     DEBUG_TRACE_PMEM_CTRL, enable, start, size).error;
 }
 
-errval_t
-sys_debug_print_capabilities(void) {
-    return syscall2(SYSCALL_DEBUG, DEBUG_PRINT_CAPABILITIES).error;
-}
index a83fa82..3b1b816 100644 (file)
@@ -130,7 +130,9 @@ static int dump_caps(int argc, char *argv[]) {
         domainid_t domain = strtol(argv[1], NULL, 10);
         err = spawn_dump_capabilities(domain);
     } else {
-        err = sys_debug_print_capabilities();
+        dispatcher_handle_t handle = curdispatcher();
+        struct capref dcb = get_dispatcher_generic(handle)->dcb_cap;
+        err = invoke_dispatcher_dump_capabilities(dcb);
     }
     if (err_is_fail(err)) {
         printf("%s: error dumping capabilities: %s\n", argv[0], err_getstring(err));