root/include/linux/genhd.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   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 #ifdef __sparc__
  19 #define CONFIG_SUN_PARTITION 1
  20 #endif
  21 
  22 /* These two have identical behaviour; use the second one if DOS fdisk gets
  23    confused about extended/logical partitions starting past cylinder 1023. */   
  24 #define DOS_EXTENDED_PARTITION 5
  25 #define LINUX_EXTENDED_PARTITION 0x85
  26 
  27 #define DM6_PARTITION           0x54    /* has DDO: use xlated geom & offset */
  28 #define EZD_PARTITION           0x55    /* EZ-DRIVE:  same as DM6 (we think) */
  29 #define DM6_AUX1PARTITION       0x51    /* no DDO:  use xlated geom */
  30 #define DM6_AUX3PARTITION       0x53    /* no DDO:  use xlated geom */
  31         
  32 struct partition {
  33         unsigned char boot_ind;         /* 0x80 - active */
  34         unsigned char head;             /* starting head */
  35         unsigned char sector;           /* starting sector */
  36         unsigned char cyl;              /* starting cylinder */
  37         unsigned char sys_ind;          /* What partition type */
  38         unsigned char end_head;         /* end head */
  39         unsigned char end_sector;       /* end sector */
  40         unsigned char end_cyl;          /* end cylinder */
  41         unsigned int start_sect;        /* starting sector counting from 0 */
  42         unsigned int nr_sects;          /* nr of sectors in partition */
  43 };
  44 
  45 struct hd_struct {
  46         long start_sect;
  47         long nr_sects;
  48 };
  49 
  50 struct gendisk {
  51         int major;                      /* major number of driver */
  52         const char *major_name;         /* name of major driver */
  53         int minor_shift;                /* number of times minor is shifted to
  54                                            get real minor */
  55         int max_p;                      /* maximum partitions per device */
  56         int max_nr;                     /* maximum number of real devices */
  57 
  58         void (*init)(struct gendisk *); /* Initialization called before we do our thing */
  59         struct hd_struct *part;         /* partition table */
  60         int *sizes;                     /* device size in blocks, copied to blk_size[] */
  61         int nr_real;                    /* number of real devices */
  62 
  63         void *real_devices;             /* internal use */
  64         struct gendisk *next;
  65 };
  66 
  67 extern struct gendisk *gendisk_head;    /* linked list of disks */
  68 
  69 /*
  70  * disk_name() is used by genhd.c and md.c.
  71  * It formats the devicename of the indicated disk
  72  * into the supplied buffer, and returns a pointer
  73  * to that same buffer (for convenience).
  74  */
  75 char *disk_name (struct gendisk *hd, int minor, char *buf);
  76 
  77 #endif

/* [previous][next][first][last][top][bottom][index][help] */