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

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

?? fd.c

?? Linux 1.0 內核C源代碼 Linux最早版本代碼 由Linus Torvalds親自書寫的
?? 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一区二区三区免费野_久草精品视频
99久久伊人网影院| 日韩成人dvd| 日本一区二区免费在线| 日韩精品资源二区在线| 精品国产91久久久久久久妲己| 欧美精品国产精品| 91精品国产高清一区二区三区 | 欧美三级电影网站| 色av综合在线| 欧美精品国产精品| 精品国产一区二区精华| 久久久久久免费| 中文字幕一区二区三区四区不卡| 中文字幕日韩欧美一区二区三区| 亚洲欧美另类久久久精品2019| 一区二区三区波多野结衣在线观看| 亚洲国产另类av| 蜜臀久久99精品久久久久久9| 国产一区二区三区黄视频 | 天堂一区二区在线免费观看| 日韩精品每日更新| 不卡一区二区三区四区| www.成人在线| 欧美久久久久久久久| 日韩视频中午一区| 国产精品免费aⅴ片在线观看| 综合中文字幕亚洲| 日韩福利视频网| 国产成人精品1024| 欧美视频自拍偷拍| 久久久精品2019中文字幕之3| 亚洲婷婷综合色高清在线| 午夜激情一区二区三区| 国产激情视频一区二区三区欧美| 色天使色偷偷av一区二区| 日韩一区二区在线免费观看| 久久精品人人做人人综合| 一区二区三区日韩欧美精品| 精品一区二区在线观看| 色天天综合色天天久久| 国产欧美中文在线| 爽好久久久欧美精品| 成人午夜视频在线观看| 日韩午夜在线观看视频| 亚洲精品国产a久久久久久| 精品一区二区三区在线播放视频| 色噜噜狠狠色综合中国| 国产亚洲自拍一区| 免费看日韩a级影片| 色悠悠久久综合| 亚洲国产精品v| 久久不见久久见免费视频1| 色爱区综合激月婷婷| 国产精品久久夜| 国产凹凸在线观看一区二区| 欧美一区二区播放| 亚洲国产精品自拍| 91麻豆国产香蕉久久精品| 国产亚洲欧美激情| 麻豆精品久久久| 欧美一区二区三区在线观看| 艳妇臀荡乳欲伦亚洲一区| 成人av资源站| 国产精品无人区| 高清不卡在线观看| 久久久久久免费毛片精品| 国内欧美视频一区二区| 精品国产91亚洲一区二区三区婷婷| 奇米色777欧美一区二区| 欧美色视频一区| 亚洲与欧洲av电影| 91电影在线观看| 一区二区三区视频在线观看| 在线观看亚洲a| 午夜婷婷国产麻豆精品| 在线观看欧美日本| 亚洲高清免费视频| 欧美日韩精品二区第二页| 亚洲小少妇裸体bbw| 欧美三级在线看| 亚洲123区在线观看| 久久久久一区二区三区四区| 国产精品小仙女| 中文字幕久久午夜不卡| 91色在线porny| 亚洲综合色丁香婷婷六月图片| 欧美日韩色一区| 蜜臀av一区二区| 欧美激情综合在线| 91亚洲资源网| 五月婷婷综合网| 久久天天做天天爱综合色| 成人av在线播放网址| 亚洲视频在线观看一区| 欧美日韩国产一区| 国产在线麻豆精品观看| 国产精品久久久久一区| 欧美日韩在线综合| 极品美女销魂一区二区三区免费 | 色老汉一区二区三区| 亚洲已满18点击进入久久| 日韩一二三四区| 成人av网站在线观看免费| 亚洲国产欧美在线人成| 日韩欧美在线观看一区二区三区| 国产成a人亚洲| 亚洲国产成人tv| 国产亚洲精品福利| 欧美日韩五月天| 成人永久看片免费视频天堂| 一区二区三区在线影院| 欧美成人国产一区二区| 色综合网站在线| 国内成人精品2018免费看| 亚洲欧美日韩国产综合| 欧美成人性福生活免费看| 99久久99久久免费精品蜜臀| 久久99精品视频| 一区二区三区不卡视频| 亚洲国产精品99久久久久久久久| 欧美另类高清zo欧美| 波多野洁衣一区| 极品美女销魂一区二区三区 | 亚洲一区二区影院| 久久男人中文字幕资源站| 欧美在线短视频| 波多野结衣91| 国产寡妇亲子伦一区二区| 麻豆精品一区二区综合av| 亚洲永久免费视频| 亚洲欧洲国产专区| 欧美激情综合五月色丁香| 久久在线观看免费| 日韩欧美黄色影院| 欧美人牲a欧美精品| 欧美亚日韩国产aⅴ精品中极品| 懂色av中文字幕一区二区三区 | 婷婷综合五月天| 亚洲人成影院在线观看| 亚欧色一区w666天堂| 中文字幕日韩精品一区| 国产精品美女久久久久久2018| 久久影院午夜论| 久久综合九色综合97婷婷女人| 欧美一区二区三区的| 欧美日韩国产影片| 欧美一区在线视频| 91精品欧美综合在线观看最新| 欧美日韩精品一区二区三区| 91成人网在线| 欧美日韩高清一区| 欧美欧美午夜aⅴ在线观看| 欧美日韩国产首页在线观看| 在线免费亚洲电影| 欧美日韩一区不卡| 欧美日韩亚洲综合在线 | 国产精品久久久久久久久快鸭 | 99久久久精品| 在线看国产日韩| 欧美精品日日鲁夜夜添| 欧美成人精品1314www| 精品国产乱码久久久久久老虎| 亚洲精品一区二区三区蜜桃下载 | 日本中文字幕一区二区视频| 爽爽淫人综合网网站| 久久精品国产精品亚洲红杏| 国产一区二区美女诱惑| 成人深夜在线观看| 色偷偷88欧美精品久久久| 欧美日韩精品福利| 2020国产精品| 日韩久久一区二区| 午夜日韩在线电影| 国产自产视频一区二区三区| 成人妖精视频yjsp地址| 色激情天天射综合网| 欧美一区二区精美| 国产精品国产馆在线真实露脸| 亚洲一区中文在线| 国模一区二区三区白浆| 色综合夜色一区| 精品久久久久久久久久久院品网 | 日韩黄色一级片| 国产激情视频一区二区在线观看| 91精品福利视频| 久久众筹精品私拍模特| 夜夜精品视频一区二区| 美女脱光内衣内裤视频久久影院| 高清国产一区二区| 91麻豆精品国产| 亚洲人成网站精品片在线观看| 日本在线不卡一区| 不卡的av电影在线观看| 日韩欧美一卡二卡| 一区二区高清视频在线观看| 国产综合久久久久影院| 欧美剧在线免费观看网站 | 91精品国产乱码| 亚洲狼人国产精品| 国产精品一卡二卡在线观看|