diff options
Diffstat (limited to 'include/linux/genhd.h')
-rw-r--r-- | include/linux/genhd.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 56e17ed24816..13893aa2ac9d 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
@@ -127,6 +127,11 @@ struct hd_struct { | |||
127 | #define GENHD_FL_EXT_DEVT 64 /* allow extended devt */ | 127 | #define GENHD_FL_EXT_DEVT 64 /* allow extended devt */ |
128 | #define GENHD_FL_NATIVE_CAPACITY 128 | 128 | #define GENHD_FL_NATIVE_CAPACITY 128 |
129 | 129 | ||
130 | enum { | ||
131 | DISK_EVENT_MEDIA_CHANGE = 1 << 0, /* media changed */ | ||
132 | DISK_EVENT_EJECT_REQUEST = 1 << 1, /* eject requested */ | ||
133 | }; | ||
134 | |||
130 | #define BLK_SCSI_MAX_CMDS (256) | 135 | #define BLK_SCSI_MAX_CMDS (256) |
131 | #define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8)) | 136 | #define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8)) |
132 | 137 | ||
@@ -143,6 +148,8 @@ struct disk_part_tbl { | |||
143 | struct hd_struct __rcu *part[]; | 148 | struct hd_struct __rcu *part[]; |
144 | }; | 149 | }; |
145 | 150 | ||
151 | struct disk_events; | ||
152 | |||
146 | struct gendisk { | 153 | struct gendisk { |
147 | /* major, first_minor and minors are input parameters only, | 154 | /* major, first_minor and minors are input parameters only, |
148 | * don't use directly. Use disk_devt() and disk_max_parts(). | 155 | * don't use directly. Use disk_devt() and disk_max_parts(). |
@@ -154,6 +161,10 @@ struct gendisk { | |||
154 | 161 | ||
155 | char disk_name[DISK_NAME_LEN]; /* name of major driver */ | 162 | char disk_name[DISK_NAME_LEN]; /* name of major driver */ |
156 | char *(*devnode)(struct gendisk *gd, mode_t *mode); | 163 | char *(*devnode)(struct gendisk *gd, mode_t *mode); |
164 | |||
165 | unsigned int events; /* supported events */ | ||
166 | unsigned int async_events; /* async events, subset of all */ | ||
167 | |||
157 | /* Array of pointers to partitions indexed by partno. | 168 | /* Array of pointers to partitions indexed by partno. |
158 | * Protected with matching bdev lock but stat and other | 169 | * Protected with matching bdev lock but stat and other |
159 | * non-critical accesses use RCU. Always access through | 170 | * non-critical accesses use RCU. Always access through |
@@ -171,8 +182,8 @@ struct gendisk { | |||
171 | struct kobject *slave_dir; | 182 | struct kobject *slave_dir; |
172 | 183 | ||
173 | struct timer_rand_state *random; | 184 | struct timer_rand_state *random; |
174 | |||
175 | atomic_t sync_io; /* RAID */ | 185 | atomic_t sync_io; /* RAID */ |
186 | struct disk_events *ev; | ||
176 | #ifdef CONFIG_BLK_DEV_INTEGRITY | 187 | #ifdef CONFIG_BLK_DEV_INTEGRITY |
177 | struct blk_integrity *integrity; | 188 | struct blk_integrity *integrity; |
178 | #endif | 189 | #endif |
@@ -405,6 +416,11 @@ static inline int get_disk_ro(struct gendisk *disk) | |||
405 | return disk->part0.policy; | 416 | return disk->part0.policy; |
406 | } | 417 | } |
407 | 418 | ||
419 | extern void disk_block_events(struct gendisk *disk); | ||
420 | extern void disk_unblock_events(struct gendisk *disk); | ||
421 | extern void disk_check_events(struct gendisk *disk); | ||
422 | extern unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask); | ||
423 | |||
408 | /* drivers/char/random.c */ | 424 | /* drivers/char/random.c */ |
409 | extern void add_disk_randomness(struct gendisk *disk); | 425 | extern void add_disk_randomness(struct gendisk *disk); |
410 | extern void rand_initialize_disk(struct gendisk *disk); | 426 | extern void rand_initialize_disk(struct gendisk *disk); |