Skip to content

Commit fc5a40a

Browse files
committed
UAPI: (Scripted) Disintegrate include/linux/raid
Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Michael Kerrisk <mtk.manpages@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: Dave Jones <davej@redhat.com>
1 parent 9e2d865 commit fc5a40a

5 files changed

Lines changed: 158 additions & 142 deletions

File tree

include/linux/raid/Kbuild

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +0,0 @@
1-
header-y += md_p.h
2-
header-y += md_u.h

include/linux/raid/md_u.h

Lines changed: 1 addition & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -11,149 +11,10 @@
1111
(for example /usr/src/linux/COPYING); if not, write to the Free
1212
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
1313
*/
14-
1514
#ifndef _MD_U_H
1615
#define _MD_U_H
1716

18-
/*
19-
* Different major versions are not compatible.
20-
* Different minor versions are only downward compatible.
21-
* Different patchlevel versions are downward and upward compatible.
22-
*/
23-
#define MD_MAJOR_VERSION 0
24-
#define MD_MINOR_VERSION 90
25-
/*
26-
* MD_PATCHLEVEL_VERSION indicates kernel functionality.
27-
* >=1 means different superblock formats are selectable using SET_ARRAY_INFO
28-
* and major_version/minor_version accordingly
29-
* >=2 means that Internal bitmaps are supported by setting MD_SB_BITMAP_PRESENT
30-
* in the super status byte
31-
* >=3 means that bitmap superblock version 4 is supported, which uses
32-
* little-ending representation rather than host-endian
33-
*/
34-
#define MD_PATCHLEVEL_VERSION 3
35-
36-
/* ioctls */
37-
38-
/* status */
39-
#define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t)
40-
#define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
41-
#define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
42-
#define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13)
43-
#define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
44-
#define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t)
45-
46-
/* configuration */
47-
#define CLEAR_ARRAY _IO (MD_MAJOR, 0x20)
48-
#define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
49-
#define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22)
50-
#define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
51-
#define SET_DISK_INFO _IO (MD_MAJOR, 0x24)
52-
#define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25)
53-
#define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26)
54-
#define PROTECT_ARRAY _IO (MD_MAJOR, 0x27)
55-
#define HOT_ADD_DISK _IO (MD_MAJOR, 0x28)
56-
#define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29)
57-
#define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a)
58-
#define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int)
17+
#include <uapi/linux/raid/md_u.h>
5918

60-
/* usage */
61-
#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
62-
/* 0x31 was START_ARRAY */
63-
#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
64-
#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
65-
#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
66-
67-
/* 63 partitions with the alternate major number (mdp) */
68-
#define MdpMinorShift 6
69-
#ifdef __KERNEL__
7019
extern int mdp_major;
71-
#endif
72-
73-
typedef struct mdu_version_s {
74-
int major;
75-
int minor;
76-
int patchlevel;
77-
} mdu_version_t;
78-
79-
typedef struct mdu_array_info_s {
80-
/*
81-
* Generic constant information
82-
*/
83-
int major_version;
84-
int minor_version;
85-
int patch_version;
86-
int ctime;
87-
int level;
88-
int size;
89-
int nr_disks;
90-
int raid_disks;
91-
int md_minor;
92-
int not_persistent;
93-
94-
/*
95-
* Generic state information
96-
*/
97-
int utime; /* 0 Superblock update time */
98-
int state; /* 1 State bits (clean, ...) */
99-
int active_disks; /* 2 Number of currently active disks */
100-
int working_disks; /* 3 Number of working disks */
101-
int failed_disks; /* 4 Number of failed disks */
102-
int spare_disks; /* 5 Number of spare disks */
103-
104-
/*
105-
* Personality information
106-
*/
107-
int layout; /* 0 the array's physical layout */
108-
int chunk_size; /* 1 chunk size in bytes */
109-
110-
} mdu_array_info_t;
111-
112-
/* non-obvious values for 'level' */
113-
#define LEVEL_MULTIPATH (-4)
114-
#define LEVEL_LINEAR (-1)
115-
#define LEVEL_FAULTY (-5)
116-
117-
/* we need a value for 'no level specified' and 0
118-
* means 'raid0', so we need something else. This is
119-
* for internal use only
120-
*/
121-
#define LEVEL_NONE (-1000000)
122-
123-
typedef struct mdu_disk_info_s {
124-
/*
125-
* configuration/status of one particular disk
126-
*/
127-
int number;
128-
int major;
129-
int minor;
130-
int raid_disk;
131-
int state;
132-
133-
} mdu_disk_info_t;
134-
135-
typedef struct mdu_start_info_s {
136-
/*
137-
* configuration/status of one particular disk
138-
*/
139-
int major;
140-
int minor;
141-
int raid_disk;
142-
int state;
143-
144-
} mdu_start_info_t;
145-
146-
typedef struct mdu_bitmap_file_s
147-
{
148-
char pathname[4096];
149-
} mdu_bitmap_file_t;
150-
151-
typedef struct mdu_param_s
152-
{
153-
int personality; /* 1,2,3,4 */
154-
int chunk_size; /* in bytes */
155-
int max_fault; /* unused for now */
156-
} mdu_param_t;
157-
15820
#endif
159-

