source: svn/trunk/newcon3bcm2_21bu/toolchain/mips-linux-uclibc/include/linux/raid/md_u.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 3.0 KB
Line 
1/*
2   md_u.h : user <=> kernel API between Linux raidtools and RAID drivers
3          Copyright (C) 1998 Ingo Molnar
4         
5   This program is free software; you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation; either version 2, or (at your option)
8   any later version.
9   
10   You should have received a copy of the GNU General Public License
11   (for example /usr/src/linux/COPYING); if not, write to the Free
12   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
13*/
14
15#ifndef _MD_U_H
16#define _MD_U_H
17
18/* ioctls */
19
20/* status */
21#define RAID_VERSION            _IOR (MD_MAJOR, 0x10, mdu_version_t)
22#define GET_ARRAY_INFO          _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
23#define GET_DISK_INFO           _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
24#define PRINT_RAID_DEBUG        _IO (MD_MAJOR, 0x13)
25#define RAID_AUTORUN            _IO (MD_MAJOR, 0x14)
26
27/* configuration */
28#define CLEAR_ARRAY             _IO (MD_MAJOR, 0x20)
29#define ADD_NEW_DISK            _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
30#define HOT_REMOVE_DISK         _IO (MD_MAJOR, 0x22)
31#define SET_ARRAY_INFO          _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
32#define SET_DISK_INFO           _IO (MD_MAJOR, 0x24)
33#define WRITE_RAID_INFO         _IO (MD_MAJOR, 0x25)
34#define UNPROTECT_ARRAY         _IO (MD_MAJOR, 0x26)
35#define PROTECT_ARRAY           _IO (MD_MAJOR, 0x27)
36#define HOT_ADD_DISK            _IO (MD_MAJOR, 0x28)
37#define SET_DISK_FAULTY         _IO (MD_MAJOR, 0x29)
38#define HOT_GENERATE_ERROR      _IO (MD_MAJOR, 0x2a)
39
40/* usage */
41#define RUN_ARRAY               _IOW (MD_MAJOR, 0x30, mdu_param_t)
42#define START_ARRAY             _IO (MD_MAJOR, 0x31)
43#define STOP_ARRAY              _IO (MD_MAJOR, 0x32)
44#define STOP_ARRAY_RO           _IO (MD_MAJOR, 0x33)
45#define RESTART_ARRAY_RW        _IO (MD_MAJOR, 0x34)
46
47typedef struct mdu_version_s {
48        int major;
49        int minor;
50        int patchlevel;
51} mdu_version_t;
52
53typedef struct mdu_array_info_s {
54        /*
55         * Generic constant information
56         */
57        int major_version;
58        int minor_version;
59        int patch_version;
60        int ctime;
61        int level;
62        int size;
63        int nr_disks;
64        int raid_disks;
65        int md_minor;
66        int not_persistent;
67
68        /*
69         * Generic state information
70         */
71        int utime;              /*  0 Superblock update time                  */
72        int state;              /*  1 State bits (clean, ...)                 */
73        int active_disks;       /*  2 Number of currently active disks        */
74        int working_disks;      /*  3 Number of working disks                 */
75        int failed_disks;       /*  4 Number of failed disks                  */
76        int spare_disks;        /*  5 Number of spare disks                   */
77
78        /*
79         * Personality information
80         */
81        int layout;             /*  0 the array's physical layout             */
82        int chunk_size; /*  1 chunk size in bytes                     */
83
84} mdu_array_info_t;
85
86typedef struct mdu_disk_info_s {
87        /*
88         * configuration/status of one particular disk
89         */
90        int number;
91        int major;
92        int minor;
93        int raid_disk;
94        int state;
95
96} mdu_disk_info_t;
97
98typedef struct mdu_start_info_s {
99        /*
100         * configuration/status of one particular disk
101         */
102        int major;
103        int minor;
104        int raid_disk;
105        int state;
106
107} mdu_start_info_t;
108
109typedef struct mdu_param_s
110{
111        int                     personality;    /* 1,2,3,4 */
112        int                     chunk_size;     /* in bytes */
113        int                     max_fault;      /* unused for now */
114} mdu_param_t;
115
116#endif
117
Note: See TracBrowser for help on using the repository browser.