11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/****************************************************************************
21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************
31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***
41dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   This header was automatically generated from a Linux kernel header
51dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   of the same name, to make information necessary for userspace to
61dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   call into the kernel available to libc.  It contains only constants,
71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   structures, and macros generated from the original header, and thus,
81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   contains no copyrightable information.
91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***
10654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   To edit the content of this header, modify the corresponding
11654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   run bionic/libc/kernel/tools/update_all.py
13654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***
14654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   Any manual change here will be lost the next time this script will
15654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   be run. You've been warned!
16654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***
171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************
181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************/
191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef _MD_K_H
201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define _MD_K_H
211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include "../../../drivers/md/dm-bio-list.h"
221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define LEVEL_MULTIPATH (-4)
23654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define LEVEL_LINEAR (-1)
251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define LEVEL_FAULTY (-5)
261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define LEVEL_NONE (-1000000)
271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MaxSector (~(sector_t)0)
28654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_THREAD_NAME_MAX 14
301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef struct mddev_s mddev_t;
311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef struct mdk_rdev_s mdk_rdev_t;
32c95eb57405d3d2f0e6cfab313aa74b1bad280452Elliott Hughes#define MAX_MD_DEVS 256
33654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MAX_CHUNK_SIZE (1<<30)
351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct mdk_rdev_s
361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{
371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct list_head same_set;
38654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t size;
401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project mddev_t *mddev;
411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned long last_events;
421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct block_device *bdev;
43654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct page *sb_page;
451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int sb_loaded;
461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u64 sb_events;
471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t data_offset;
48654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t sb_offset;
501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int sb_size;
511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int preferred_minor;
521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct kobject kobj;
53654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned long flags;
55c95eb57405d3d2f0e6cfab313aa74b1bad280452Elliott Hughes#define Faulty 1
56c95eb57405d3d2f0e6cfab313aa74b1bad280452Elliott Hughes#define In_sync 2
57c95eb57405d3d2f0e6cfab313aa74b1bad280452Elliott Hughes#define WriteMostly 4
58654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59c95eb57405d3d2f0e6cfab313aa74b1bad280452Elliott Hughes#define BarriersNotsupp 5
601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int desc_nr;
611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int raid_disk;
621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int saved_raid_disk;
63654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t recovery_offset;
651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project atomic_t nr_pending;
661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project atomic_t read_errors;
671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project atomic_t corrected_errors;
68654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct mddev_s
711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project{
721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project void *private;
73654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct mdk_personality *pers;
751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project dev_t unit;
761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int md_minor;
771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct list_head disks;
78654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int sb_dirty;
801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int ro;
811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct gendisk *gendisk;
821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct kobject kobj;
83654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int major_version,
851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project minor_version,
861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project patch_version;
871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int persistent;
88654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int chunk_size;
901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project time_t ctime, utime;
911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int level, layout;
921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project char clevel[16];
93654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int raid_disks;
951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int max_disks;
961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t size;
971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t array_size;
98654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project __u64 events;
1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project char uuid[16];
1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t reshape_position;
1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int delta_disks, new_level, new_layout, new_chunk;
103654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct mdk_thread_s *thread;
1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct mdk_thread_s *sync_thread;
1061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t curr_resync;
1071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned long resync_mark;
108654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t resync_mark_cnt;
1101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t curr_mark_cnt;
1111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t resync_max_sectors;
1121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t resync_mismatches;
113654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t suspend_lo;
1151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t suspend_hi;
1161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int sync_speed_min;
1171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int sync_speed_max;
118654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int ok_start_degraded;
1201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_RUNNING 0
1211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_SYNC 1
1221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_ERR 2
123654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_INTR 3
1251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_DONE 4
1261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_NEEDED 5
1271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_REQUESTED 6
128654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_CHECK 7
1301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_RESHAPE 8
1311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MD_RECOVERY_FROZEN 9
1321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned long recovery;
133654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int in_sync;
1351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct mutex reconfig_mutex;
1361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project atomic_t active;
1371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int changed;
138654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int degraded;
1401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int barriers_work;
1411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct bio *biolist;
1421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project atomic_t recovery_active;
143654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project wait_queue_head_t recovery_wait;
1451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project sector_t recovery_cp;
1461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project spinlock_t write_lock;
1471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project wait_queue_head_t sb_wait;
148654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project atomic_t pending_writes;
1501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int safemode;
1511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int safemode_delay;
1521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct timer_list safemode_timer;
153654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project atomic_t writes_pending;
1551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project request_queue_t *queue;
1561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project atomic_t write_behind;
1571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int max_write_behind;
158654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct bitmap *bitmap;
1601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct file *bitmap_file;
1611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project long bitmap_offset;
1621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project long default_bitmap_offset;
163654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct list_head all_mddevs;
1651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
166654325de026a2ca5b76b8b40e576c959d8211fdcBen Chengstruct mdk_personality
167654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng{
168654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng char *name;
170654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int level;
171654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng struct list_head list;
172654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng struct module *owner;
173654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*make_request)(request_queue_t *q, struct bio *bio);
175654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*run)(mddev_t *mddev);
176654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*stop)(mddev_t *mddev);
177654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng void (*status)(struct seq_file *seq, mddev_t *mddev);
178654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng void (*error_handler)(mddev_t *mddev, mdk_rdev_t *rdev);
180654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*hot_add_disk) (mddev_t *mddev, mdk_rdev_t *rdev);
181654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*hot_remove_disk) (mddev_t *mddev, int number);
182654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*spare_active) (mddev_t *mddev);
183654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng sector_t (*sync_request)(mddev_t *mddev, sector_t sector_nr, int *skipped, int go_faster);
185654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*resize) (mddev_t *mddev, sector_t sectors);
186654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*check_reshape) (mddev_t *mddev);
187654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*start_reshape) (mddev_t *mddev);
188654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng int (*reconfig) (mddev_t *mddev, int layout, int chunk_size);
190654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng void (*quiesce) (mddev_t *mddev, int state);
191654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng};
1921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct md_sysfs_entry {
193654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct attribute attr;
1951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ssize_t (*show)(mddev_t *, char *);
1961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ssize_t (*store)(mddev_t *, const char *, size_t);
1971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
198654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ITERATE_RDEV_GENERIC(head,rdev,tmp)     for ((tmp) = (head).next;   (rdev) = (list_entry((tmp), mdk_rdev_t, same_set)),   (tmp) = (tmp)->next, (tmp)->prev != &(head)   ; )
2001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ITERATE_RDEV(mddev,rdev,tmp)   ITERATE_RDEV_GENERIC((mddev)->disks,rdev,tmp)
2011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ITERATE_RDEV_PENDING(rdev,tmp)   ITERATE_RDEV_GENERIC(pending_raid_disks,rdev,tmp)
202654325de026a2ca5b76b8b40e576c959d8211fdcBen Chengtypedef struct mdk_thread_s {
203654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng void (*run) (mddev_t *mddev);
205654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng mddev_t *mddev;
206654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng wait_queue_head_t wqueue;
207654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng unsigned long flags;
208654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng struct task_struct *tsk;
210654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng unsigned long timeout;
211654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng} mdk_thread_t;
2121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define THREAD_WAKEUP 0
213654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define __wait_event_lock_irq(wq, condition, lock, cmd)  do {   wait_queue_t __wait;   init_waitqueue_entry(&__wait, current);     add_wait_queue(&wq, &__wait);   for (;;) {   set_current_state(TASK_UNINTERRUPTIBLE);   if (condition)   break;   spin_unlock_irq(&lock);   cmd;   schedule();   spin_lock_irq(&lock);   }   current->state = TASK_RUNNING;   remove_wait_queue(&wq, &__wait);  } while (0)
2151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define wait_event_lock_irq(wq, condition, lock, cmd)  do {   if (condition)   break;   __wait_event_lock_irq(wq, condition, lock, cmd);  } while (0)
2161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif
217