mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	Every file should #include the headers containing the prototypes for it's global functions. Signed-off-by: Adrian Bunk <bunk@stusta.de>
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 *  fs/partitions/ultrix.c
 | 
						|
 *
 | 
						|
 *  Code extracted from drivers/block/genhd.c
 | 
						|
 *
 | 
						|
 *  Re-organised Jul 1999 Russell King
 | 
						|
 */
 | 
						|
 | 
						|
#include "check.h"
 | 
						|
#include "ultrix.h"
 | 
						|
 | 
						|
int ultrix_partition(struct parsed_partitions *state, struct block_device *bdev)
 | 
						|
{
 | 
						|
	int i;
 | 
						|
	Sector sect;
 | 
						|
	unsigned char *data;
 | 
						|
	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 */
 | 
						|
 | 
						|
	data = read_dev_sector(bdev, (16384 - sizeof(*label))/512, §);
 | 
						|
	if (!data)
 | 
						|
		return -1;
 | 
						|
	
 | 
						|
	label = (struct ultrix_disklabel *)(data + 512 - sizeof(*label));
 | 
						|
 | 
						|
	if (label->pt_magic == PT_MAGIC && label->pt_valid == PT_VALID) {
 | 
						|
		for (i=0; i<8; i++)
 | 
						|
			if (label->pt_part[i].pi_nblocks)
 | 
						|
				put_partition(state, i+1, 
 | 
						|
					      label->pt_part[i].pi_blkoff,
 | 
						|
					      label->pt_part[i].pi_nblocks);
 | 
						|
		put_dev_sector(sect);
 | 
						|
		printk ("\n");
 | 
						|
		return 1;
 | 
						|
	} else {
 | 
						|
		put_dev_sector(sect);
 | 
						|
		return 0;
 | 
						|
	}
 | 
						|
}
 |