⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ultrix.c

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 C
字号:
/* *  fs/partitions/ultrix.c * *  Code extracted from drivers/block/genhd.c * *  Re-organised Jul 1999 Russell King */#include <linux/fs.h>#include <linux/genhd.h>#include <linux/kernel.h>#include <linux/major.h>#include <linux/blk.h>#include "check.h"int ultrix_partition(struct gendisk *hd, kdev_t dev,                            unsigned long first_sector, int first_part_minor){	int i;	struct buffer_head *bh;	struct ultrix_disklabel {		s32	pt_magic;	/* magic no. indicating part. info exits */		s32	pt_valid;	/* set by driver if pt is current */		struct  pt_info {			s32		pi_nblocks; /* no. of sectors */			u32		pi_blkoff;  /* block offset for start */		} pt_part[8];	} *label;#define PT_MAGIC	0x032957	/* Partition magic number */#define PT_VALID	1		/* Indicates if struct is valid */#define	SBLOCK	((unsigned long)((16384 - sizeof(struct ultrix_disklabel)) \                  /get_ptable_blocksize(dev)))	bh = bread (dev, SBLOCK, get_ptable_blocksize(dev));	if (!bh) {		if (warn_no_part) printk (" unable to read block 0x%lx\n", SBLOCK);		return -1;	}		label = (struct ultrix_disklabel *)(bh->b_data                                            + get_ptable_blocksize(dev)                                            - sizeof(struct ultrix_disklabel));	if (label->pt_magic == PT_MAGIC && label->pt_valid == PT_VALID) {		for (i=0; i<8; i++, first_part_minor++)			if (label->pt_part[i].pi_nblocks)				add_gd_partition(hd, first_part_minor, 					      label->pt_part[i].pi_blkoff,					      label->pt_part[i].pi_nblocks);		brelse(bh);		printk ("\n");		return 1;	} else {		brelse(bh);		return 0;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -