⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swi.c

📁 一个基于MMU的操作系统的实现(代码很少
💻 C
字号:
#include <swi.h>#include <serial.h>#include <sched.h>fn_ptr swi_table[] = {  sys_exit,sys_sleep,sys_write };int do_exit(int error_code){	DPRINTK(KERNEL_DEBUG,"kernel:do_exit\n\r");				current->state = TASK_UNALLOCATE;	schedule();	return 0;}int do_sleep(unsigned long time){	DPRINTK(KERNEL_DEBUG,"kernel:do_sleep\n\r");				current->state = TASK_SLEEPING;	current->timer = time;	schedule();	return 0;} int do_write(char *str){	return printk(str);}int exit(int error_code){ 	int ret; 	__asm__( 		"mov	r0, %1\n" 		"swi	%2\n" 		"mov	%0, r0\n" 		:"=r"(ret) 		:"r"(error_code),"M"(__NR_exit) 		:"r0" 		); 	return ret;}int sleep(int time){ 	int ret; 	__asm__( 		"mov	r0, %1\n" 		"swi	%2\n" 		"mov	%0, r0\n" 		:"=r"(ret) 		:"r"(time),"M"(__NR_sleep)		:"r0"		);	return ret;}/***************************************************************  返回输出的字节数***************************************************************/int write(char *str){ 	int ret; 	__asm__( 		"mov	r0, %1\n" 		"swi	%2\n" 		"mov	%0, r0\n" 		:"=r"(ret) 		:"r"(str),"M"(__NR_write)		:"r0"		);	return ret;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -