mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 08:14:06 +00:00 
			
		
		
		
	 1493bf217f
			
		
	
	
		1493bf217f
		
	
	
	
	
		
			
			Make the following changes to partition check code. * Add ->bdev to struct parsed_partitions. * Introduce read_part_sector() which is a simple wrapper around read_dev_sector() which takes struct parsed_partitions *state instead of @bdev. * For functions which used to take @state and @bdev, drop @bdev. For functions which used to take @bdev, replace it with @state. * While updating, drop superflous checks on NULL state/bdev in ldm.c. This cleans up the API a bit and enables better handling of IO errors during partition check as the generic partition check code now has much better visibility into what went wrong in the low level code paths. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Ben Hutchings <ben@decadent.org.uk> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  fs/partitions/mac.h
 | |
|  */
 | |
| 
 | |
| #define MAC_PARTITION_MAGIC	0x504d
 | |
| 
 | |
| /* type field value for A/UX or other Unix partitions */
 | |
| #define APPLE_AUX_TYPE	"Apple_UNIX_SVR2"
 | |
| 
 | |
| struct mac_partition {
 | |
| 	__be16	signature;	/* expected to be MAC_PARTITION_MAGIC */
 | |
| 	__be16	res1;
 | |
| 	__be32	map_count;	/* # blocks in partition map */
 | |
| 	__be32	start_block;	/* absolute starting block # of partition */
 | |
| 	__be32	block_count;	/* number of blocks in partition */
 | |
| 	char	name[32];	/* partition name */
 | |
| 	char	type[32];	/* string type description */
 | |
| 	__be32	data_start;	/* rel block # of first data block */
 | |
| 	__be32	data_count;	/* number of data blocks */
 | |
| 	__be32	status;		/* partition status bits */
 | |
| 	__be32	boot_start;
 | |
| 	__be32	boot_size;
 | |
| 	__be32	boot_load;
 | |
| 	__be32	boot_load2;
 | |
| 	__be32	boot_entry;
 | |
| 	__be32	boot_entry2;
 | |
| 	__be32	boot_cksum;
 | |
| 	char	processor[16];	/* identifies ISA of boot */
 | |
| 	/* there is more stuff after this that we don't need */
 | |
| };
 | |
| 
 | |
| #define MAC_STATUS_BOOTABLE	8	/* partition is bootable */
 | |
| 
 | |
| #define MAC_DRIVER_MAGIC	0x4552
 | |
| 
 | |
| /* Driver descriptor structure, in block 0 */
 | |
| struct mac_driver_desc {
 | |
| 	__be16	signature;	/* expected to be MAC_DRIVER_MAGIC */
 | |
| 	__be16	block_size;
 | |
| 	__be32	block_count;
 | |
|     /* ... more stuff */
 | |
| };
 | |
| 
 | |
| int mac_partition(struct parsed_partitions *state);
 |