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

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

?? fd.c

?? 不像一般的程序說
?? 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一区二区三区免费野_久草精品视频
9191久久久久久久久久久| 免费的成人av| 亚洲乱码中文字幕综合| 一区二区三区中文在线| 六月丁香综合在线视频| 99久久久久免费精品国产| 色婷婷综合久久久久中文| 欧美女孩性生活视频| 国产精品天美传媒| 亚洲香蕉伊在人在线观| 国产精品一区二区x88av| 欧美私人免费视频| 久久九九99视频| 五月激情丁香一区二区三区| 国产福利精品导航| 91麻豆精品国产91久久久久| 全国精品久久少妇| 久久久亚洲综合| 日韩国产成人精品| 欧美日韩高清不卡| 国产在线一区观看| 日韩一区二区三免费高清| 亚洲欧美偷拍三级| 国产精品1区2区| 亚洲精品伦理在线| 精品国产人成亚洲区| 丝袜诱惑制服诱惑色一区在线观看| 成人18视频在线播放| 久久精品水蜜桃av综合天堂| 色94色欧美sute亚洲线路一久| 国产精品美日韩| 欧美日韩一区国产| 亚洲成人久久影院| 777午夜精品免费视频| 国产激情视频一区二区三区欧美 | 亚洲成av人片在线观看无码| 欧美va亚洲va香蕉在线| 青草av.久久免费一区| 国产精品进线69影院| 99久久久无码国产精品| 老汉av免费一区二区三区| 亚洲婷婷综合色高清在线| 色女孩综合影院| 国产乱码精品一区二区三区五月婷| 亚洲综合一区二区精品导航| 欧美三级中文字幕在线观看| 丁香六月久久综合狠狠色| 国产精品美女久久久久久2018| 欧美丰满美乳xxx高潮www| 蜜桃久久av一区| 久久综合色之久久综合| 丁香网亚洲国际| 亚洲蜜桃精久久久久久久| 久久无码av三级| 91麻豆精品国产91久久久使用方法| av亚洲精华国产精华| 洋洋av久久久久久久一区| 国产欧美日韩另类一区| 日本黄色一区二区| 成人av午夜电影| 国产在线一区二区| 日韩二区三区在线观看| 亚洲大片在线观看| 一区二区三区资源| 亚洲欧美日韩一区二区| 国产精品免费看片| 欧美激情一区二区三区蜜桃视频| 91老司机福利 在线| 亚洲不卡av一区二区三区| 亚洲免费观看在线观看| 国产精品情趣视频| 国产精品视频一二三| 国产欧美一区二区精品忘忧草 | 亚洲久本草在线中文字幕| 久久久久久久性| 国产日韩亚洲欧美综合| 2024国产精品| 26uuu亚洲| 精品88久久久久88久久久| 精品va天堂亚洲国产| 337p日本欧洲亚洲大胆色噜噜| 日韩一卡二卡三卡四卡| 精品欧美乱码久久久久久| 精品日韩在线观看| 久久午夜老司机| 国产亚洲一区字幕| 国产精品久久久久久妇女6080 | 亚洲精品一区二区三区蜜桃下载 | 一区二区三区日本| 亚洲一区二区av电影| 香蕉久久一区二区不卡无毒影院| 亚洲一二三级电影| 日韩在线a电影| 国产综合成人久久大片91| 高清在线不卡av| 99精品国产91久久久久久| 91色九色蝌蚪| 欧美日本一区二区在线观看| 日韩欧美国产麻豆| 欧美午夜片在线看| 欧美一区二区三区喷汁尤物| 在线一区二区三区| 3d动漫精品啪啪| 精品捆绑美女sm三区| 国产欧美日韩亚州综合| 亚洲人123区| 日韩和欧美的一区| 国产91精品一区二区| 成人黄色一级视频| 欧美日韩精品专区| 欧美精品一区二区在线播放| 中文字幕一区二区5566日韩| 久久奇米777| 亚洲人成网站色在线观看| 日韩精品一区第一页| 国产福利一区二区三区| 在线观看一区不卡| 色八戒一区二区三区| 日韩精品一区二区三区在线| 国产精品成人免费| 日韩精品五月天| 丁香激情综合国产| 欧美色区777第一页| 久久精品一区二区| 午夜亚洲国产au精品一区二区| 国产伦精品一区二区三区在线观看| 韩国精品一区二区| 欧洲精品中文字幕| 久久久精品tv| 日本在线观看不卡视频| 成人18精品视频| 精品91自产拍在线观看一区| 亚洲精品成人a在线观看| 国产一区二区不卡在线 | 丁香天五香天堂综合| 欧美日韩国产不卡| 亚洲三级电影网站| 韩国精品久久久| 欧美一二三四区在线| 亚洲一区中文在线| 成人小视频免费观看| 精品成人一区二区三区| 亚洲成人激情综合网| 成人激情小说乱人伦| 精品欧美久久久| 奇米色777欧美一区二区| 在线观看91精品国产入口| 国产精品久久免费看| 国产精品夜夜嗨| 久久综合久久鬼色| 久久99在线观看| 日韩欧美国产一区二区在线播放| 一区二区三区国产精品| 色综合天天综合狠狠| 欧美视频一区在线| 亚洲激情校园春色| 日本韩国精品在线| 亚洲欧美另类在线| 成人午夜av在线| 国产欧美一区二区精品性色超碰| 久99久精品视频免费观看| 99久久国产综合精品麻豆| 久久视频一区二区| 国产精选一区二区三区| 久久久五月婷婷| 国产在线国偷精品产拍免费yy| 精品久久一区二区三区| 久久99久久久欧美国产| 日韩亚洲欧美一区| 蜜桃av噜噜一区| 在线不卡a资源高清| 欧美成人欧美edvon| 国产在线视频不卡二| 日韩三区在线观看| 亚洲国产欧美在线| 在线中文字幕一区| 亚洲欧美视频在线观看视频| 国产一区91精品张津瑜| 欧美国产精品一区二区三区| 国产一区二区免费在线| 亚洲精品一区二区三区在线观看| 国产精品亚洲а∨天堂免在线| 精品久久久久香蕉网| 狠狠色丁香久久婷婷综合丁香| 欧美丝袜自拍制服另类| 裸体健美xxxx欧美裸体表演| 91超碰这里只有精品国产| 日韩二区在线观看| 久久久午夜精品理论片中文字幕| 国产揄拍国内精品对白| 久久综合丝袜日本网| 97se亚洲国产综合自在线观| 亚洲色图19p| 欧美日韩专区在线| 一区二区日韩电影| 欧美成人伊人久久综合网| 激情综合色播五月| 国产日韩欧美精品在线| 91成人在线观看喷潮| 亚洲高清不卡在线观看|