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

📄 nosys.cc

📁 南京航空航天大学开发的一个类Unix和Linux的操作系统,好不好看看就知道了,
💻 CC
字号:
#include <lib/root.h>#include <lib/errno.h>#include <lib/gcc.h>#include <lib/ostream.h>#include <kern/pgrp.h>#include <kern/sched.h>#include <net/inet/route.h>static char * human(int state){	if (state == TRUN)		return "RUN";	if (state == TWAIT)		return "WAIT";	if (state == TSLEEP)		return "SLEEP";	if (state == TSTOP)		return "STOP";	if (state == TZOMBIE)		return "ZOMBIE";	return "???";}static int ps(char * buf, int size){	int e;	if (e = verw(buf, size))		return e;	ostream_t os(buf, size);	task_t * t;	os.write("PPID\tPID\tPGID\tSID\tSTAT\tCOMMAND\n");	foreach (t, alltaskq) {		pid_t ppid = (t->parent ? t->parent->pid : -1);		os.write("%d\t%d\t%d\t%d\t%s\t%s\n", ppid, t->pid,		t->pgrp->pgid, t->pgrp->session->sid, human(t->state), 		t->execname.get());	}	return os.written();}extern void dumpmem(ostream_t *);extern void dumpkm(ostream_t *);extern void dumpb(ostream_t *);extern void dumpblkio(ostream_t *);extern void dumpi(ostream_t *);extern void dumpsched(ostream_t *);static int dump(char * buf, int size){	int e;	if (e = verw(buf, size))		return e;	ostream_t os(buf, size);	dumpmem(&os);	dumpkm(&os);	dumpb(&os);	dumpblkio(&os);	dumpi(&os);	dumpsched(&os);	return os.written();}asmlinkage int sysptrace(int req, char * buf, int size){	if (req == 0)		return ps(buf, size);	if (req == 1)		return dump(buf, size);	if (req == 2)		return showroute(buf, size);	warn("invalid argument for ps(1) or ks(1) or route(8)\n");	return ENOSYS;}asmlinkage int sysnosys(long ebx){	regs_t * r = (regs_t *) &ebx;	printf("THE NO.%ld SYSTEM CALL IS NOT IMPLENTED\n", r->u.origeax);	return ENOSYS;}asmlinkage int syspersonality(){	return 0;}/* gcc need the following */asmlinkage int syssetrlimit(){	return 0;}asmlinkage int sysgetrlimit(){	return 0;}asmlinkage int sysgetrusage(){	return 0;}

⌨️ 快捷键说明

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