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 + -
显示快捷键?