| 92 | } |
| 93 | |
| 94 | static void |
| 95 | sampleThreadInfo(CafeThread &info, virt_ptr<cafe::coreinit::OSThread> thread) |
| 96 | { |
| 97 | info.handle = static_cast<uint32_t>(virt_cast<virt_addr>(thread)); |
| 98 | info.id = thread->id; |
| 99 | info.name = thread->name ? thread->name.get() : ""; |
| 100 | info.priority = thread->priority; |
| 101 | info.basePriority = thread->basePriority; |
| 102 | info.state = static_cast<CafeThread::ThreadState>(thread->state.value()); |
| 103 | info.affinity = static_cast<CafeThread::ThreadAffinity>(thread->attr & cafe::coreinit::OSThreadAttributes::AffinityAny); |
| 104 | info.stackStart = static_cast<uint32_t>(virt_cast<virt_addr>(thread->stackStart)); |
| 105 | info.stackEnd = static_cast<uint32_t>(virt_cast<virt_addr>(thread->stackEnd)); |
| 106 | info.executionTime = std::chrono::nanoseconds { thread->coreTimeConsumedNs.value() }; |
| 107 | } |
| 108 | |
| 109 | static void |
| 110 | copyThreadRegisters(CafeThread &info, virt_ptr<cafe::coreinit::OSThread> thread) |
no test coverage detected