This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
#include"types.h"
#include"riscv.h"
#include"defs.h"
#include"param.h"
#include"memlayout.h"
#include"spinlock.h"
#include"proc.h"
#include"sysinfo.h"
uint64
sys_exit(void)
{
intn;
argint(0,&n);
exit(n);
return0;// not reached
}
uint64
sys_getpid(void)
{
returnmyproc()->pid;
}
uint64
sys_fork(void)
{
returnfork();
}
uint64
sys_wait(void)
{
uint64p;
argaddr(0,&p);
returnwait(p);
}
uint64
sys_sbrk(void)
{
uint64addr;
intn;
argint(0,&n);
addr=myproc()->sz;
if(growproc(n)<0)
return-1;
returnaddr;
}
uint64
sys_sleep(void)
{
intn;
uintticks0;
argint(0,&n);
if(n<0)
n=0;
acquire(&tickslock);
ticks0=ticks;
while(ticks-ticks0<n){
if(killed(myproc())){
release(&tickslock);
return-1;
}
sleep(&ticks,&tickslock);
}
release(&tickslock);
return0;
}
uint64
sys_kill(void)
{
intpid;
argint(0,&pid);
returnkill(pid);
}
// return how many clock tick interrupts have occurred