mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-25 18:23:22 +00:00
signal的处理(kill命令)以及一些其他的改进 (#100)
* 将entry.S中冗余的ret_from_syscall代码删除,改为jmp Restore_all * new: 增加判断pt_regs是否来自用户态的函数 * new: rust的cli和sti封装 * 将原有的判断pt_regs是否来自用户态的代码,统一改为调用user_mode函数 * ffz函数:获取u64中的第一个值为0的bit * spinlock增加 spinlock irq spin_unlock_irq * 临时解决显示刷新线程迟迟不运行的问题 * 更改ffi_convert的生命周期标签 * new: 测试signal用的app * 解决由于编译器优化导致local_irq_restore无法获取到正确的rflags的值的问题 * new: exec命令增加"&"后台运行选项 * procfs->status增加显示preempt和虚拟运行时间 * 更改引用计数的FFIBind2Rust trait中的生命周期标签 * new: signal处理(kill) * 更正在review中发现的一些细节问题
This commit is contained in:
@ -66,6 +66,7 @@ int video_refresh_daemon(void *unused)
|
||||
memcpy((void *)video_frame_buffer_info.vaddr, (void *)video_refresh_target->vaddr,
|
||||
video_refresh_target->size);
|
||||
spin_unlock(&daemon_refresh_lock);
|
||||
video_daemon_pcb->virtual_runtime = 0xfffff0000000; // 临时解决由于显示刷新进程的虚拟运行时间过大/过小,导致其不运行,或者一直运行的问题。将来应使用实时调度解决它
|
||||
}
|
||||
video_refresh_expire_jiffies = cal_next_n_ms_jiffies(REFRESH_INTERVAL << 1);
|
||||
}
|
||||
@ -83,8 +84,11 @@ void video_refresh_framebuffer(void *data)
|
||||
{
|
||||
if (unlikely(video_daemon_pcb == NULL))
|
||||
return;
|
||||
|
||||
process_wakeup(video_daemon_pcb);
|
||||
if (clock() >= video_refresh_expire_jiffies)
|
||||
{
|
||||
video_daemon_pcb->virtual_runtime = 0;
|
||||
process_wakeup(video_daemon_pcb);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user