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

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

?? ll_rw_blk.c

?? linux 0.11源代碼
?? C
字號:
/* *  linux/kernel/blk_dev/ll_rw.c * * (C) 1991 Linus Torvalds *//* * This handles all read/write requests to block devices */#include <errno.h>#include <linux/sched.h>#include <linux/kernel.h>#include <asm/system.h>#include "blk.h"/* * The request-struct contains all necessary data * to load a nr of sectors into memory */struct request request[NR_REQUEST];/* * used to wait on when there are no free requests */struct task_struct * wait_for_request = NULL;/* blk_dev_struct is: *	do_request-address *	next-request */struct blk_dev_struct blk_dev[NR_BLK_DEV] = {	{ NULL, NULL },		/* no_dev */	{ NULL, NULL },		/* dev mem */	{ NULL, NULL },		/* dev fd */	{ NULL, NULL },		/* dev hd */	{ NULL, NULL },		/* dev ttyx */	{ NULL, NULL },		/* dev tty */	{ NULL, NULL }		/* dev lp */};static inline void lock_buffer(struct buffer_head * bh){	cli();	while (bh->b_lock)		sleep_on(&bh->b_wait);	bh->b_lock=1;	sti();}static inline void unlock_buffer(struct buffer_head * bh){	if (!bh->b_lock)		printk("ll_rw_block.c: buffer not locked\n\r");	bh->b_lock = 0;	wake_up(&bh->b_wait);}/* * add-request adds a request to the linked list. * It disables interrupts so that it can muck with the * request-lists in peace. */static void add_request(struct blk_dev_struct * dev, struct request * req){	struct request * tmp;	req->next = NULL;	cli();	if (req->bh)		req->bh->b_dirt = 0;	if (!(tmp = dev->current_request)) {		dev->current_request = req;		sti();		(dev->request_fn)();		return;	}	for ( ; tmp->next ; tmp=tmp->next)		if ((IN_ORDER(tmp,req) ||		    !IN_ORDER(tmp,tmp->next)) &&		    IN_ORDER(req,tmp->next))			break;	req->next=tmp->next;	tmp->next=req;	sti();}static void make_request(int major,int rw, struct buffer_head * bh){	struct request * req;	int rw_ahead;/* WRITEA/READA is special case - it is not really needed, so if the *//* buffer is locked, we just forget about it, else it's a normal read */	if (rw_ahead = (rw == READA || rw == WRITEA)) {		if (bh->b_lock)			return;		if (rw == READA)			rw = READ;		else			rw = WRITE;	}	if (rw!=READ && rw!=WRITE)		panic("Bad block dev command, must be R/W/RA/WA");	lock_buffer(bh);	if ((rw == WRITE && !bh->b_dirt) || (rw == READ && bh->b_uptodate)) {		unlock_buffer(bh);		return;	}repeat:/* we don't allow the write-requests to fill up the queue completely: * we want some room for reads: they take precedence. The last third * of the requests are only for reads. */	if (rw == READ)		req = request+NR_REQUEST;	else		req = request+((NR_REQUEST*2)/3);/* find an empty request */	while (--req >= request)		if (req->dev<0)			break;/* if none found, sleep on new requests: check for rw_ahead */	if (req < request) {		if (rw_ahead) {			unlock_buffer(bh);			return;		}		sleep_on(&wait_for_request);		goto repeat;	}/* fill up the request-info, and add it to the queue */	req->dev = bh->b_dev;	req->cmd = rw;	req->errors=0;	req->sector = bh->b_blocknr<<1;	req->nr_sectors = 2;	req->buffer = bh->b_data;	req->waiting = NULL;	req->bh = bh;	req->next = NULL;	add_request(major+blk_dev,req);}void ll_rw_block(int rw, struct buffer_head * bh){	unsigned int major;	if ((major=MAJOR(bh->b_dev)) >= NR_BLK_DEV ||	!(blk_dev[major].request_fn)) {		printk("Trying to read nonexistent block-device\n\r");		return;	}	make_request(major,rw,bh);}void blk_dev_init(void){	int i;	for (i=0 ; i<NR_REQUEST ; i++) {		request[i].dev = -1;		request[i].next = NULL;	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合色狠狠天天综合色| 日韩av一级电影| 成人污污视频在线观看| 26uuu精品一区二区三区四区在线| 日韩电影一二三区| 91精品国产美女浴室洗澡无遮挡| 午夜精品久久一牛影视| 在线不卡一区二区| 全部av―极品视觉盛宴亚洲| 精品国产乱码久久久久久1区2区| 国产精品一品二品| 日韩伦理av电影| 精品视频在线视频| 久久国产婷婷国产香蕉| 久久精品无码一区二区三区| 99r精品视频| 天堂精品中文字幕在线| 精品国产亚洲在线| 色综合av在线| 日韩电影在线观看电影| 国产农村妇女精品| 欧美在线制服丝袜| 美洲天堂一区二卡三卡四卡视频| 国产欧美一区二区三区在线老狼| 91视频在线观看| 日本中文字幕一区二区有限公司| 久久影院午夜论| 色婷婷综合久久久中文字幕| 日本免费新一区视频| 久久精品男人的天堂| 91高清在线观看| 另类小说一区二区三区| 亚洲日本在线天堂| 精品欧美一区二区在线观看| 99久久久无码国产精品| 美女免费视频一区| 亚洲欧美另类在线| 2023国产一二三区日本精品2022| 色综合久久久久综合99| 精品在线播放免费| 亚洲综合激情另类小说区| 精品国产一区二区在线观看| 欧洲一区二区av| 国产a级毛片一区| 日韩精品欧美成人高清一区二区| 欧美国产一区在线| 欧美一区二区在线观看| 95精品视频在线| 国产一区二区三区日韩| 日韩精品国产欧美| 亚洲乱码一区二区三区在线观看| 亚洲精品一线二线三线无人区| 欧美午夜不卡在线观看免费| 不卡av在线免费观看| 久久av老司机精品网站导航| 亚洲综合丁香婷婷六月香| 国产精品免费免费| 久久蜜桃香蕉精品一区二区三区| 欧美日本视频在线| 91福利视频在线| av一二三不卡影片| 国产黑丝在线一区二区三区| 免费成人在线网站| 日韩av网站在线观看| 亚洲成va人在线观看| 亚洲乱码精品一二三四区日韩在线| 久久精品视频免费观看| 欧美成人性战久久| 欧美一区二区三区视频免费| 欧美日韩国产123区| 日本国产一区二区| 91麻豆免费看| 色香蕉成人二区免费| 成人高清免费观看| 春色校园综合激情亚洲| 国产麻豆一精品一av一免费| 日韩美女视频19| 欧美一卡2卡3卡4卡| 欧美电影一区二区| 在线观看91视频| 91美女片黄在线观看91美女| 福利一区在线观看| 久久se精品一区二区| 亚洲成av人片在www色猫咪| 一区二区三区 在线观看视频| 国产精品久久午夜| 26uuu另类欧美亚洲曰本| 欧美成人a∨高清免费观看| 欧美男人的天堂一二区| 在线观看中文字幕不卡| 91在线视频免费91| 国产99久久久久| 丁香激情综合五月| 风间由美一区二区av101| 国内偷窥港台综合视频在线播放| 蜜臀av在线播放一区二区三区| 亚洲国产精品自拍| 日韩专区在线视频| 免费欧美高清视频| 卡一卡二国产精品| 另类小说一区二区三区| 久99久精品视频免费观看| 蜜臀av一级做a爰片久久| 日本成人在线不卡视频| 国产一区二区三区综合| 粉嫩aⅴ一区二区三区四区| av在线播放成人| 91激情在线视频| 在线成人高清不卡| 精品裸体舞一区二区三区| 欧美男人的天堂一二区| 久久精品视频一区| 1024亚洲合集| 亚洲一区二区在线播放相泽 | 中文字幕欧美三区| 国产精品国产三级国产aⅴ入口 | 欧美群妇大交群的观看方式| 欧美一级片在线| 久久综合狠狠综合久久综合88| 麻豆免费看一区二区三区| 激情五月婷婷综合网| 国产成人免费视频网站| 一本色道综合亚洲| 99视频有精品| 6080yy午夜一二三区久久| 久久久久国产精品人| 国产欧美精品一区aⅴ影院| 成人免费视频在线观看| www久久精品| 亚洲激情图片一区| 琪琪一区二区三区| 成人sese在线| 在线播放欧美女士性生活| 欧美一区二区三区四区高清| 日韩欧美中文字幕制服| 久久综合中文字幕| 亚洲日本欧美天堂| 老司机午夜精品| 成人精品国产一区二区4080| 欧美日韩一区三区| 日韩欧美一级精品久久| 欧美激情一区二区三区| 免费人成精品欧美精品| 99免费精品视频| 26uuu成人网一区二区三区| 亚洲综合男人的天堂| 国产福利一区二区三区视频 | 亚洲小说春色综合另类电影| 天天影视涩香欲综合网 | 91猫先生在线| 欧美va在线播放| 亚洲国产综合在线| 成人精品小蝌蚪| 日韩精品一区二区三区老鸭窝 | 丁香婷婷深情五月亚洲| 欧美性色aⅴ视频一区日韩精品| 久久久国产精品午夜一区ai换脸| 亚洲动漫第一页| 色综合久久久久综合99| 日韩一区二区在线看| 三级成人在线视频| 色av一区二区| 国产精品久久久久久户外露出 | 91视视频在线直接观看在线看网页在线看 | 国产毛片一区二区| 欧美一区二区三区公司| 一区二区三区小说| 国产精品一区二区久久精品爱涩| 欧美日韩五月天| **网站欧美大片在线观看| 国产成人午夜高潮毛片| 欧美精品免费视频| 一区二区视频免费在线观看| 成人av在线资源网站| 久久伊人中文字幕| 日韩电影在线看| 久久久综合视频| 狠狠色伊人亚洲综合成人| 日韩一区二区三区四区五区六区| 亚洲第一狼人社区| 99精品视频在线免费观看| 中国色在线观看另类| 免费在线一区观看| 精品视频一区三区九区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产成人精品影院| 国产精品乱码妇女bbbb| 精品亚洲国内自在自线福利| www成人在线观看| 美腿丝袜亚洲三区| 日韩欧美高清一区| 国产精品小仙女| 中文字幕av免费专区久久| 国产mv日韩mv欧美| 国产精品乱码一区二区三区软件 | 日本中文在线一区| 精品免费一区二区三区| 美女视频一区二区| 69久久夜色精品国产69蝌蚪网| 亚洲国产日韩精品|