mirror of
https://github.com/SmallPond/MIT6.828_OS.git
synced 2026-02-03 11:03:16 +08:00
42 lines
684 B
ArmAsm
42 lines
684 B
ArmAsm
#include "syscall.h"
|
||
#include "traps.h"
|
||
|
||
#define SYSCALL(name) \
|
||
.globl name; \
|
||
name: \
|
||
movl $SYS_ ## name, %eax; \
|
||
int $T_SYSCALL; \
|
||
ret
|
||
|
||
/*
|
||
* 什么时候执行这段?
|
||
* 应该系统启动过程就会执行,注册一个函数!
|
||
* 当调用name()时,自动进入这个函数,再转向sys_name()函数
|
||
*/
|
||
|
||
SYSCALL(fork)
|
||
SYSCALL(exit)
|
||
SYSCALL(wait)
|
||
SYSCALL(pipe)
|
||
SYSCALL(read)
|
||
SYSCALL(write)
|
||
SYSCALL(close)
|
||
SYSCALL(kill)
|
||
SYSCALL(exec)
|
||
SYSCALL(open)
|
||
SYSCALL(mknod)
|
||
SYSCALL(unlink)
|
||
SYSCALL(fstat)
|
||
SYSCALL(link)
|
||
SYSCALL(mkdir)
|
||
SYSCALL(chdir)
|
||
SYSCALL(dup)
|
||
SYSCALL(dup2)
|
||
SYSCALL(getpid)
|
||
SYSCALL(sbrk)
|
||
SYSCALL(sleep)
|
||
SYSCALL(uptime)
|
||
SYSCALL(date)
|
||
SYSCALL(alarm)
|
||
|