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

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

?? fd.c

?? 這是一份linux的源代碼,相信會給學習編程序的人有所幫助
?? C
字號:
/*
 *  linux/fs/proc/fd.c
 *
 *  Copyright (C) 1991, 1992 Linus Torvalds
 *
 *  proc fd directory handling functions
 */

#include <asm/segment.h>

#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/proc_fs.h>
#include <linux/stat.h>

static int proc_readfd(struct inode *, struct file *, struct dirent *, int);
static int proc_lookupfd(struct inode *,const char *,int,struct inode **);

static struct file_operations proc_fd_operations = {
	NULL,			/* lseek - default */
	NULL,			/* read - bad */
	NULL,			/* write - bad */
	proc_readfd,		/* readdir */
	NULL,			/* select - default */
	NULL,			/* ioctl - default */
	NULL,			/* mmap */
	NULL,			/* no special open code */
	NULL,			/* no special release code */
	NULL			/* can't fsync */
};

/*
 * proc directories can do almost nothing..
 */
struct inode_operations proc_fd_inode_operations = {
	&proc_fd_operations,	/* default base directory file-ops */
	NULL,			/* create */
	proc_lookupfd,		/* lookup */
	NULL,			/* link */
	NULL,			/* unlink */
	NULL,			/* symlink */
	NULL,			/* mkdir */
	NULL,			/* rmdir */
	NULL,			/* mknod */
	NULL,			/* rename */
	NULL,			/* readlink */
	NULL,			/* follow_link */
	NULL,			/* bmap */
	NULL,			/* truncate */
	NULL			/* permission */
};

static int proc_lookupfd(struct inode * dir,const char * name, int len,
	struct inode ** result)
{
	unsigned int ino, pid, fd, c;
	struct task_struct * p;
	struct super_block * sb;
	int i;

	*result = NULL;
	ino = dir->i_ino;
	pid = ino >> 16;
	ino &= 0x0000ffff;
	ino -= 7;
	if (!dir)
		return -ENOENT;
	sb = dir->i_sb;
	if (!pid || ino > 1 || !S_ISDIR(dir->i_mode)) {
		iput(dir);
		return -ENOENT;
	}
	if (!len || (name[0] == '.' && (len == 1 ||
	    (name[1] == '.' && len == 2)))) {
		if (len < 2) {
			*result = dir;
			return 0;
		}
		if (!(*result = iget(sb,(pid << 16)+2))) {
			iput(dir);
			return -ENOENT;
		}
		iput(dir);
		return 0;
	}
	iput(dir);
	fd = 0;
	while (len-- > 0) {
		c = *name - '0';
		name++;
		if (c > 9) {
			fd = 0xfffff;
			break;
		}
		fd *= 10;
		fd += c;
		if (fd & 0xffff0000) {
			fd = 0xfffff;
			break;
		}
	}
	for (i = 0 ; i < NR_TASKS ; i++)
		if ((p = task[i]) && p->pid == pid)
			break;
	if (!pid || i >= NR_TASKS)
		return -ENOENT;
	if (!ino) {
		if (fd >= NR_OPEN || !p->filp[fd] || !p->filp[fd]->f_inode)
			return -ENOENT;
		ino = (pid << 16) + 0x100 + fd;
	} else {
		int j = 0;
		struct vm_area_struct * mpnt;
		for (mpnt = p->mmap; mpnt; mpnt = mpnt->vm_next)
			if (mpnt->vm_inode)
				j++;
		if (fd >= j)
			return -ENOENT;
		ino = (pid << 16) + 0x200 + fd;
	}
	if (!(*result = iget(sb,ino)))
		return -ENOENT;
	return 0;
}

static int proc_readfd(struct inode * inode, struct file * filp,
	struct dirent * dirent, int count)
{
	struct task_struct * p;
	unsigned int fd, pid, ino;
	int i,j;

