sysproc.c

来自「美国mit操作系统课程所用的一个教学操作系统xv6」· C语言 代码 · 共 81 行

C
81
字号
#include "types.h"#include "defs.h"#include "param.h"#include "mmu.h"#include "proc.h"intsys_fork(void){  int pid;  struct proc *np;  if((np = copyproc(cp)) == 0)    return -1;  pid = np->pid;  np->state = RUNNABLE;  return pid;}intsys_exit(void){  exit();  return 0;  // not reached}intsys_wait(void){  return wait();}intsys_kill(void){  int pid;  if(argint(0, &pid) < 0)    return -1;  return kill(pid);}intsys_getpid(void){  return cp->pid;}intsys_sbrk(void){  int addr;  int n;  if(argint(0, &n) < 0)    return -1;  if((addr = growproc(n)) < 0)    return -1;  return addr;}intsys_sleep(void){  int n, ticks0;    if(argint(0, &n) < 0)    return -1;  acquire(&tickslock);  ticks0 = ticks;  while(ticks - ticks0 < n){    if(cp->killed){      release(&tickslock);      return -1;    }    sleep(&ticks, &tickslock);  }  release(&tickslock);  return 0;}

⌨️ 快捷键说明

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