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

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

?? ibm.c

?? 《嵌入式系統設計與實例開發實驗教材二源碼》Linux內核移植與編譯實驗
?? C
字號:
/* * File...........: linux/fs/partitions/ibm.c       * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> *                  Volker Sameske <sameske@de.ibm.com> * Bugreports.to..: <Linux390@de.ibm.com> * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 * History of changes (starts July 2000) * 07/10/00 Fixed detection of CMS formatted disks      * 02/13/00 VTOC partition support added */#include <linux/config.h>#include <linux/fs.h>#include <linux/genhd.h>#include <linux/kernel.h>#include <linux/major.h>#include <linux/string.h>#include <linux/blk.h>#include <linux/slab.h>#include <linux/hdreg.h>#include <linux/ioctl.h>#include <linux/version.h>#include <asm/ebcdic.h>#include <asm/uaccess.h>#include <asm/dasd.h>#include "ibm.h"#include "check.h"#include <asm/vtoc.h>typedef enum {  ibm_partition_lnx1 = 0,  ibm_partition_vol1 = 1,  ibm_partition_cms1 = 2,  ibm_partition_none = 3} ibm_partition_t;static char* part_names[] = {   [ibm_partition_lnx1] = "LNX1",			     [ibm_partition_vol1] = "VOL1",			     [ibm_partition_cms1] = "CMS1",			     [ibm_partition_none] = "(nonl)"};static ibm_partition_tget_partition_type ( char * type ){	int i;	for ( i = 0; i < 3; i ++) {		if ( ! strncmp (type,part_names[i],4) ) 			break;	}        return i;}/* * add the two default partitions * - whole dasd * - whole dasd without "offset" */static inline voidtwo_partitions(struct gendisk *hd,	       int minor,	       int blocksize,	       int offset,	       int size) {        add_gd_partition( hd, minor, 0, size);	add_gd_partition( hd, minor+1, offset*blocksize, size-offset*blocksize);}/* * compute the block number from a  * cyl-cyl-head-head structure */static inline intcchh2blk (cchh_t *ptr, struct hd_geometry *geo) {        return ptr->cc * geo->heads * geo->sectors +	       ptr->hh * geo->sectors;}/* * compute the block number from a  * cyl-cyl-head-head-block structure */static inline intcchhb2blk (cchhb_t *ptr, struct hd_geometry *geo) {        return ptr->cc * geo->heads * geo->sectors +		ptr->hh * geo->sectors +		ptr->b;}int ibm_partition(struct gendisk *hd, struct block_device *bdev,		unsigned long first_sector, int first_part_minor){	Sector sect, sect2;	unsigned char *data;	ibm_partition_t partition_type;	char type[5] = {0,};	char name[7] = {0,};	struct hd_geometry *geo;	int blocksize;	int offset=0, size=0, psize=0, counter=0;	unsigned int blk;	format1_label_t f1;	volume_label_t vlabel;	dasd_information_t *info;	kdev_t dev = to_kdev_t(bdev->bd_dev);	if ( first_sector != 0 )		BUG();	info = (struct dasd_information_t *)kmalloc(sizeof(dasd_information_t),						    GFP_KERNEL);	if ( info == NULL )		return 0;	if (ioctl_by_bdev(bdev, BIODASDINFO, (unsigned long)(info)))		return 0;	geo = (struct hd_geometry *)kmalloc(sizeof(struct hd_geometry),					    GFP_KERNEL);	if ( geo == NULL )		return 0;	if (ioctl_by_bdev(bdev, HDIO_GETGEO, (unsigned long)geo);		return 0;	blocksize = hardsect_size[MAJOR(dev)][MINOR(dev)];	if ( blocksize <= 0 ) {		return 0;	}	blocksize >>= 9;		data = read_dev_sector(bdev, inode->label_block*blocksize, &sect);	if (!data)		return 0;	strncpy (type, data, 4);	if ((!info->FBA_layout) && (!strcmp(info->type,"ECKD"))) {		strncpy ( name, data + 8, 6);	} else {		strncpy ( name, data + 4, 6);	}	memcpy (&vlabel, data, sizeof(volume_label_t));	EBCASC(type,4);	EBCASC(name,6);		partition_type = get_partition_type(type);	printk ( "%4s/%8s:",part_names[partition_type],name);	switch ( partition_type ) {	case ibm_partition_cms1:		if (* ((long *)data + 13) != 0) {			/* disk is reserved minidisk */			long *label=(long*)data;			blocksize = label[3]>>9;			offset = label[13];			size = (label[7]-1)*blocksize; 			printk ("(MDSK)");		} else {			offset = (info->label_block + 1);			size = hd -> sizes[MINOR(dev)]<<1;		}		two_partitions( hd, MINOR(dev), blocksize, offset, size);		break;	case ibm_partition_lnx1: 	case ibm_partition_none:		offset = (info->label_block + 1);		size = hd -> sizes[MINOR(dev)]<<1;		two_partitions( hd, MINOR(dev), blocksize, offset, size);		break;	case ibm_partition_vol1: 		size = hd -> sizes[MINOR(dev)]<<1;		add_gd_partition(hd, MINOR(dev), 0, size);				/* get block number and read then first format1 label */		blk = cchhb2blk(&vlabel.vtoc, geo) + 1;		data = read_dev_sector(bdev, blk * blocksize, &sect2);		if (data) {		        memcpy (&f1, data, sizeof(format1_label_t));			put_dev_sector(sect2);		}				while (f1.DS1FMTID == _ascebc['1']) {		        offset = cchh2blk(&f1.DS1EXT1.llimit, geo);			psize  = cchh2blk(&f1.DS1EXT1.ulimit, geo) - 				offset + geo->sectors;						counter++;			add_gd_partition(hd, MINOR(dev) + counter, 					 offset * blocksize,					 psize * blocksize);						blk++;			data = read_dev_sector(bdev, blk * blocksize, &sect2);			if (data) {			        memcpy (&f1, data, sizeof(format1_label_t));				put_dev_sector(sect2);			}		}		break;	default:		add_gd_partition( hd, MINOR(dev), 0, 0);		add_gd_partition( hd, MINOR(dev) + 1, 0, 0);	}		printk ( "\n" );	put_dev_sector(sect);	return 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美羞羞免费网站| 91福利社在线观看| 青青草原综合久久大伊人精品| 综合亚洲深深色噜噜狠狠网站| 国产目拍亚洲精品99久久精品| 久久只精品国产| 国产日韩精品一区二区三区| 久久精品亚洲精品国产欧美kt∨| 国产亚洲va综合人人澡精品| 国产精品久久久久久久久免费丝袜 | 免费亚洲电影在线| 麻豆免费看一区二区三区| 另类的小说在线视频另类成人小视频在线| 午夜精品一区二区三区电影天堂| 午夜欧美视频在线观看| 韩国精品主播一区二区在线观看| 国内成人自拍视频| 成人免费毛片片v| 在线观看成人免费视频| 日韩欧美国产一区在线观看| 26uuu另类欧美亚洲曰本| 日本一区二区久久| 亚洲精品精品亚洲| 麻豆国产欧美一区二区三区| 久久99久久久欧美国产| 成人精品免费看| 欧美日韩欧美一区二区| 久久午夜免费电影| 亚洲午夜激情网页| 国产精品一区二区你懂的| 99久久精品情趣| 欧美一激情一区二区三区| 欧美经典一区二区| 午夜亚洲国产au精品一区二区| 日本不卡的三区四区五区| 国产91精品欧美| 91精品久久久久久久91蜜桃| 国产女人aaa级久久久级 | 国产精品 欧美精品| 在线观看亚洲成人| 久久免费视频色| 日韩一区欧美二区| av中文一区二区三区| 精品美女一区二区| 亚洲国产精品久久人人爱| 成人免费视频视频| 日韩精品一区二区三区老鸭窝| 国产精品欧美综合在线| 日日摸夜夜添夜夜添精品视频| 懂色av噜噜一区二区三区av| 欧美美女一区二区三区| 亚洲欧美日本韩国| 国产99久久久精品| 精品剧情v国产在线观看在线| 综合中文字幕亚洲| 成人激情图片网| 亚洲精品在线电影| 日韩电影网1区2区| 欧美色综合影院| 亚洲精品中文在线影院| 成人高清视频在线观看| 欧美精品一区二区三区高清aⅴ | 欧美成人精品1314www| 图片区小说区区亚洲影院| 99这里都是精品| 欧美国产精品中文字幕| 国产精品影音先锋| 精品播放一区二区| 久久99热狠狠色一区二区| 欧美大片国产精品| 麻豆精品一区二区av白丝在线| 欧美日韩一区 二区 三区 久久精品| 亚洲人成影院在线观看| 91视频com| 亚洲色图色小说| 在线视频欧美精品| 亚洲r级在线视频| 88在线观看91蜜桃国自产| 亚洲a一区二区| 日韩免费观看高清完整版| 老司机一区二区| 久久精品日韩一区二区三区| 国产福利视频一区二区三区| 中文字幕av一区二区三区免费看| 国产99久久久国产精品潘金| 国产精品久久久久久久浪潮网站| 成人18视频在线播放| 亚洲男人都懂的| 欧美日韩一二三区| 麻豆国产欧美一区二区三区| 久久久久国产精品厨房| proumb性欧美在线观看| 亚洲一区在线看| 欧美v日韩v国产v| www.日韩av| 亚洲一区二区三区四区在线 | 午夜久久久久久久久| 欧美一区二区三区电影| 国产91高潮流白浆在线麻豆| 中文字幕在线不卡一区| 欧美日韩高清一区二区三区| 精品一区二区在线视频| 专区另类欧美日韩| 91精品在线免费| 成人午夜激情在线| 无码av中文一区二区三区桃花岛| 精品日韩一区二区三区免费视频| 国产成人亚洲精品狼色在线| 一区二区三区四区在线播放 | 麻豆精品视频在线观看视频| 中文天堂在线一区| 欧美三片在线视频观看| 国产成人精品亚洲午夜麻豆| 亚洲电影一级黄| 国产精品乱人伦| 日韩美女一区二区三区| 色婷婷av一区| 粉嫩av一区二区三区粉嫩| 水蜜桃久久夜色精品一区的特点| 中文字幕高清一区| 日韩一区二区中文字幕| 色拍拍在线精品视频8848| 久久激情综合网| 亚洲高清在线视频| 亚洲日本丝袜连裤袜办公室| 欧美变态凌虐bdsm| 欧美日韩在线亚洲一区蜜芽| 99视频在线精品| 国产一区 二区 三区一级| 午夜精品福利久久久| 1000部国产精品成人观看| www久久精品| 欧美本精品男人aⅴ天堂| 精品视频999| 欧美视频一区二区三区| 在线一区二区三区| 无码av中文一区二区三区桃花岛| 欧美人妖巨大在线| 91精品午夜视频| 国内精品久久久久影院一蜜桃| 久久精子c满五个校花| 欧美一区二区在线免费观看| 91美女在线看| 成人精品免费看| 国模大尺度一区二区三区| 日本不卡123| 麻豆成人久久精品二区三区红| 亚洲永久精品大片| 亚洲国产日韩综合久久精品| 亚洲一区中文日韩| 亚洲一区在线视频观看| 亚洲三级电影网站| 亚洲国产一区二区三区| 亚洲国产精品久久久久婷婷884| 亚洲欧美日韩国产中文在线| 伊人一区二区三区| 五月综合激情网| 青青草视频一区| 国产一区二区伦理| 成人午夜在线免费| 91久久精品午夜一区二区| 欧美羞羞免费网站| 日韩欧美中文字幕公布| 久久婷婷成人综合色| 久久精品亚洲一区二区三区浴池| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美精品一区在线观看| 国产清纯白嫩初高生在线观看91| 国产精品久久久久久久久久免费看 | 波多野结衣亚洲一区| 波多野结衣中文字幕一区 | 久久精品综合网| 国产精品久久看| 丝袜美腿成人在线| 国产毛片精品一区| 一本一道久久a久久精品| 欧美老年两性高潮| 国产午夜亚洲精品羞羞网站| 亚洲柠檬福利资源导航| 日韩精品每日更新| 成人午夜电影网站| 精品视频1区2区3区| 久久看人人爽人人| 亚洲国产另类av| 粉嫩av一区二区三区| 911精品产国品一二三产区| 久久美女艺术照精彩视频福利播放| 综合中文字幕亚洲| 久久99国产精品尤物| 91丨porny丨国产入口| 日韩一级黄色片| 最近日韩中文字幕| 精品亚洲欧美一区| 色视频欧美一区二区三区| 久久日韩粉嫩一区二区三区| 一区二区三区免费看视频| 国产精品1区2区| 欧美一级二级三级蜜桃| 玉足女爽爽91| 99久久国产综合精品色伊|