void refos_setup_dataspace_stdio(char *dspacePath) { #if defined(SEL4_DEBUG_KERNEL) && defined(CONFIG_REFOS_SYS_FORCE_DEBUGPUTCHAR) return; #else /* Find the path and connect to it. */ refosIOState.stdioSession = serv_connect_no_pbuffer(dspacePath); if (!refosIOState.stdioSession.error == ESUCCESS || !refosIOState.stdioSession.serverSession) { seL4_DebugPrintf("Failed to connect to [%s]. Error: %d %s.\n", dspacePath, refosIOState.stdioSession.error, refos_error_str(refosIOState.stdioSession.error)); #if defined(SEL4_DEBUG_KERNEL) seL4_DebugHalt(); #endif while (1); } /* Open the dataspace at the Resolved mount point. */ int error; refosIOState.stdioDataspace = data_open(refosIOState.stdioSession.serverSession, refosIOState.stdioSession.serverMountPoint.dspaceName, 0, 0, 0, &error); if (error || !refosIOState.stdioDataspace) { seL4_DebugPrintf("Failed to open dataspace [%s].\n", refosIOState.stdioSession.serverMountPoint.dspaceName); #if defined(SEL4_DEBUG_KERNEL) seL4_DebugHalt(); #endif while (1); } #endif }
static void sel4_abort(void) { #if defined(CONFIG_DEBUG_BUILD) && defined(CONFIG_LIB_PLAYGROUND_SYS_DEBUG_HALT) printf("seL4 root server abort()ed\n"); seL4_DebugHalt(); #endif while (1); /* We don't return after this */ }
void sys_abort(void) { seL4_DebugPrintf("RefOS HALT.\n"); #if defined(SEL4_DEBUG_KERNEL) seL4_DebugHalt(); #endif while (1); /* We don't return after this */ }
void abort(void) { sos_debug_print(ABORT_MSG, 0, strlen(ABORT_MSG), 0); seL4_DebugHalt(); while (1) ; /* We don't return after this */ }
int main_continued(void) { vm_t vm; int err; /* setup for restart with a setjmp */ while (setjmp(restart_jmp_buf) != 0) { reset_resources(); } restart_tcb = camkes_get_tls()->tcb_cap; restart_event_reg_callback(restart_event, NULL); err = vmm_init(); assert(!err); print_cpio_info(); /* Create the VM */ err = vm_create(VM_NAME, VM_PRIO, _fault_endpoint, VM_BADGE, &_vka, &_simple, &_vspace, &_io_ops, &vm); if (err) { printf("Failed to create VM\n"); seL4_DebugHalt(); return -1; } /* HACK: See if we have a "RAM device" for 1-1 mappings */ map_unity_ram(&vm); /* Load system images */ printf("Loading Linux: \'%s\' dtb: \'%s\'\n", VM_LINUX_NAME, VM_LINUX_DTB_NAME); err = load_linux(&vm, VM_LINUX_NAME, VM_LINUX_DTB_NAME); if (err) { printf("Failed to load VM image\n"); seL4_DebugHalt(); return -1; } vm_vchan_setup(&vm); /* Power on */ printf("Starting VM\n\n"); err = vm_start(&vm); if (err) { printf("Failed to start VM\n"); seL4_DebugHalt(); return -1; } /* Loop forever, handling events */ while (1) { seL4_MessageInfo_t tag; seL4_Word sender_badge; tag = seL4_Wait(_fault_endpoint, &sender_badge); if (sender_badge == 0) { seL4_Word label; label = seL4_MessageInfo_get_label(tag); if (label == IRQ_MESSAGE_LABEL) { irq_server_handle_irq_ipc(_irq_server); } else { printf("Unknown label (%d) for IPC badge %d\n", label, sender_badge); } } else if (sender_badge == VUSB_NBADGE) { vusb_notify(); } else { assert(sender_badge == VM_BADGE); err = vm_event(&vm, tag); if (err) { /* Shutdown */ vm_stop(&vm); seL4_DebugHalt(); while (1); } } } return 0; }