	if (!inode || !S_ISDIR(inode->i_mode))
		return -EBADF;
	ino = inode->i_ino;
	pid = ino >> 16;
	ino &= 0x0000ffff;
	ino -= 7;
	if (ino > 1)
		return 0;
	while (1) {
		fd = filp->f_pos;
		filp->f_pos++;
		if (fd < 2) {
			i = j = fd+1;
			if (!fd)
				fd = inode->i_ino;
			else
				fd = (inode->i_ino & 0xffff0000) | 2;
			put_fs_long(fd, &dirent->d_ino);
			put_fs_word(i, &dirent->d_reclen);
			put_fs_byte(0, i+dirent->d_name);
			while (i--)
				put_fs_byte('.', i+dirent->d_name);
			return j;
		}
		fd -= 2;
		for (i = 1 ; i < NR_TASKS ; i++)
			if ((p = task[i]) && p->pid == pid)
				break;
		if (i >= NR_TASKS)
			return 0;
		if (!ino) {
			if (fd >= NR_OPEN)
				break;
			if (!p->filp[fd] || !p->filp[fd]->f_inode)
				continue;
		} else {
			int j = 0;
			struct vm_area_struct * mpnt;
			for (mpnt = p->mmap ; mpnt ; mpnt = mpnt->vm_next)
				if (mpnt->vm_inode)
					j++;
			if (fd >= j)
				break;
		}
		j = 10;
		i = 1;
		while (fd >= j) {
			j *= 10;
			i++;
		}
		j = i;
		if (!ino)
			ino = (pid << 16) + 0x100 + fd;
		else
			ino = (pid << 16) + 0x200 + fd;
		put_fs_long(ino, &dirent->d_ino);
		put_fs_word(i, &dirent->d_reclen);
		put_fs_byte(0, i+dirent->d_name);
		while (i--) {
			put_fs_byte('0'+(fd % 10), i+dirent->d_name);
			fd /= 10;
		}
		return j;
	}
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香港成人在线视频| 天堂av在线一区| 久久亚洲精品小早川怜子| 欧美日韩国产123区| 欧美午夜精品一区二区蜜桃 | 欧美色图天堂网| 一本色道综合亚洲| 91九色最新地址| 欧美怡红院视频| 精品日韩在线观看| 久久久亚洲综合| 毛片不卡一区二区| 美脚の诱脚舐め脚责91| 久久精品国产久精国产| 国产精品 欧美精品| 成人激情动漫在线观看| 色94色欧美sute亚洲线路二| 欧美三级午夜理伦三级中视频| 欧美一级午夜免费电影| 久久久久久麻豆| 亚洲日韩欧美一区二区在线| 亚洲国产精品一区二区久久恐怖片| 午夜视频在线观看一区二区| 经典三级一区二区| 99精品在线观看视频| 欧美日韩国产美| 国产三级欧美三级| 亚洲精品国产成人久久av盗摄| 亚洲va天堂va国产va久| 麻豆91免费观看| 99久久亚洲一区二区三区青草| 欧美网站大全在线观看| 亚洲国产综合在线| 国产呦萝稀缺另类资源| 色老头久久综合| 精品乱人伦小说| 亚洲综合免费观看高清完整版在线| 美国精品在线观看| 色呦呦国产精品| 日韩精品中文字幕一区| 综合精品久久久| 久久66热偷产精品| 欧美视频自拍偷拍| 国产精品三级电影| 日本欧美久久久久免费播放网| 不卡高清视频专区| 欧美成人女星排名| 一区av在线播放| 国产jizzjizz一区二区| 日韩一区二区免费高清| 一区二区三区精品在线| 国产一区二区伦理片| 中文字幕在线观看不卡| 免费看欧美女人艹b| 欧美色中文字幕| 中文字幕亚洲精品在线观看| 精品一区二区三区久久| 91精品国产手机| 亚洲最大色网站| 色噜噜狠狠色综合中国| 国产日韩视频一区二区三区| 美女视频黄免费的久久| 欧美日韩国产一级| 亚洲一区二区在线观看视频| a级精品国产片在线观看| 国产日韩欧美制服另类| 国产一区在线观看视频| 欧美精品一区男女天堂| 日日欢夜夜爽一区| 91精品国产欧美一区二区成人| 亚洲影院久久精品| 欧洲精品一区二区三区在线观看| 亚洲欧美aⅴ...| 一本在线高清不卡dvd| 亚洲黄一区二区三区| 91麻豆国产福利精品| 亚洲码国产岛国毛片在线| 99精品热视频| 樱花草国产18久久久久| 欧美亚洲免费在线一区| 午夜精品一区二区三区电影天堂 | 久久男人中文字幕资源站| 捆绑调教一区二区三区| 日韩女优制服丝袜电影| 久久精品国产99国产精品| 久久综合久久99| www.日韩大片| 亚洲综合精品自拍| 91精品国产综合久久久蜜臀图片| 美国毛片一区二区| 中文字幕av不卡| 色综合久久久久综合| 亚洲一二三四在线| 日韩一二三区不卡| 国产91在线|亚洲| 综合久久久久综合| 欧美精品电影在线播放| 精品中文字幕一区二区| 国产精品色一区二区三区| 日本精品一区二区三区四区的功能| 亚洲一区在线视频| 精品久久久久久综合日本欧美| 国产精品小仙女| 亚洲永久免费av| 久久综合中文字幕| 99这里只有久久精品视频| 一区二区三区日韩欧美精品| 欧美精品三级在线观看| 成人三级在线视频| 亚洲电影第三页| 欧美激情一区在线观看| 精品视频在线免费观看| 欧美午夜精品电影| 久久激情五月婷婷| 亚洲欧美日韩国产另类专区| 欧美一区二区三区啪啪| 9l国产精品久久久久麻豆| 日本一区中文字幕| 国产精品久久精品日日| 日韩午夜精品视频| 在线看国产一区| 国产suv一区二区三区88区| 日韩av电影一区| 亚洲自拍另类综合| 国产精品天美传媒沈樵| 日韩欧美国产精品| 欧美三级蜜桃2在线观看| 成人av在线网| 国产一区 二区 三区一级| 日本特黄久久久高潮| 尤物av一区二区| 亚洲欧美日韩国产一区二区三区| 国产亚洲婷婷免费| 日韩免费观看高清完整版| 欧美日韩精品欧美日韩精品| 97精品国产97久久久久久久久久久久| 九九九精品视频| 视频一区在线视频| 午夜电影久久久| 亚洲国产日韩a在线播放性色| **性色生活片久久毛片| 国产精品无遮挡| 久久久不卡网国产精品二区 | 亚洲国产精华液网站w| 日韩一区二区免费在线观看| 777色狠狠一区二区三区| 欧美无砖专区一中文字| 91福利精品第一导航| 欧洲色大大久久| 日本韩国一区二区| 日本精品免费观看高清观看| 92国产精品观看| 日本精品一区二区三区高清 | 久久国内精品视频| 久久精品国产99国产| 卡一卡二国产精品| 日本美女一区二区三区| 日韩精品电影在线| 美国精品在线观看| 国产一区二区三区高清播放| 国产真实乱偷精品视频免| 国产精品资源网| www.视频一区| 在线观看区一区二| 欧美日韩另类一区| 日韩视频一区二区三区| 国产人成亚洲第一网站在线播放 | 91麻豆免费视频| 欧美亚洲国产一区在线观看网站 | 国产麻豆精品theporn| 国产精品一区三区| 91蜜桃婷婷狠狠久久综合9色| 在线免费精品视频| 日韩免费一区二区三区在线播放| 久久综合五月天婷婷伊人| 欧美国产日韩a欧美在线观看 | 精品国一区二区三区| 国产欧美日韩综合| 亚洲精品欧美激情| 老色鬼精品视频在线观看播放| 成人天堂资源www在线| 在线观看日韩国产| 亚洲一区日韩精品中文字幕| 日韩激情视频在线观看| 国产一区二区看久久| 在线亚洲一区观看| 欧美变态tickling挠脚心| 国产精品成人在线观看| 三级精品在线观看| 成人免费黄色大片| 91精品国产欧美一区二区18| 国产色综合久久| 图片区小说区国产精品视频| 国产69精品一区二区亚洲孕妇| 欧美影视一区在线| 久久精品在这里| 午夜在线电影亚洲一区| 不卡视频一二三四| 精品少妇一区二区三区在线视频 | 欧美精品粉嫩高潮一区二区|