write.c
来自「os arm os arm os arm os arm os arm os ar」· C语言 代码 · 共 26 行
C
26 行
#include "../include/kernel/sys.h"
#include "../include/kernel/types.h"
//system_call3(int,write,int,fd,char *,buf,off_t,count)
/*
* 该宏定义了一个系统调用enter_super(),
* 他使当前的任务特进入System特权级
*/
inline system_call0(int,enter_super);
/*
* 根据spsr对当前任务的特权级进行设置
*/
void exit_super(int spsr)
{
write_cpsr(spsr);
}
int write(int fd,char * buf,off_t count)
{
unsigned int csp=read_cpsr(); //保存当前任务的特权级
enter_super(); //当前任务进入System特权级
//从这里开始任务是运行在System特权级下了
sys_write(fd,buf,count);
exit_super(csp); //当前任务恢复为原来的特权级
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?