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