include/uapi/linux/raid/Kbuild

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
# UAPI Header export list
2+
header-y += md_p.h
3+
header-y += md_u.h

include/uapi/linux/raid/md_u.h

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
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 _UAPI_MD_U_H
16+
#define _UAPI_MD_U_H
17+
18+
/*
19+
* Different major versions are not compatible.
20+
* Different minor versions are only downward compatible.
21+
* Different patchlevel versions are downward and upward compatible.
22+
*/
23+
#define MD_MAJOR_VERSION 0
24+
#define MD_MINOR_VERSION 90
25+
/*
26+
* MD_PATCHLEVEL_VERSION indicates kernel functionality.
27+
* >=1 means different superblock formats are selectable using SET_ARRAY_INFO
28+
* and major_version/minor_version accordingly
29+
* >=2 means that Internal bitmaps are supported by setting MD_SB_BITMAP_PRESENT
30+
* in the super status byte
31+
* >=3 means that bitmap superblock version 4 is supported, which uses
32+
* little-ending representation rather than host-endian
33+
*/
34+
#define MD_PATCHLEVEL_VERSION 3
35+
36+
/* ioctls */
37+
38+
/* status */
39+
#define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t)
40+
#define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
41+
#define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
42+
#define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13)
43+
#define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
44+
#define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t)
45+
46+
/* configuration */
47+
#define CLEAR_ARRAY _IO (MD_MAJOR, 0x20)
48+
#define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
49+
#define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22)
50+
#define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
51+
#define SET_DISK_INFO _IO (MD_MAJOR, 0x24)
52+
#define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25)
53+
#define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26)
54+
#define PROTECT_ARRAY _IO (MD_MAJOR, 0x27)
55+
#define HOT_ADD_DISK _IO (MD_MAJOR, 0x28)
56+
#define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29)
57+
#define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a)
58+
#define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int)
59+
60+
/* usage */
61+
#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
62+
/* 0x31 was START_ARRAY */
63+
#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
64+
#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
65+
#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
66+
67+
/* 63 partitions with the alternate major number (mdp) */
68+
#define MdpMinorShift 6
69+
70+
typedef struct mdu_version_s {
71+
int major;
72+
int minor;
73+
int patchlevel;
74+
} mdu_version_t;
75+
76+
typedef struct mdu_array_info_s {
77+
/*
78+
* Generic constant information
79+
*/
80+
int major_version;
81+
int minor_version;
82+
int patch_version;
83+
int ctime;
84+
int level;
85+
int size;
86+
int nr_disks;
87+
int raid_disks;
88+
int md_minor;
89+
int not_persistent;
90+
91+
/*
92+
* Generic state information
93+
*/
94+
int utime; /* 0 Superblock update time */
95+
int state; /* 1 State bits (clean, ...) */
96+
int active_disks; /* 2 Number of currently active disks */
97+
int working_disks; /* 3 Number of working disks */
98+
int failed_disks; /* 4 Number of failed disks */
99+
int spare_disks; /* 5 Number of spare disks */
100+
101+
/*
102+
* Personality information
103+
*/
104+
int layout; /* 0 the array's physical layout */
105+
int chunk_size; /* 1 chunk size in bytes */
106+
107+
} mdu_array_info_t;
108+
109+
/* non-obvious values for 'level' */
110+
#define LEVEL_MULTIPATH (-4)
111+
#define LEVEL_LINEAR (-1)
112+
#define LEVEL_FAULTY (-5)
113+
114+
/* we need a value for 'no level specified' and 0
115+
* means 'raid0', so we need something else. This is
116+
* for internal use only
117+
*/
118+
#define LEVEL_NONE (-1000000)
119+
120+
typedef struct mdu_disk_info_s {
121+
/*
122+
* configuration/status of one particular disk
123+
*/
124+
int number;
125+
int major;
126+
int minor;
127+
int raid_disk;
128+
int state;
129+
130+
} mdu_disk_info_t;
131+
132+
typedef struct mdu_start_info_s {
133+
/*
134+
* configuration/status of one particular disk
135+
*/
136+
int major;
137+
int minor;
138+
int raid_disk;
139+
int state;
140+
141+
} mdu_start_info_t;
142+
143+
typedef struct mdu_bitmap_file_s
144+
{
145+
char pathname[4096];
146+
} mdu_bitmap_file_t;
147+
148+
typedef struct mdu_param_s
149+
{
150+
int personality; /* 1,2,3,4 */
151+
int chunk_size; /* in bytes */
152+
int max_fault; /* unused for now */
153+
} mdu_param_t;
154+
155+
#endif /* _UAPI_MD_U_H */

0 commit comments

Comments
 (0)