111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _MD_U_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _MD_U_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t)
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13)
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t)
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLEAR_ARRAY _IO (MD_MAJOR, 0x20)
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22)
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_DISK_INFO _IO (MD_MAJOR, 0x24)
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25)
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26)
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PROTECT_ARRAY _IO (MD_MAJOR, 0x27)
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HOT_ADD_DISK _IO (MD_MAJOR, 0x28)
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29)
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a)
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int)
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define START_ARRAY _IO (MD_MAJOR, 0x31)
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct mdu_version_s {
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int major;
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int minor;
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int patchlevel;
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} mdu_version_t;
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct mdu_array_info_s {
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int major_version;
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int minor_version;
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int patch_version;
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ctime;
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int level;
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int size;
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int nr_disks;
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int raid_disks;
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int md_minor;
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int not_persistent;
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int utime;
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int state;
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int active_disks;
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int working_disks;
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int failed_disks;
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int spare_disks;
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int layout;
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int chunk_size;
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} mdu_array_info_t;
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct mdu_disk_info_s {
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int number;
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int major;
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int minor;
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int raid_disk;
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int state;
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} mdu_disk_info_t;
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct mdu_start_info_s {
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int major;
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int minor;
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int raid_disk;
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int state;
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} mdu_start_info_t;
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct mdu_bitmap_file_s
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char pathname[4096];
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} mdu_bitmap_file_t;
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct mdu_param_s
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int personality;
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int chunk_size;
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int max_fault;
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} mdu_param_t;
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
105