35 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 *  fs/partitions/atari.h
							 | 
						||
| 
								 | 
							
								 *  Moved by Russell King from:
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * linux/include/linux/atari_rootsec.h
							 | 
						||
| 
								 | 
							
								 * definitions for Atari Rootsector layout
							 | 
						||
| 
								 | 
							
								 * by Andreas Schwab (schwab@ls5.informatik.uni-dortmund.de)
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * modified for ICD/Supra partitioning scheme restricted to at most 12
							 | 
						||
| 
								 | 
							
								 * partitions
							 | 
						||
| 
								 | 
							
								 * by Guenther Kelleter (guenther@pool.informatik.rwth-aachen.de)
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct partition_info
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  u8 flg;			/* bit 0: active; bit 7: bootable */
							 | 
						||
| 
								 | 
							
								  char id[3];			/* "GEM", "BGM", "XGM", or other */
							 | 
						||
| 
								 | 
							
								  __be32 st;			/* start of partition */
							 | 
						||
| 
								 | 
							
								  __be32 siz;			/* length of partition */
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct rootsector
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  char unused[0x156];		/* room for boot code */
							 | 
						||
| 
								 | 
							
								  struct partition_info icdpart[8];	/* info for ICD-partitions 5..12 */
							 | 
						||
| 
								 | 
							
								  char unused2[0xc];
							 | 
						||
| 
								 | 
							
								  u32 hd_siz;			/* size of disk in blocks */
							 | 
						||
| 
								 | 
							
								  struct partition_info part[4];
							 | 
						||
| 
								 | 
							
								  u32 bsl_st;			/* start of bad sector list */
							 | 
						||
| 
								 | 
							
								  u32 bsl_cnt;			/* length of bad sector list */
							 | 
						||
| 
								 | 
							
								  u16 checksum;			/* checksum for bootable disks */
							 | 
						||
| 
								 | 
							
								} __attribute__((__packed__));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int atari_partition(struct parsed_partitions *state, struct block_device *bdev);
							 |