/seL4-test-master/kernel/src/model/ |
H A D | smp.c | 9 #include <object/tcb.h> 13 void migrateTCB(tcb_t *tcb, word_t new_core) argument 16 tcbDebugRemove(tcb); 18 Arch_migrateTCB(tcb); 19 tcb->tcbAffinity = new_core; 21 tcbDebugAppend(tcb);
|
/seL4-test-master/kernel/include/arch/riscv/arch/kernel/ |
H A D | thread.h | 12 void Arch_switchToThread(tcb_t *tcb); 14 void Arch_configureIdleThread(tcb_t *tcb); 15 void Arch_activateIdleThread(tcb_t *tcb);
|
/seL4-test-master/kernel/include/arch/arm/arch/kernel/ |
H A D | thread.h | 12 void Arch_switchToThread(tcb_t *tcb); 14 void Arch_configureIdleThread(tcb_t *tcb); 15 void Arch_activateIdleThread(tcb_t *tcb);
|
/seL4-test-master/kernel/include/object/ |
H A D | reply.h | 13 /* Unlink a reply from its tcb */ 14 static inline void reply_unlink(reply_t *reply, tcb_t *tcb) argument 16 /* check the tcb and reply are linked correctly */ 17 assert(reply->replyTCB == tcb); 18 assert(thread_state_get_replyObject(tcb->tcbState) == REPLY_REF(reply)); 20 thread_state_ptr_set_replyObject(&tcb->tcbState, REPLY_REF(0)); 22 setThreadState(tcb, ThreadState_Inactive); 28 void reply_pop(reply_t *reply, tcb_t *tcb); 30 void reply_remove(reply_t *reply, tcb_t *tcb); 31 /* Remove a specific tcb, an [all...] |
H A D | notification.h | 16 void completeSignal(notification_t *ntfnPtr, tcb_t *tcb); 18 void unbindNotification(tcb_t *tcb); 19 void bindNotification(tcb_t *tcb, notification_t *ntfnPtr); 23 static inline void maybeReturnSchedContext(notification_t *ntfnPtr, tcb_t *tcb) argument 27 if (sc == tcb->tcbSchedContext) { 28 tcb->tcbSchedContext = NULL; 32 if (tcb == NODE_STATE(ksCurThread)) {
|
H A D | tcb.h | 17 /* Maximum length of the tcb name, including null terminator */ 44 void tcbSchedEnqueue(tcb_t *tcb); 45 void tcbSchedAppend(tcb_t *tcb); 46 void tcbSchedDequeue(tcb_t *tcb); 49 void tcbDebugAppend(tcb_t *tcb); 50 void tcbDebugRemove(tcb_t *tcb); 53 void tcbReleaseRemove(tcb_t *tcb); 54 void tcbReleaseEnqueue(tcb_t *tcb); 59 void remoteQueueUpdate(tcb_t *tcb); 60 void remoteTCBStall(tcb_t *tcb); 82 tcbEPAppend(tcb_t *tcb, tcb_queue_t queue) argument [all...] |
/seL4-test-master/kernel/src/arch/riscv/kernel/ |
H A D | thread.c | 18 void Arch_switchToThread(tcb_t *tcb) argument 20 setVMRoot(tcb); 23 BOOT_CODE void Arch_configureIdleThread(tcb_t *tcb) argument 25 setRegister(tcb, NextIP, (word_t)idleThreadStart); 28 setRegister(tcb, SSTATUS, (word_t) SSTATUS_SPP | SSTATUS_SPIE); 31 if (NODE_STATE_ON_CORE(ksIdleThread, i) == tcb) { 32 setRegister(tcb, SP, (word_t)kernel_stack_alloc + (i + 1) * BIT(CONFIG_KERNEL_STACK_BITS)); 37 setRegister(tcb, SP, (word_t)kernel_stack_alloc + BIT(CONFIG_KERNEL_STACK_BITS)); 43 tcb_t *tcb = NODE_STATE(ksIdleThread); local 46 setVMRoot(tcb); 49 Arch_activateIdleThread(tcb_t *tcb) argument [all...] |
/seL4-test-master/projects/seL4_libs/libsel4debug/include/sel4debug/ |
H A D | register_dump.h | 17 void sel4debug_dump_registers(seL4_CPtr tcb); 18 void sel4debug_dump_registers_prefix(seL4_CPtr tcb, char *prefix);
|
/seL4-test-master/kernel/src/arch/arm/32/kernel/ |
H A D | thread.c | 15 void Arch_switchToThread(tcb_t *tcb) argument 18 vcpu_switch(tcb->tcbArch.tcbVCPU); 21 setVMRoot(tcb); 25 BOOT_CODE void Arch_configureIdleThread(tcb_t *tcb) argument 27 setRegister(tcb, CPSR, CPSR_IDLETHREAD); 28 setRegister(tcb, NextIP, (word_t)idleThreadStart); 41 void Arch_activateIdleThread(tcb_t *tcb) argument
|
/seL4-test-master/kernel/src/arch/arm/64/kernel/ |
H A D | thread.c | 14 void Arch_switchToThread(tcb_t *tcb) argument 17 vcpu_switch(tcb->tcbArch.tcbVCPU); 19 setVMRoot(tcb); 22 BOOT_CODE void Arch_configureIdleThread(tcb_t *tcb) argument 24 setRegister(tcb, SPSR_EL1, PSTATE_IDLETHREAD); 25 setRegister(tcb, ELR_EL1, (word_t)idleThreadStart); 36 void Arch_activateIdleThread(tcb_t *tcb) argument
|
/seL4-test-master/kernel/src/arch/x86/32/kernel/ |
H A D | thread.c | 14 void Arch_switchToThread(tcb_t *tcb) argument 17 setVMRoot(tcb); 27 BOOT_CODE void Arch_configureIdleThread(tcb_t *tcb) argument 29 setRegister(tcb, FLAGS, FLAGS_USER_DEFAULT); 30 setRegister(tcb, NextIP, (word_t)idleThreadStart); 31 setRegister(tcb, CS, SEL_CS_0); 32 setRegister(tcb, SS, SEL_DS_0); 33 setRegister(tcb, FS_BASE, 0); 34 setRegister(tcb, GS_BASE, 0); 43 void Arch_activateIdleThread(tcb_t *tcb) argument [all...] |
/seL4-test-master/kernel/src/arch/x86/64/kernel/ |
H A D | thread.c | 14 void Arch_switchToThread(tcb_t *tcb) argument 17 setVMRoot(tcb); 21 : [value] "r"(&tcb->tcbArch.tcbContext.registers[Error + 1]), 33 BOOT_CODE void Arch_configureIdleThread(tcb_t *tcb) argument 35 setRegister(tcb, FLAGS, FLAGS_USER_DEFAULT); 36 setRegister(tcb, NextIP, (uint64_t)idleThreadStart); 37 setRegister(tcb, CS, SEL_CS_0); 38 setRegister(tcb, SS, SEL_DS_0); 44 setRegister(tcb, RSP, 0); 49 tcb_t *tcb local 60 Arch_activateIdleThread(tcb_t *tcb) argument [all...] |
/seL4-test-master/kernel/include/arch/x86/arch/kernel/ |
H A D | thread.h | 11 void Arch_switchToThread(tcb_t *tcb); 13 void Arch_configureIdleThread(tcb_t *tcb); 14 void Arch_activateIdleThread(tcb_t *tcb);
|
H A D | traps.h | 15 tcb_t *tcb = NODE_STATE(ksCurThread); local 16 x86_save_fsgs_base(tcb, SMP_TERNARY(getCurrentCPUIndex(), 0)); 23 tcb_t *tcb = NODE_STATE(ksCurThread); local 24 x86_load_fsgs_base(tcb, SMP_TERNARY(getCurrentCPUIndex(), 0));
|
/seL4-test-master/projects/seL4_libs/libsel4debug/src/ |
H A D | register_dump.c | 20 void sel4debug_dump_registers(seL4_CPtr tcb) argument 22 sel4debug_dump_registers_prefix(tcb, ""); 25 void sel4debug_dump_registers_prefix(seL4_CPtr tcb, char *prefix) argument 31 error = seL4_TCB_ReadRegisters(tcb, false, 0, num_regs, &context); 33 ZF_LOGE("Failed to read registers for tcb 0x%lx, error %d", (long) tcb, error);
|
/seL4-test-master/kernel/include/machine/ |
H A D | capdl.h | 16 bool_t root_or_idle_tcb(tcb_t *tcb); 19 void obj_tcb_print_cnodes(cap_t cnode, tcb_t *tcb); 25 void obj_tcb_print_attrs(tcb_t *tcb); 28 void obj_ut_print_attrs(cte_t *slot, tcb_t *tcb); 30 void obj_tcb_print_slots(tcb_t *tcb); 31 void obj_cnode_print_slots(tcb_t *tcb); 40 void print_ipc_buffer_slot(tcb_t *tcb); 44 void obj_vtable_print_slots(tcb_t *tcb); 45 word_t get_tcb_sp(tcb_t *tcb); 48 void obj_tcb_print_vtable(tcb_t *tcb); [all...] |
/seL4-test-master/kernel/src/benchmark/ |
H A D | benchmark_utilisation.c | 17 tcb_t *tcb = NULL; local 30 tcb = TCB_PTR(cap_thread_cap_get_capTCBPtr(lu_ret.cap)); 33 buffer[BENCHMARK_TCB_UTILISATION] = tcb->benchmark.utilisation; /* Requested thread utilisation */ 34 buffer[BENCHMARK_TCB_NUMBER_SCHEDULES] = tcb->benchmark.number_schedules; /* Number of times scheduled */ 35 buffer[BENCHMARK_TCB_KERNEL_UTILISATION] = tcb->benchmark.kernel_utilisation; /* Utilisation spent in kernel */ 36 buffer[BENCHMARK_TCB_NUMBER_KERNEL_ENTRIES] = tcb->benchmark.number_kernel_entries; /* Number of kernel entries */ 43 tcb->tcbAffinity)->benchmark.utilisation; /* Idle thread utilisation of CPU the TCB is running on */ 70 void benchmark_track_reset_utilisation(tcb_t *tcb) argument 72 tcb->benchmark.utilisation = 0; 73 tcb [all...] |
/seL4-test-master/kernel/src/object/ |
H A D | notification.c | 12 #include <object/tcb.h> 42 static inline void maybeDonateSchedContext(tcb_t *tcb, notification_t *ntfnPtr) argument 44 if (tcb->tcbSchedContext == NULL) { 47 schedContext_donate(sc, tcb); 64 #define MCS_DO_IF_SC(tcb, ntfnPtr, _block) \ 65 maybeDonateSchedContext(tcb, ntfnPtr); \ 66 if (isSchedulable(tcb)) { \ 70 #define MCS_DO_IF_SC(tcb, ntfnPtr, _block) \ 80 tcb_t *tcb = (tcb_t *)notification_ptr_get_ntfnBoundTCB(ntfnPtr); local 82 if (tcb) { 252 completeSignal(notification_t *ntfnPtr, tcb_t *tcb) argument 284 unbindNotification(tcb_t *tcb) argument 294 bindNotification(tcb_t *tcb, notification_t *ntfnPtr) argument [all...] |
H A D | reply.c | 20 /* tcb caller should not be in a existing call stack */ 54 void reply_pop(reply_t *reply, tcb_t *tcb) argument 58 assert(thread_state_get_replyObject(tcb->tcbState) == REPLY_REF(reply)); 59 assert(reply->replyTCB == tcb); 61 /* unlink tcb and reply */ 62 reply_unlink(reply, tcb); 71 if (tcb->tcbSchedContext == NULL) { 76 schedContext_donate(SC_PTR(next_ptr), tcb); local 91 void reply_remove(reply_t *reply, tcb_t *tcb) argument 93 assert(reply->replyTCB == tcb); 108 reply_unlink(REPLY_PTR(reply), tcb); local 122 reply_remove_tcb(tcb_t *tcb) argument [all...] |
H A D | tcb.c | 20 #include <object/tcb.h> 82 void tcbSchedEnqueue(tcb_t *tcb) argument 85 assert(isSchedulable(tcb)); 86 assert(refill_sufficient(tcb->tcbSchedContext, 0)); 89 if (!thread_state_get_tcbQueued(tcb->tcbState)) { 95 dom = tcb->tcbDomain; 96 prio = tcb->tcbPriority; 98 queue = NODE_STATE_ON_CORE(ksReadyQueues[idx], tcb->tcbAffinity); 101 queue.end = tcb; 102 addToBitmap(SMP_TERNARY(tcb 117 tcbSchedAppend(tcb_t *tcb) argument 152 tcbSchedDequeue(tcb_t *tcb) argument 187 tcbDebugAppend(tcb_t *tcb) argument 202 tcbDebugRemove(tcb_t *tcb) argument 226 tcbEPAppend(tcb_t *tcb, tcb_queue_t queue) argument 242 tcbEPDequeue(tcb_t *tcb, tcb_queue_t queue) argument 260 tcbReleaseRemove(tcb_t *tcb) argument 281 tcbReleaseEnqueue(tcb_t *tcb) argument 442 remoteQueueUpdate(tcb_t *tcb) argument 464 remoteTCBStall(tcb_t *tcb) argument 497 tcb_t *tcb; local 542 tcb_t *tcb; local 560 invokeSetBreakpoint(tcb_t *tcb, uint16_t bp_num, word_t vaddr, word_t type, word_t size, word_t rw) argument 573 tcb_t *tcb; local 686 invokeGetBreakpoint(word_t *buffer, tcb_t *tcb, uint16_t bp_num) argument 701 tcb_t *tcb; local 718 invokeUnsetBreakpoint(tcb_t *tcb, uint16_t bp_num) argument 728 tcb_t *tcb; local 1316 tcb_t *tcb = TCB_PTR(cap_thread_cap_get_capTCBPtr(cap)); local 1595 tcb_t *tcb; local 1642 tcb_t *tcb; local 2027 invokeTCB_NotificationControl(tcb_t *tcb, notification_t *ntfnPtr) argument 2039 setThreadName(tcb_t *tcb, const char *name) argument [all...] |
/seL4-test-master/kernel/include/arch/x86/arch/object/ |
H A D | tcb.h | 15 void Arch_leaveVMAsyncTransfer(tcb_t *tcb);
|
/seL4-test-master/kernel/src/machine/ |
H A D | capdl.c | 68 /* Return true if the tcb is for rootserver or idle thread */ 69 bool_t root_or_idle_tcb(tcb_t *tcb) argument 71 return (strings_equal(TCB_PTR_DEBUG_PTR(tcb)->tcbName, "rootserver") 72 || strings_equal(TCB_PTR_DEBUG_PTR(tcb)->tcbName, "idle_thread")); 79 void obj_tcb_print_attrs(tcb_t *tcb) argument 82 (long unsigned int)tcb->tcbIPCBuffer, 83 (long unsigned int)getRestartPC(tcb), 84 (long unsigned int)get_tcb_sp(tcb), 85 (long unsigned int)tcb->tcbPriority, 86 (long unsigned int)tcb 134 obj_ut_print_attrs(cte_t *slot, tcb_t *tcb) argument 167 obj_tcb_print_cnodes(cap_t cnode, tcb_t *tcb) argument 227 obj_tcb_print_slots(tcb_t *tcb) argument 289 obj_cnode_print_slots(tcb_t *tcb) argument [all...] |
/seL4-test-master/kernel/include/api/ |
H A D | debug.h | 78 static inline void debug_printTCB(tcb_t *tcb) argument 80 printf("%40s\t", TCB_PTR_DEBUG_PTR(tcb)->tcbName); 82 switch (thread_state_get_tsType(tcb->tcbState)) { 116 word_t core = SMP_TERNARY(tcb->tcbAffinity, 0); 117 printf("%15s\t%p\t%20lu\t%lu", state, (void *) getRestartPC(tcb), tcb->tcbPriority, core); 119 printf("\t%lu", (word_t) thread_state_get_tcbInReleaseQueue(tcb->tcbState));
|
/seL4-test-master/projects/sel4_projects_libs/libsel4vm/src/arch/arm/ |
H A D | guest_arm_context.c | 22 seL4_CPtr tcb = vm_get_vcpu_tcb(vcpu); local 23 int err = seL4_TCB_WriteRegisters(tcb, false, 0, sizeof(context) / sizeof(context.pc), &context); 34 seL4_CPtr tcb = vm_get_vcpu_tcb(vcpu); local 43 int err = seL4_TCB_ReadRegisters(tcb, false, 0, sizeof(regs) / sizeof(regs.pc), ®s); 49 err = seL4_TCB_WriteRegisters(tcb, false, 0, sizeof(regs) / sizeof(regs.pc), ®s); 68 seL4_CPtr tcb = vm_get_vcpu_tcb(vcpu); local 69 int err = seL4_TCB_ReadRegisters(tcb, false, 0, sizeof(regs) / sizeof(regs.pc), ®s); 89 seL4_CPtr tcb = vm_get_vcpu_tcb(vcpu); local 90 int err = seL4_TCB_ReadRegisters(tcb, false, 0, sizeof(regs) / sizeof(regs.pc), ®s);
|
H A D | boot.c | 91 err = vka_alloc_tcb(vm->vka, &vcpu->tcb.tcb); 93 err = seL4_TCB_Configure(vcpu->tcb.tcb.cptr, dst.capPtr, 97 err = seL4_TCB_SetSchedParams(vcpu->tcb.tcb.cptr, simple_get_tcb(vm->simple), vcpu->tcb.priority, 98 vcpu->tcb.priority); 100 err = seL4_ARM_VCPU_SetTCB(vcpu->vcpu.cptr, vcpu->tcb.tcb [all...] |