Merge branch 'master' into master-into-distops
authorSimon Gerber <simon.gerber@inf.ethz.ch>
Thu, 19 Dec 2013 12:47:13 +0000 (13:47 +0100)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Thu, 19 Dec 2013 12:47:13 +0000 (13:47 +0100)
21 files changed:
1  2 
errors/errno.fugu
hake/Config.hs.template
if/monitor_blocking.if
include/arch/x86_64/barrelfish/invocations_arch.h
include/barrelfish/caddr.h
include/barrelfish/core_state.h
include/barrelfish/waitset.h
include/barrelfish_kpi/capabilities.h
include/barrelfish_kpi/syscalls.h
kernel/Hakefile
kernel/arch/armv5/syscall.c
kernel/arch/x86_32/syscall.c
kernel/arch/x86_64/syscall.c
kernel/dispatch.c
kernel/syscall.c
lib/barrelfish/capabilities.c
lib/barrelfish/debug.c
lib/barrelfish/init.c
lib/mdb/mdb_tree.c
usr/monitor/Hakefile
usr/monitor/monitor_rpc_server.c

index 5e79ead,06e7ac9..cc09622
mode 100644,100755..100755
@@@ -282,7 -267,7 +296,8 @@@ defines = [ Str ("-D" ++ d) | d <- 
               if libc == "oldc" then "CONFIG_OLDC" else "CONFIG_NEWLIB",
               if oneshot_timer then "CONFIG_ONESHOT_TIMER" else "",
               if use_kaluga_dvm then "USE_KALUGA_DVM" else "",
 -             if heteropanda then "HETEROPANDA" else ""
++             if heteropanda then "HETEROPANDA" else "",
 +             if caps_trace then "TRACE_PMEM_CAPS" else ""
               ], d /= "" ]
  
  -- Sets the include path for the libc
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/Hakefile
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -81,26 -79,12 +82,25 @@@ errval_t debug_cap_identify(struct capr
      return msgerr;
  }
  
+ /**
++ * \brief Enable fine-grained tracing of cap operations on address range
++ * [start_addr, start_addr+size)
++ */
 +errval_t debug_cap_trace_ctrl(bool enable, genpaddr_t start_addr, gensize_t size)
 +{
 +    if (enable) {
 +        printf("enabling pmem tracing: 0x%"PRIxGENPADDR"--0x%"PRIxGENPADDR"\n",
 +                start_addr, start_addr+size);
 +    }
 +    return sys_debug_cap_trace_ctrl(enable, start_addr, size);
 +}
 +
++/**
+  * \brief Dump own hw page tables
+  */
  errval_t debug_dump_hw_ptables(void)
  {
-     errval_t err;
-     struct monitor_blocking_rpc_client *r = get_monitor_blocking_rpc_client();
-     err = r->vtbl.dump_hw_ptables(r, cap_dispatcher);
-     if (err_is_fail(err)){
-         return err;
-     }
-     return err;
+     return invoke_dispatcher_dump_ptables(cap_dispatcher);
  }
  
  void debug_printf(const char *fmt, ...)
@@@ -43,13 -44,17 +44,19 @@@ void libc_exit(int)
  
  void libc_exit(int status)
  {
+     errval_t err;
+     if (!init_domain) {
+         terminal_exit();
+     }
      // Use spawnd if spawned through spawnd
      if(disp_get_domain_id() == 0) {
 +#if 0 // XXX: revocation goes through the mon, but monitor ep is revoked in the process
          errval_t err = cap_revoke(cap_dispatcher);
          if (err_is_fail(err)) {
 -          sys_print("revoking dispatcher failed in _Exit, spinning!", 100);
 +            DEBUG_ERR(err, "revoking dispatcher failed in _Exit, spinning!");
 +          //sys_print("revoking dispatcher failed in _Exit, spinning!", 100);
            while (1) {}
          }
          err = cap_delete(cap_dispatcher);
Simple merge
Simple merge
Simple merge