mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-16 14:06:48 +00:00
* 引入cargo * 取消对Cargo.lock的跟踪 * 解决vscode报错问题 * new: rust的代码能够调用c语言的printk_color * 1、将原本run.sh的工作拆解,变为几个不同的make命令 2、在docker镜像中编译rust * 更改workflow * update workflow * new: 解决workflow无法通过编译的问题
36 lines
860 B
ArmAsm
36 lines
860 B
ArmAsm
#include"../common/asm.h"
|
||
|
||
/**
|
||
* @brief 导出内核线程的执行引导程序
|
||
* 目的是还原执行现场(在kernel_thread中伪造的)
|
||
* 执行到这里时,rsp位于栈顶,然后弹出寄存器值
|
||
* 弹出之后还要向上移动7个unsigned long的大小,从而弹出额外的信息(详见pt_regs)
|
||
*/
|
||
|
||
ENTRY(kernel_thread_func)
|
||
popq %r15
|
||
popq %r14
|
||
popq %r13
|
||
popq %r12
|
||
popq %r11
|
||
popq %r10
|
||
popq %r9
|
||
popq %r8
|
||
popq %rbx
|
||
popq %rcx
|
||
popq %rdx
|
||
popq %rsi
|
||
popq %rdi
|
||
popq %rbp
|
||
popq %rax
|
||
movq %rax, %ds
|
||
popq %rax
|
||
movq %rax, %es
|
||
popq %rax
|
||
addq $0x20, %rsp
|
||
popfq
|
||
addq $0x10, %rsp
|
||
movq %rdx, %rdi
|
||
callq *%rbx
|
||
movq %rax, %rdi
|
||
callq process_do_exit
|