SimpleKernel 1.17.0
Loading...
Searching...
No Matches
Todo List
Member InitTaskContext (cpu_io::CalleeSavedContext *task_context, void(*entry)(void *), void *arg, uint64_t stack_top)
x86_64 实现待补充
Member InitTaskContext (cpu_io::CalleeSavedContext *task_context, cpu_io::TrapContext *trap_context_ptr, uint64_t stack_top)
x86_64 实现待补充
Member Interrupt::BroadcastIpi () -> Expected< void > override

默认使用 SGI 0 作为 IPI 中断

Member Interrupt::SendIpi (uint64_t target_cpu_mask) -> Expected< void > override

默认使用 SGI 0 作为 IPI 中断

Member interrupt_test () -> bool
等用户态调通后补上
Member SchedPolicy
为什么要定义 TaskStatusId 与 TaskStatus 两个命名空间?可以直接用 TaskStatus 吗?
Member sys_futex (int *uaddr, int op, int val, const void *timeout, int *uaddr2, int val3) -> int

实现 FUTEX_REQUEUE

应该返回实际唤醒的线程数

Member sys_sched_setaffinity (int pid, size_t cpusetsize, const uint64_t *mask) -> int
如果当前任务不在允许的 CPU 上运行,应该触发迁移
Member sys_set_tid_address (int *tidptr) -> int
需要在 TaskControlBlock 中添加字段保存 tidptr
Member sys_write (int fd, const char *buf, size_t len) -> int
应该检查 buf 是否在用户空间合法范围内
Member Syscall (uint64_t, cpu_io::TrapContext *context_ptr) -> void
Member TaskAuxData::fd_table
优先级继承相关
Member TaskControlBlock::TaskControlBlock (const char *name, int priority, uint8_t *elf, int argc, char **argv)
Member TaskManager::Clone (uint64_t flags, void *user_stack, int *parent_tid, int *child_tid, void *tls, cpu_io::TrapContext &parent_context) -> Expected< Pid >

当前未实现文件系统,此标志暂时仅记录

当前未实现信号机制,此标志暂时仅记录

当前未实现文件系统,此标志暂时仅记录

Member TaskManager::Exit (int exit_code=0) -> void
通知父进程 (发送 SIGCHLD)
Member TaskManager::ReparentChildren (TaskControlBlock *parent) -> void

当前的 pid 是自增的,需要考虑多核情况

实现向 init 进程发送 SIGCHLD 信号

Member TaskManager::SignalThreadGroup (Pid tgid, int signal) -> void
实现信号机制后,向线程组中的所有线程发送信号
Member user_task_test () -> bool
Implement user task tests when ELF loading path is testable
Class virtio::PciTransport
实现 PCI Modern (1.0+) 传输层