亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sig.c

?? unix v7是最后一個廣泛發(fā)布的研究型UNIX版本
?? C
字號:
#include "../h/param.h"#include "../h/systm.h"#include "../h/dir.h"#include "../h/user.h"#include "../h/proc.h"#include "../h/inode.h"#include "../h/reg.h"#include "../h/text.h"#include "../h/seg.h"/* * Priority for tracing */#define	IPCPRI	PZERO/* * Tracing variables. * Used to pass trace command from * parent to child being traced. * This data base cannot be * shared and is locked * per user. */struct{	int	ip_lock;	int	ip_req;	int	*ip_addr;	int	ip_data;} ipc;/* * Send the specified signal to * all processes with 'pgrp' as * process group. * Called by tty.c for quits and * interrupts. */signal(pgrp, sig)register pgrp;{	register struct proc *p;	if(pgrp == 0)		return;	for(p = &proc[0]; p < &proc[NPROC]; p++)		if(p->p_pgrp == pgrp)			psignal(p, sig);}/* * Send the specified signal to * the specified process. */psignal(p, sig)register struct proc *p;register sig;{	if((unsigned)sig >= NSIG)		return;	if(sig)		p->p_sig |= 1<<(sig-1);	if(p->p_pri > PUSER)		p->p_pri = PUSER;	if(p->p_stat == SSLEEP && p->p_pri > PZERO)		setrun(p);}/* * Returns true if the current * process has a signal to process. * This is asked at least once * each time a process enters the * system. * A signal does not do anything * directly to a process; it sets * a flag that asks the process to * do something to itself. */issig(){	register n;	register struct proc *p;	p = u.u_procp;	while(p->p_sig) {		n = fsig(p);		if((u.u_signal[n]&1) == 0 || (p->p_flag&STRC))			return(n);		p->p_sig &= ~(1<<(n-1));	}	return(0);}/* * Enter the tracing STOP state. * In this state, the parent is * informed and the process is able to * receive commands from the parent. */stop(){	register struct proc *pp, *cp;loop:	cp = u.u_procp;	if(cp->p_ppid != 1)	for (pp = &proc[0]; pp < &proc[NPROC]; pp++)		if (pp->p_pid == cp->p_ppid) {			wakeup((caddr_t)pp);			cp->p_stat = SSTOP;			swtch();			if ((cp->p_flag&STRC)==0 || procxmt())				return;			goto loop;		}	exit(fsig(u.u_procp));}/* * Perform the action specified by * the current signal. * The usual sequence is: *	if(issig()) *		psig(); */psig(){	register n, p;	register struct proc *rp;	rp = u.u_procp;	if (u.u_fpsaved==0) {		savfp(&u.u_fps);		u.u_fpsaved = 1;	}	if (rp->p_flag&STRC)		stop();	n = fsig(rp);	if (n==0)		return;	rp->p_sig &= ~(1<<(n-1));	if((p=u.u_signal[n]) != 0) {		u.u_error = 0;		if(n != SIGINS && n != SIGTRC)			u.u_signal[n] = 0;		sendsig((caddr_t)p, n);		return;	}	switch(n) {	case SIGQUIT:	case SIGINS:	case SIGTRC:	case SIGIOT:	case SIGEMT:	case SIGFPT:	case SIGBUS:	case SIGSEG:	case SIGSYS:		if(core())			n += 0200;	}	exit(n);}/* * find the signal in bit-position * representation in p_sig. */fsig(p)struct proc *p;{	register n, i;	n = p->p_sig;	for(i=1; i<NSIG; i++) {		if(n & 1)			return(i);		n >>= 1;	}	return(0);}/* * Create a core image on the file "core" * If you are looking for protection glitches, * there are probably a wealth of them here * when this occurs to a suid command. * * It writes USIZE block of the * user.h area followed by the entire * data+stack segments. */core(){	register struct inode *ip;	register unsigned s;	extern schar();	u.u_error = 0;	u.u_dirp = "core";	ip = namei(schar, 1);	if(ip == NULL) {		if(u.u_error)			return(0);		ip = maknode(0666);		if (ip==NULL)			return(0);	}	if(!access(ip, IWRITE) &&	   (ip->i_mode&IFMT) == IFREG &&	   u.u_uid == u.u_ruid) {		itrunc(ip);		u.u_offset = 0;		u.u_base = (caddr_t)&u;		u.u_count = ctob(USIZE);		u.u_segflg = 1;		writei(ip);		s = u.u_procp->p_size - USIZE;		estabur((unsigned)0, s, (unsigned)0, 0, RO);		u.u_base = 0;		u.u_count = ctob(s);		u.u_segflg = 0;		writei(ip);	}	iput(ip);	return(u.u_error==0);}/* * grow the stack to include the SP * true return if successful. */grow(sp)unsigned sp;{	register si, i;	register struct proc *p;	register a;	if(sp >= -ctob(u.u_ssize))		return(0);	si = (-sp)/64 - u.u_ssize + SINCR;	if(si <= 0)		return(0);	if(estabur(u.u_tsize, u.u_dsize, u.u_ssize+si, u.u_sep, RO))		return(0);	p = u.u_procp;	expand(p->p_size+si);	a = p->p_addr + p->p_size;	for(i=u.u_ssize; i; i--) {		a--;		copyseg(a-si, a);	}	for(i=si; i; i--)		clearseg(--a);	u.u_ssize += si;	return(1);}/* * sys-trace system call. */ptrace(){	register struct proc *p;	register struct a {		int	data;		int	pid;		int	*addr;		int	req;	} *uap;	uap = (struct a *)u.u_ap;	if (uap->req <= 0) {		u.u_procp->p_flag |= STRC;		return;	}	for (p=proc; p < &proc[NPROC]; p++) 		if (p->p_stat==SSTOP		 && p->p_pid==uap->pid		 && p->p_ppid==u.u_procp->p_pid)			goto found;	u.u_error = ESRCH;	return;    found:	while (ipc.ip_lock)		sleep((caddr_t)&ipc, IPCPRI);	ipc.ip_lock = p->p_pid;	ipc.ip_data = uap->data;	ipc.ip_addr = uap->addr;	ipc.ip_req = uap->req;	p->p_flag &= ~SWTED;	setrun(p);	while (ipc.ip_req > 0)		sleep((caddr_t)&ipc, IPCPRI);	u.u_r.r_val1 = ipc.ip_data;	if (ipc.ip_req < 0)		u.u_error = EIO;	ipc.ip_lock = 0;	wakeup((caddr_t)&ipc);}/* * Code that the child process * executes to implement the command * of the parent process in tracing. */procxmt(){	register int i;	register *p;	register struct text *xp;	if (ipc.ip_lock != u.u_procp->p_pid)		return(0);	i = ipc.ip_req;	ipc.ip_req = 0;	wakeup((caddr_t)&ipc);	switch (i) {	/* read user I */	case 1:		if (fuibyte((caddr_t)ipc.ip_addr) == -1)			goto error;		ipc.ip_data = fuiword((caddr_t)ipc.ip_addr);		break;	/* read user D */	case 2:		if (fubyte((caddr_t)ipc.ip_addr) == -1)			goto error;		ipc.ip_data = fuword((caddr_t)ipc.ip_addr);		break;	/* read u */	case 3:		i = (int)ipc.ip_addr;		if (i<0 || i >= ctob(USIZE))			goto error;		ipc.ip_data = ((physadr)&u)->r[i>>1];		break;	/* write user I */	/* Must set up to allow writing */	case 4:		/*		 * If text, must assure exclusive use		 */		if (xp = u.u_procp->p_textp) {			if (xp->x_count!=1 || xp->x_iptr->i_mode&ISVTX)				goto error;			xp->x_iptr->i_flag &= ~ITEXT;		}		estabur(u.u_tsize, u.u_dsize, u.u_ssize, u.u_sep, RW);		i = suiword((caddr_t)ipc.ip_addr, 0);		suiword((caddr_t)ipc.ip_addr, ipc.ip_data);		estabur(u.u_tsize, u.u_dsize, u.u_ssize, u.u_sep, RO);		if (i<0)			goto error;		if (xp)			xp->x_flag |= XWRIT;		break;	/* write user D */	case 5:		if (suword((caddr_t)ipc.ip_addr, 0) < 0)			goto error;		suword((caddr_t)ipc.ip_addr, ipc.ip_data);		break;	/* write u */	case 6:		i = (int)ipc.ip_addr;		p = (int *)&((physadr)&u)->r[i>>1];		if (p >= (int *)&u.u_fps && p < (int *)&u.u_fps.u_fpregs[6])			goto ok;		for (i=0; i<8; i++)			if (p == &u.u_ar0[regloc[i]])				goto ok;		if (p == &u.u_ar0[RPS]) {			ipc.ip_data |= 0170000;	/* assure user space */			ipc.ip_data &= ~0340;	/* priority 0 */			goto ok;		}		goto error;	ok:		*p = ipc.ip_data;		break;	/* set signal and continue */	/*  one version causes a trace-trap */	case 9:		u.u_ar0[RPS] |= TBIT;	case 7:		if ((int)ipc.ip_addr != 1)			u.u_ar0[PC] = (int)ipc.ip_addr;		u.u_procp->p_sig = 0;		if (ipc.ip_data)			psignal(u.u_procp, ipc.ip_data);		return(1);	/* force exit */	case 8:		exit(fsig(u.u_procp));	default:	error:		ipc.ip_req = -1;	}	return(0);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区在线看片| 国产精品三级视频| 97久久超碰国产精品电影| 日本不卡视频在线观看| 亚洲精品水蜜桃| 欧美激情一区二区三区蜜桃视频| 欧美日韩国产一区二区三区地区| 成人永久免费视频| 美女一区二区视频| 亚洲成人先锋电影| 亚洲欧美另类小说视频| 国产日韩v精品一区二区| 69精品人人人人| 在线免费观看一区| 91在线观看免费视频| 粉嫩一区二区三区性色av| 秋霞影院一区二区| 亚洲h动漫在线| 一区二区三区日韩在线观看| 久久综合久久99| 日韩欧美黄色影院| 欧美一区二区福利视频| 欧美精品tushy高清| 日本高清免费不卡视频| 色综合天天综合在线视频| 成人h动漫精品一区二区| 国产乱码精品一区二区三区五月婷 | 麻豆成人91精品二区三区| 亚洲午夜精品久久久久久久久| 亚洲视频免费看| 国产精品二三区| 国产精品成人网| 国产精品理论片在线观看| 欧美激情中文字幕| 国产精品高清亚洲| 国产精品美女一区二区在线观看| 久久久精品国产免费观看同学| 久久欧美一区二区| 国产亚洲精品精华液| 国产日韩欧美精品综合| 国产精品少妇自拍| 国产精品传媒在线| 亚洲精品免费一二三区| 一区二区三区四区不卡在线 | 亚洲大片免费看| 午夜亚洲福利老司机| 日韩高清不卡一区二区| 毛片av一区二区| 国产一区二区三区美女| 东方aⅴ免费观看久久av| 成人激情小说乱人伦| av电影天堂一区二区在线| 日本高清成人免费播放| 宅男在线国产精品| 亚洲精品一区二区三区精华液| 久久久另类综合| 国产精品美女久久久久久| 玉足女爽爽91| 日本美女一区二区三区| 国产精品一二三区在线| 99riav一区二区三区| 欧美性猛交一区二区三区精品 | 中文字幕一区二区视频| 亚洲一区在线观看免费观看电影高清| 亚洲成av人综合在线观看| 麻豆国产精品官网| 国产白丝精品91爽爽久久| 一本大道久久a久久综合| 日韩一区二区三区在线视频| 国产亚洲欧美中文| 一卡二卡三卡日韩欧美| 精品亚洲免费视频| 不卡的看片网站| 欧美精品色综合| 国产日韩综合av| 亚洲一区二区五区| 国内外成人在线视频| 色一情一伦一子一伦一区| 欧美一区二区三区免费在线看| 国产午夜精品在线观看| 亚洲自拍偷拍麻豆| 国产美女一区二区| 欧美色综合影院| 国产婷婷色一区二区三区在线| 亚洲一二三四久久| 国产精品一区二区在线观看不卡| 色妹子一区二区| 亚洲精品一区二区三区99| 亚洲黄色在线视频| 国产精品一区二区91| 精品视频一区二区不卡| 国产欧美一区二区精品性色超碰| 性感美女久久精品| 99re66热这里只有精品3直播| 日韩一区二区精品在线观看| 1000精品久久久久久久久| 美女网站色91| 欧美午夜在线观看| 中文字幕在线不卡视频| 老司机午夜精品99久久| 欧美性一区二区| 中文字幕永久在线不卡| 精品一区二区三区久久| 777久久久精品| 亚洲一卡二卡三卡四卡无卡久久| 成人免费高清视频| 久久丝袜美腿综合| 美女网站一区二区| 5月丁香婷婷综合| 亚洲国产一区二区视频| 一本久久a久久精品亚洲| 亚洲国产高清在线| 国产剧情一区二区三区| 日韩精品一区二区在线观看| 亚洲午夜羞羞片| 一本一道波多野结衣一区二区| 国产精品午夜春色av| 国产福利电影一区二区三区| 久久这里只有精品视频网| 久久精品久久综合| 91精品视频网| 午夜精品爽啪视频| 欧美理论片在线| 亚洲高清免费在线| 欧美视频完全免费看| 亚洲一区二区在线视频| 一本久久综合亚洲鲁鲁五月天| 亚洲日本一区二区三区| 91网上在线视频| 亚洲免费成人av| 色中色一区二区| 亚洲小说春色综合另类电影| 在线观看日韩高清av| 亚洲毛片av在线| 在线观看免费亚洲| 性欧美疯狂xxxxbbbb| 6080国产精品一区二区| 久久成人免费网站| 久久影院电视剧免费观看| 国产麻豆午夜三级精品| 国产拍欧美日韩视频二区 | 日韩女优毛片在线| 裸体一区二区三区| 久久亚洲精华国产精华液 | 久久婷婷国产综合国色天香| 国产一区二区三区在线看麻豆| 久久综合狠狠综合| 国产成人av电影在线观看| 国产精品久久免费看| 91美女在线看| 午夜av区久久| 欧美精品一区男女天堂| 成人小视频免费观看| 亚洲免费在线观看| 在线不卡中文字幕播放| 国产综合色在线| 中文字幕亚洲精品在线观看| 欧美视频自拍偷拍| 美女mm1313爽爽久久久蜜臀| 久久精品一区四区| 93久久精品日日躁夜夜躁欧美| 亚洲国产欧美一区二区三区丁香婷| 51精品国自产在线| 国产东北露脸精品视频| 一区二区三区成人| 欧美一区二区视频在线观看2022| 国产尤物一区二区在线| 亚洲男人的天堂av| 91精品国产91久久久久久最新毛片| 韩国三级中文字幕hd久久精品| ...xxx性欧美| 欧美高清一级片在线| 国产成人精品1024| 亚洲成av人片| 久久久久久久国产精品影院| 91官网在线观看| 久久99精品久久久久| 亚洲黄色录像片| 久久久久国产免费免费| 欧美三级电影网站| 国产精品一区二区久激情瑜伽| 亚洲国产精品久久人人爱 | 麻豆一区二区99久久久久| 国产精品久久久久久妇女6080| 欧美二区三区的天堂| 成年人网站91| 日本怡春院一区二区| 亚洲男女一区二区三区| 久久午夜国产精品| 欧美区一区二区三区| 97久久超碰国产精品| 极品少妇一区二区三区精品视频 | 久久精子c满五个校花| 欧洲精品在线观看| 国产91在线观看丝袜| 美女脱光内衣内裤视频久久网站| 一区二区三区四区高清精品免费观看 | 国产美女av一区二区三区| 亚洲va天堂va国产va久| 亚洲欧美在线aaa|