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

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

?? linear.c

?? 講述linux的初始化過程
?? C
字號:
/*   linear.c : Multiple Devices driver for Linux              Copyright (C) 1994-96 Marc ZYNGIER	      <zyngier@ufr-info-p7.ibp.fr> or	      <maz@gloups.fdn.fr>   Linear mode management functions.   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2, or (at your option)   any later version.      You should have received a copy of the GNU General Public License   (for example /usr/src/linux/COPYING); if not, write to the Free   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */#include <linux/module.h>#include <linux/raid/md.h>#include <linux/malloc.h>#include <linux/raid/linear.h>#define MAJOR_NR MD_MAJOR#define MD_DRIVER#define MD_PERSONALITYstatic int linear_run (mddev_t *mddev){	linear_conf_t *conf;	struct linear_hash *table;	mdk_rdev_t *rdev;	int size, i, j, nb_zone;	unsigned int curr_offset;	MOD_INC_USE_COUNT;	conf = kmalloc (sizeof (*conf), GFP_KERNEL);	if (!conf)		goto out;	mddev->private = conf;	if (md_check_ordering(mddev)) {		printk("linear: disks are not ordered, aborting!\n");		goto out;	}	/*	 * Find the smallest device.	 */	conf->smallest = NULL;	curr_offset = 0;	ITERATE_RDEV_ORDERED(mddev,rdev,j) {		dev_info_t *disk = conf->disks + j;		disk->dev = rdev->dev;		disk->size = rdev->size;		disk->offset = curr_offset;		curr_offset += disk->size;		if (!conf->smallest || (disk->size < conf->smallest->size))			conf->smallest = disk;	}	nb_zone = conf->nr_zones =		md_size[mdidx(mddev)] / conf->smallest->size +		((md_size[mdidx(mddev)] % conf->smallest->size) ? 1 : 0);  	conf->hash_table = kmalloc (sizeof (struct linear_hash) * nb_zone,					GFP_KERNEL);	if (!conf->hash_table)		goto out;	/*	 * Here we generate the linear hash table	 */	table = conf->hash_table;	i = 0;	size = 0;	for (j = 0; j < mddev->nb_dev; j++) {		dev_info_t *disk = conf->disks + j;		if (size < 0) {			table[-1].dev1 = disk;		}		size += disk->size;		while (size>0) {			table->dev0 = disk;			table->dev1 = NULL;			size -= conf->smallest->size;			table++;		}	}	if (table-conf->hash_table != nb_zone)		BUG();	return 0;out:	if (conf)		kfree(conf);	MOD_DEC_USE_COUNT;	return 1;}static int linear_stop (mddev_t *mddev){	linear_conf_t *conf = mddev_to_conf(mddev);  	kfree(conf->hash_table);	kfree(conf);	MOD_DEC_USE_COUNT;	return 0;}static int linear_make_request (mddev_t *mddev,			int rw, struct buffer_head * bh){        linear_conf_t *conf = mddev_to_conf(mddev);        struct linear_hash *hash;        dev_info_t *tmp_dev;        long block;	block = bh->b_rsector >> 1;	hash = conf->hash_table + (block / conf->smallest->size);  	if (block >= (hash->dev0->size + hash->dev0->offset)) {		if (!hash->dev1) {			printk ("linear_make_request : hash->dev1==NULL for block %ld\n",						block);			buffer_IO_error(bh);			return 0;		}		tmp_dev = hash->dev1;	} else		tmp_dev = hash->dev0;    	if (block >= (tmp_dev->size + tmp_dev->offset)				|| block < tmp_dev->offset) {		printk ("linear_make_request: Block %ld out of bounds on dev %s size %ld offset %ld\n", block, kdevname(tmp_dev->dev), tmp_dev->size, tmp_dev->offset);		buffer_IO_error(bh);		return 0;	}	bh->b_rdev = tmp_dev->dev;	bh->b_rsector = bh->b_rsector - (tmp_dev->offset << 1);	return 1;}static int linear_status (char *page, mddev_t *mddev){	int sz = 0;#undef MD_DEBUG#ifdef MD_DEBUG	int j;	linear_conf_t *conf = mddev_to_conf(mddev);  	sz += sprintf(page+sz, "      ");	for (j = 0; j < conf->nr_zones; j++)	{		sz += sprintf(page+sz, "[%s",			partition_name(conf->hash_table[j].dev0->dev));		if (conf->hash_table[j].dev1)			sz += sprintf(page+sz, "/%s] ",			  partition_name(conf->hash_table[j].dev1->dev));		else			sz += sprintf(page+sz, "] ");	}	sz += sprintf(page+sz, "\n");#endif	sz += sprintf(page+sz, " %dk rounding", mddev->param.chunk_size/1024);	return sz;}static mdk_personality_t linear_personality={	name:		"linear",	make_request:	linear_make_request,	run:		linear_run,	stop:		linear_stop,	status:		linear_status,};static int md__init linear_init (void){	return register_md_personality (LINEAR, &linear_personality);}static void linear_exit (void){	unregister_md_personality (LINEAR);}module_init(linear_init);module_exit(linear_exit);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜美腿亚洲色图| 国产aⅴ精品一区二区三区色成熟| 精品国产sm最大网站| 成人黄色网址在线观看| 奇米精品一区二区三区在线观看一| 中文一区一区三区高中清不卡| 欧美一区二区三区在线电影| 97se亚洲国产综合自在线不卡| 国产一区激情在线| 美日韩一区二区| 亚洲福利国产精品| ...av二区三区久久精品| 久久青草欧美一区二区三区| 91精品久久久久久久久99蜜臂| 色综合中文字幕| 成人av在线资源网站| 国产露脸91国语对白| 日韩精品福利网| 亚洲综合在线电影| 亚洲欧美日韩电影| 国产精品国产自产拍高清av| 久久久久久久国产精品影院| 精品91自产拍在线观看一区| 91精品国产全国免费观看| 欧美日韩在线精品一区二区三区激情 | 亚洲伦理在线精品| 中文幕一区二区三区久久蜜桃| 日韩免费看的电影| 欧美精品久久天天躁| 91精品1区2区| 色丁香久综合在线久综合在线观看| 成人精品视频一区二区三区 | 成人免费精品视频| 国产精品一二三| 国产伦精品一区二区三区免费| 精品制服美女丁香| 国产一区二区三区免费播放 | 91免费国产在线观看| a在线播放不卡| 91小视频免费看| 99re成人精品视频| 一道本成人在线| 精品视频1区2区| 欧美日本韩国一区二区三区视频 | 国产精品不卡在线| 蜜桃久久久久久久| 日韩av中文字幕一区二区三区| 五月婷婷激情综合| 美女视频黄频大全不卡视频在线播放 | 一级女性全黄久久生活片免费| 亚洲综合在线电影| 天天综合天天综合色| 麻豆91精品91久久久的内涵| 极品少妇xxxx精品少妇偷拍| 国产成人丝袜美腿| 91视频91自| 精品视频一区 二区 三区| 欧美一区二区播放| 久久久精品一品道一区| 中文字幕中文字幕中文字幕亚洲无线| 中文字幕精品一区二区三区精品| |精品福利一区二区三区| 亚洲高清免费在线| 九色综合狠狠综合久久| 国产成人午夜片在线观看高清观看| 不卡大黄网站免费看| 日本道色综合久久| 日韩欧美一卡二卡| 亚洲国产精品二十页| 精品福利av导航| 国产精品久久99| 亚洲国产精品自拍| 九九视频精品免费| 成人一区二区三区在线观看| 99久精品国产| 色香色香欲天天天影视综合网| 色综合中文综合网| 一区二区三区自拍| 人人狠狠综合久久亚洲| 国产精品中文有码| 欧美中文字幕一二三区视频| 日韩欧美不卡一区| 亚洲三级免费观看| 极品少妇一区二区三区精品视频| 91视频一区二区| 日韩欧美的一区二区| 亚洲欧美一区二区三区孕妇| 美女久久久精品| 99免费精品在线观看| 欧美一区二区三区在线看| 国产精品免费视频一区| 天天色图综合网| 成人激情小说网站| 精品三级av在线| 一区二区三区中文字幕精品精品 | 成人午夜免费视频| 欧美一二区视频| 亚洲人成精品久久久久| 国产中文一区二区三区| 911精品国产一区二区在线| 亚洲天堂久久久久久久| 国产精品资源在线| 日韩欧美你懂的| 亚洲日本中文字幕区| 在线不卡一区二区| 中文字幕av一区二区三区| 久久99精品国产.久久久久| 欧美中文字幕一区二区三区| 国产精品久久久久久福利一牛影视 | 在线电影欧美成精品| 亚洲精品午夜久久久| 成人福利视频网站| 国产亚洲一区二区三区在线观看| 水蜜桃久久夜色精品一区的特点| 91蜜桃免费观看视频| 国产女主播视频一区二区| 久久99国产乱子伦精品免费| 欧美一区在线视频| 亚洲午夜激情av| 欧美吻胸吃奶大尺度电影| 亚洲精品国产无天堂网2021| 本田岬高潮一区二区三区| 国产三级一区二区| 国产成人免费在线观看不卡| 久久久国产综合精品女国产盗摄| 久久国产尿小便嘘嘘尿| 日韩一区二区在线观看视频播放| 青娱乐精品在线视频| 欧美伦理影视网| 日本不卡免费在线视频| 日韩一区二区精品葵司在线| 青青草原综合久久大伊人精品优势| 777奇米成人网| 免费观看成人鲁鲁鲁鲁鲁视频| 4438x亚洲最大成人网| 日韩av一级电影| 日韩精品综合一本久道在线视频| 免费成人你懂的| 久久久久国色av免费看影院| 国产一区二区看久久| 欧美激情一区二区三区四区| 成人黄页在线观看| 亚洲欧美另类综合偷拍| 日本道免费精品一区二区三区| 亚洲午夜一区二区三区| 欧美色网一区二区| 日本午夜一区二区| 日韩亚洲欧美在线观看| 国产在线精品不卡| 国产日产亚洲精品系列| 成人av影视在线观看| 亚洲免费在线视频| 欧美日韩高清一区二区不卡| 亚洲va天堂va国产va久| 精品乱人伦小说| 成人国产视频在线观看| 一个色妞综合视频在线观看| 337p亚洲精品色噜噜噜| 国内精品久久久久影院一蜜桃| 国产日韩三级在线| 一本大道久久a久久综合| 五月综合激情日本mⅴ| 精品国产乱码久久久久久久久| 懂色av一区二区三区免费看| 一区二区三区欧美| 日韩三区在线观看| 成人精品一区二区三区四区 | 成人在线综合网| 亚洲最新视频在线观看| 精品国产凹凸成av人导航| www.成人网.com| 日本中文字幕一区二区有限公司| 国产网红主播福利一区二区| 国产精品理论在线观看| 欧美日韩亚洲国产综合| 国产在线精品一区二区三区不卡| 亚洲精品中文在线| 欧美精品一区视频| 欧美天堂亚洲电影院在线播放| 国产精品伊人色| 午夜精品123| 一区在线中文字幕| 日韩免费高清av| 97久久久精品综合88久久| 美女性感视频久久| 亚洲欧美日韩综合aⅴ视频| 欧美精品久久一区二区三区| 不卡欧美aaaaa| 国产一区二区在线免费观看| 亚洲自拍偷拍av| 欧美极品少妇xxxxⅹ高跟鞋| 欧美乱熟臀69xxxxxx| 99热这里都是精品| 国产毛片精品一区| 日本欧美一区二区三区| 亚洲免费视频中文字幕| 久久久国产一区二区三区四区小说| 欧美三区在线观看| 97精品国产97久久久久久久久久久久 | 亚洲午夜精品一区二区三区他趣|