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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? exit.c

?? linux0.11內核源代碼,學習內核入門必看
?? C
字號:
/* *  linux/kernel/exit.c * *  (C) 1991  Linus Torvalds */#include <errno.h>#include <signal.h>#include <sys/wait.h>#include <linux/sched.h>#include <linux/kernel.h>#include <linux/tty.h>#include <asm/segment.h>int sys_pause(void);int sys_close(int fd);void release(struct task_struct * p){	int i;	if (!p)		return;	for (i=1 ; i<NR_TASKS ; i++)		if (task[i]==p) {			task[i]=NULL;			free_page((long)p);			schedule();			return;		}	panic("trying to release non-existent task");}static inline int send_sig(long sig,struct task_struct * p,int priv){	if (!p || sig<1 || sig>32)		return -EINVAL;	if (priv || (current->euid==p->euid) || suser())		p->signal |= (1<<(sig-1));	else		return -EPERM;	return 0;}static void kill_session(void){	struct task_struct **p = NR_TASKS + task;		while (--p > &FIRST_TASK) {		if (*p && (*p)->session == current->session)			(*p)->signal |= 1<<(SIGHUP-1);	}}/* * XXX need to check permissions needed to send signals to process * groups, etc. etc.  kill() permissions semantics are tricky! */int sys_kill(int pid,int sig){	struct task_struct **p = NR_TASKS + task;	int err, retval = 0;	if (!pid) while (--p > &FIRST_TASK) {		if (*p && (*p)->pgrp == current->pid) 			if (err=send_sig(sig,*p,1))				retval = err;	} else if (pid>0) while (--p > &FIRST_TASK) {		if (*p && (*p)->pid == pid) 			if (err=send_sig(sig,*p,0))				retval = err;	} else if (pid == -1) while (--p > &FIRST_TASK)		if (err = send_sig(sig,*p,0))			retval = err;	else while (--p > &FIRST_TASK)		if (*p && (*p)->pgrp == -pid)			if (err = send_sig(sig,*p,0))				retval = err;	return retval;}static void tell_father(int pid){	int i;	if (pid)		for (i=0;i<NR_TASKS;i++) {			if (!task[i])				continue;			if (task[i]->pid != pid)				continue;			task[i]->signal |= (1<<(SIGCHLD-1));			return;		}/* if we don't find any fathers, we just release ourselves *//* This is not really OK. Must change it to make father 1 */	printk("BAD BAD - no father found\n\r");	release(current);}int do_exit(long code){	int i;	free_page_tables(get_base(current->ldt[1]),get_limit(0x0f));	free_page_tables(get_base(current->ldt[2]),get_limit(0x17));	for (i=0 ; i<NR_TASKS ; i++)		if (task[i] && task[i]->father == current->pid) {			task[i]->father = 1;			if (task[i]->state == TASK_ZOMBIE)				/* assumption task[1] is always init */				(void) send_sig(SIGCHLD, task[1], 1);		}	for (i=0 ; i<NR_OPEN ; i++)		if (current->filp[i])			sys_close(i);	iput(current->pwd);	current->pwd=NULL;	iput(current->root);	current->root=NULL;	iput(current->executable);	current->executable=NULL;	if (current->leader && current->tty >= 0)		tty_table[current->tty].pgrp = 0;	if (last_task_used_math == current)		last_task_used_math = NULL;	if (current->leader)		kill_session();	current->state = TASK_ZOMBIE;	current->exit_code = code;	tell_father(current->father);	schedule();	return (-1);	/* just to suppress warnings */}int sys_exit(int error_code){	return do_exit((error_code&0xff)<<8);}int sys_waitpid(pid_t pid,unsigned long * stat_addr, int options){	int flag, code;	struct task_struct ** p;	verify_area(stat_addr,4);repeat:	flag=0;	for(p = &LAST_TASK ; p > &FIRST_TASK ; --p) {		if (!*p || *p == current)			continue;		if ((*p)->father != current->pid)			continue;		if (pid>0) {			if ((*p)->pid != pid)				continue;		} else if (!pid) {			if ((*p)->pgrp != current->pgrp)				continue;		} else if (pid != -1) {			if ((*p)->pgrp != -pid)				continue;		}		switch ((*p)->state) {			case TASK_STOPPED:				if (!(options & WUNTRACED))					continue;				put_fs_long(0x7f,stat_addr);				return (*p)->pid;			case TASK_ZOMBIE:				current->cutime += (*p)->utime;				current->cstime += (*p)->stime;				flag = (*p)->pid;				code = (*p)->exit_code;				release(*p);				put_fs_long(code,stat_addr);				return flag;			default:				flag=1;				continue;		}	}	if (flag) {		if (options & WNOHANG)			return 0;		current->state=TASK_INTERRUPTIBLE;		schedule();		if (!(current->signal &= ~(1<<(SIGCHLD-1))))			goto repeat;		else			return -EINTR;	}	return -ECHILD;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本成人在线观看| 在线成人午夜影院| 97久久超碰国产精品| 欧美在线观看一区二区| 欧美一区二区视频网站| 国产精品毛片久久久久久久| 国产精品久久久久婷婷| 日韩国产成人精品| 成人免费观看av| 久久综合九色综合欧美98| 日韩理论在线观看| 国产精品白丝av| 久久亚洲私人国产精品va媚药| 有码一区二区三区| 不卡的av网站| 亚洲特级片在线| 国产·精品毛片| 国产欧美视频一区二区| 国产一区999| 欧美激情综合在线| 久久99精品久久久久久动态图 | 国产九色精品成人porny| 在线视频一区二区三| 亚洲制服丝袜在线| 欧美三级韩国三级日本一级| 一区二区三区四区高清精品免费观看 | 欧美主播一区二区三区美女| 国产日韩欧美在线一区| 中文字幕在线一区免费| 国产精品自拍三区| 亚洲色图清纯唯美| 7777精品伊人久久久大香线蕉最新版| 日韩美女精品在线| 欧美日韩成人综合| 国产精选一区二区三区| 亚洲精品久久7777| 欧美色爱综合网| 国产在线精品一区二区三区不卡| 国产亚洲精品中文字幕| 欧美一区二区三区在| 午夜成人在线视频| 国产精品伦一区二区三级视频| 成熟亚洲日本毛茸茸凸凹| 亚洲最新视频在线观看| 日韩三级电影网址| 91在线无精精品入口| 婷婷丁香久久五月婷婷| 欧美不卡一区二区三区| 99精品久久99久久久久| 欧美aaa在线| 亚洲成人av免费| 亚洲欧美乱综合| 亚洲欧美视频在线观看| 成人免费在线视频观看| 久久久精品免费网站| 91精品国产综合久久蜜臀| a在线播放不卡| 国产精品资源网| 狠狠色丁香婷婷综合久久片| 亚洲主播在线播放| 亚洲美女在线国产| 亚洲男同性恋视频| 亚洲欧洲中文日韩久久av乱码| 久久久久久久久久久99999| 欧美一区二区三区喷汁尤物| 精品婷婷伊人一区三区三| 欧洲另类一二三四区| av中文字幕不卡| 91国内精品野花午夜精品| 不卡在线观看av| 欧美日韩亚州综合| 欧美色图激情小说| 日韩av一级片| 亚洲最大色网站| 午夜精品福利一区二区蜜股av | 91无套直看片红桃| 欧美丝袜丝交足nylons图片| 欧美精品xxxxbbbb| 337p粉嫩大胆噜噜噜噜噜91av| 国产无一区二区| 亚洲欧美日韩国产一区二区三区| 一区二区日韩电影| 久久国产麻豆精品| 91浏览器打开| 亚洲精品在线三区| 亚洲国产精品久久不卡毛片 | 久久精品在线观看| 亚洲成a人片在线观看中文| 国产精品中文有码| 91精品国产aⅴ一区二区| 国产精品美女久久久久aⅴ| 日韩—二三区免费观看av| 国产精品99久久久| 欧美一区二区久久久| 1024国产精品| 成人av在线一区二区| 亚洲精品在线观| 久久不见久久见免费视频7 | 欧美高清视频在线高清观看mv色露露十八 | 久久免费的精品国产v∧| 午夜视频一区在线观看| 色8久久精品久久久久久蜜| 国产精品欧美一级免费| 在线观看精品一区| 99热精品国产| 欧美蜜桃一区二区三区| 自拍偷自拍亚洲精品播放| 欧美亚洲国产一区二区三区va | 在线免费观看日韩欧美| 日韩高清在线观看| 国产免费观看久久| 555夜色666亚洲国产免| 福利一区在线观看| 日本少妇一区二区| 亚洲欧美成aⅴ人在线观看| 日韩欧美在线影院| 91免费在线播放| 韩日精品视频一区| 五月综合激情婷婷六月色窝| 久久影院午夜论| 91精品在线麻豆| 色综合天天做天天爱| 黑人巨大精品欧美黑白配亚洲| 亚洲精品精品亚洲| 国产精品青草综合久久久久99| 91精品蜜臀在线一区尤物| 色综合亚洲欧洲| 成人做爰69片免费看网站| 激情综合色播五月| 亚洲成人自拍偷拍| 一区二区三区在线免费播放| 久久久久久久网| 精品久久久久久久久久久久包黑料 | 欧美一a一片一级一片| 成人性生交大片免费看中文 | 欧美日韩国产高清一区二区三区| 成人免费高清在线观看| 国内外成人在线视频| 美女国产一区二区| 视频一区中文字幕国产| 亚洲一区二区三区在线看| 亚洲精品一卡二卡| 亚洲欧洲av在线| 国产精品欧美一区喷水| 中文字幕亚洲成人| 国产亚洲精品bt天堂精选| www国产亚洲精品久久麻豆| 日韩欧美国产综合一区 | 99精品久久99久久久久| 成人天堂资源www在线| 成人激情免费视频| 99久久国产综合精品色伊| 99久精品国产| 日本精品裸体写真集在线观看 | 夜夜揉揉日日人人青青一国产精品| 国产精品的网站| 亚洲狠狠丁香婷婷综合久久久| 亚洲欧洲一区二区在线播放| 综合久久一区二区三区| 亚洲激情五月婷婷| 天堂va蜜桃一区二区三区 | 有坂深雪av一区二区精品| 一区二区三区自拍| 亚洲成av人影院在线观看网| 奇米精品一区二区三区四区| 国产在线不卡一区| 99re这里只有精品6| 在线视频国内一区二区| 欧美电影在哪看比较好| 精品1区2区在线观看| 国产欧美一区二区精品性色| 亚洲色图另类专区| 日韩精品免费视频人成| 国产麻豆成人精品| 在线精品亚洲一区二区不卡| 欧美一区二区视频在线观看| 久久天堂av综合合色蜜桃网| 国产精品免费视频网站| 午夜精品一区在线观看| 国产乱一区二区| 欧美四级电影在线观看| 精品欧美黑人一区二区三区| 亚洲图片你懂的| 久久国产精品一区二区| 93久久精品日日躁夜夜躁欧美| 欧美男男青年gay1069videost| 国产午夜精品一区二区三区嫩草 | 久久久午夜电影| 亚洲美女屁股眼交| 精品一区二区三区久久久| 一本久道中文字幕精品亚洲嫩| 欧美一区二区三区免费视频| 国产精品夫妻自拍| 久久成人av少妇免费| 欧洲激情一区二区| 国产欧美综合在线| 麻豆精品久久精品色综合| 91精品福利在线| 欧美激情一区二区三区蜜桃视频 | 日本韩国一区二区|