1 #ifndef _LINUX_GENHD_H
2 #define _LINUX_GENHD_H
3
4 /*
5 * genhd.h Copyright (C) 1992 Drew Eckhardt
6 * Generic hard disk header file by
7 * Drew Eckhardt
8 *
9 * <drew@colorado.edu>
10 */
11
12 #define CONFIG_MSDOS_PARTITION 1
13
14 #ifdef __alpha__
15 #define CONFIG_OSF_PARTITION 1
16 #endif
17
18 #define EXTENDED_PARTITION 5
19
20 #define DM6_PARTITION 0x54 /* has DDO: use xlated geom & offset */
21 #define DM6_AUXPARTITION 0x51 /* no DDO: use xlated geom */
22
23 struct partition {
24 unsigned char boot_ind; /* 0x80 - active */
25 unsigned char head; /* starting head */
26 unsigned char sector; /* starting sector */
27 unsigned char cyl; /* starting cylinder */
28 unsigned char sys_ind; /* What partition type */
29 unsigned char end_head; /* end head */
30 unsigned char end_sector; /* end sector */
31 unsigned char end_cyl; /* end cylinder */
32 unsigned int start_sect; /* starting sector counting from 0 */
33 unsigned int nr_sects; /* nr of sectors in partition */
34 };
35
36 struct hd_struct {
37 long start_sect;
38 long nr_sects;
39 };
40
41 struct gendisk {
42 int major; /* major number of driver */
43 char *major_name; /* name of major driver */
44 int minor_shift; /* number of times minor is shifted to
45 get real minor */
46 int max_p; /* maximum partitions per device */
47 int max_nr; /* maximum number of real devices */
48
49 void (*init)(void); /* Initialization called before we do our thing */
50 struct hd_struct *part; /* partition table */
51 int *sizes; /* size of device in blocks */
52 int nr_real; /* number of real devices */
53
54 void *real_devices; /* internal use */
55 struct gendisk *next;
56 };
57
58 extern int NR_GENDISKS; /* total */
59 extern struct gendisk *gendisk_head; /* linked list of disks */
60
61 #endif