Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
s390
include
uapi
asm
vtoc.h
Go to the documentation of this file.
1
/*
2
* This file contains volume label definitions for DASD devices.
3
*
4
* Copyright IBM Corp. 2005
5
*
6
* Author(s): Volker Sameske <
[email protected]
>
7
*
8
*/
9
10
#ifndef _ASM_S390_VTOC_H
11
#define _ASM_S390_VTOC_H
12
13
#include <linux/types.h>
14
15
struct
vtoc_ttr
16
{
17
__u16
tt
;
18
__u8
r
;
19
}
__attribute__
((packed));
20
21
struct
vtoc_cchhb
22
{
23
__u16
cc
;
24
__u16
hh
;
25
__u8
b
;
26
}
__attribute__
((packed));
27
28
struct
vtoc_cchh
29
{
30
__u16
cc
;
31
__u16
hh
;
32
}
__attribute__
((packed));
33
34
struct
vtoc_labeldate
35
{
36
__u8
year
;
37
__u16
day
;
38
}
__attribute__
((packed));
39
40
struct
vtoc_volume_label_cdl
41
{
42
char
volkey
[4];
/* volume key = volume label */
43
char
vollbl
[4];
/* volume label */
44
char
volid
[6];
/* volume identifier */
45
__u8
security
;
/* security byte */
46
struct
vtoc_cchhb
vtoc
;
/* VTOC address */
47
char
res1
[5];
/* reserved */
48
char
cisize
[4];
/* CI-size for FBA,... */
49
/* ...blanks for CKD */
50
char
blkperci
[4];
/* no of blocks per CI (FBA), blanks for CKD */
51
char
labperci
[4];
/* no of labels per CI (FBA), blanks for CKD */
52
char
res2
[4];
/* reserved */
53
char
lvtoc
[14];
/* owner code for LVTOC */
54
char
res3
[29];
/* reserved */
55
}
__attribute__
((packed));
56
57
struct
vtoc_volume_label_ldl
{
58
char
vollbl
[4];
/* volume label */
59
char
volid
[6];
/* volume identifier */
60
char
res3
[69];
/* reserved */
61
char
ldl_version
;
/* version number, valid for ldl format */
62
__u64
formatted_blocks
;
/* valid when ldl_version >= f2 */
63
}
__attribute__
((packed));
64
65
struct
vtoc_extent
66
{
67
__u8
typeind
;
/* extent type indicator */
68
__u8
seqno
;
/* extent sequence number */
69
struct
vtoc_cchh
llimit
;
/* starting point of this extent */
70
struct
vtoc_cchh
ulimit
;
/* ending point of this extent */
71
}
__attribute__
((packed));
72
73
struct
vtoc_dev_const
74
{
75
__u16
DS4DSCYL
;
/* number of logical cyls */
76
__u16
DS4DSTRK
;
/* number of tracks in a logical cylinder */
77
__u16
DS4DEVTK
;
/* device track length */
78
__u8
DS4DEVI
;
/* non-last keyed record overhead */
79
__u8
DS4DEVL
;
/* last keyed record overhead */
80
__u8
DS4DEVK
;
/* non-keyed record overhead differential */
81
__u8
DS4DEVFG
;
/* flag byte */
82
__u16
DS4DEVTL
;
/* device tolerance */
83
__u8
DS4DEVDT
;
/* number of DSCB's per track */
84
__u8
DS4DEVDB
;
/* number of directory blocks per track */
85
}
__attribute__
((packed));
86
87
struct
vtoc_format1_label
88
{
89
char
DS1DSNAM
[44];
/* data set name */
90
__u8
DS1FMTID
;
/* format identifier */
91
char
DS1DSSN
[6];
/* data set serial number */
92
__u16
DS1VOLSQ
;
/* volume sequence number */
93
struct
vtoc_labeldate
DS1CREDT
;
/* creation date: ydd */
94
struct
vtoc_labeldate
DS1EXPDT
;
/* expiration date */
95
__u8
DS1NOEPV
;
/* number of extents on volume */
96
__u8
DS1NOBDB
;
/* no. of bytes used in last direction blk */
97
__u8
DS1FLAG1
;
/* flag 1 */
98
char
DS1SYSCD
[13];
/* system code */
99
struct
vtoc_labeldate
DS1REFD
;
/* date last referenced */
100
__u8
DS1SMSFG
;
/* system managed storage indicators */
101
__u8
DS1SCXTF
;
/* sec. space extension flag byte */
102
__u16
DS1SCXTV
;
/* secondary space extension value */
103
__u8
DS1DSRG1
;
/* data set organisation byte 1 */
104
__u8
DS1DSRG2
;
/* data set organisation byte 2 */
105
__u8
DS1RECFM
;
/* record format */
106
__u8
DS1OPTCD
;
/* option code */
107
__u16
DS1BLKL
;
/* block length */
108
__u16
DS1LRECL
;
/* record length */
109
__u8
DS1KEYL
;
/* key length */
110
__u16
DS1RKP
;
/* relative key position */
111
__u8
DS1DSIND
;
/* data set indicators */
112
__u8
DS1SCAL1
;
/* secondary allocation flag byte */
113
char
DS1SCAL3
[3];
/* secondary allocation quantity */
114
struct
vtoc_ttr
DS1LSTAR
;
/* last used track and block on track */
115
__u16
DS1TRBAL
;
/* space remaining on last used track */
116
__u16
res1
;
/* reserved */
117
struct
vtoc_extent
DS1EXT1
;
/* first extent description */
118
struct
vtoc_extent
DS1EXT2
;
/* second extent description */
119
struct
vtoc_extent
DS1EXT3
;
/* third extent description */
120
struct
vtoc_cchhb
DS1PTRDS
;
/* possible pointer to f2 or f3 DSCB */
121
}
__attribute__
((packed));
122
123
struct
vtoc_format4_label
124
{
125
char
DS4KEYCD
[44];
/* key code for VTOC labels: 44 times 0x04 */
126
__u8
DS4IDFMT
;
/* format identifier */
127
struct
vtoc_cchhb
DS4HPCHR
;
/* highest address of a format 1 DSCB */
128
__u16
DS4DSREC
;
/* number of available DSCB's */
129
struct
vtoc_cchh
DS4HCCHH
;
/* CCHH of next available alternate track */
130
__u16
DS4NOATK
;
/* number of remaining alternate tracks */
131
__u8
DS4VTOCI
;
/* VTOC indicators */
132
__u8
DS4NOEXT
;
/* number of extents in VTOC */
133
__u8
DS4SMSFG
;
/* system managed storage indicators */
134
__u8
DS4DEVAC
;
/* number of alternate cylinders.
135
* Subtract from first two bytes of
136
* DS4DEVSZ to get number of usable
137
* cylinders. can be zero. valid
138
* only if DS4DEVAV on. */
139
struct
vtoc_dev_const
DS4DEVCT
;
/* device constants */
140
char
DS4AMTIM
[8];
/* VSAM time stamp */
141
char
DS4AMCAT
[3];
/* VSAM catalog indicator */
142
char
DS4R2TIM
[8];
/* VSAM volume/catalog match time stamp */
143
char
res1
[5];
/* reserved */
144
char
DS4F6PTR
[5];
/* pointer to first format 6 DSCB */
145
struct
vtoc_extent
DS4VTOCE
;
/* VTOC extent description */
146
char
res2
[10];
/* reserved */
147
__u8
DS4EFLVL
;
/* extended free-space management level */
148
struct
vtoc_cchhb
DS4EFPTR
;
/* pointer to extended free-space info */
149
char
res3
;
/* reserved */
150
__u32
DS4DCYL
;
/* number of logical cyls */
151
char
res4
[2];
/* reserved */
152
__u8
DS4DEVF2
;
/* device flags */
153
char
res5
;
/* reserved */
154
}
__attribute__
((packed));
155
156
struct
vtoc_ds5ext
157
{
158
__u16
t
;
/* RTA of the first track of free extent */
159
__u16
fc
;
/* number of whole cylinders in free ext. */
160
__u8
ft
;
/* number of remaining free tracks */
161
}
__attribute__
((packed));
162
163
struct
vtoc_format5_label
164
{
165
char
DS5KEYID
[4];
/* key identifier */
166
struct
vtoc_ds5ext
DS5AVEXT
;
/* first available (free-space) extent. */
167
struct
vtoc_ds5ext
DS5EXTAV
[7];
/* seven available extents */
168
__u8
DS5FMTID
;
/* format identifier */
169
struct
vtoc_ds5ext
DS5MAVET
[18];
/* eighteen available extents */
170
struct
vtoc_cchhb
DS5PTRDS
;
/* pointer to next format5 DSCB */
171
}
__attribute__
((packed));
172
173
struct
vtoc_ds7ext
174
{
175
__u32
a
;
/* starting RTA value */
176
__u32
b
;
/* ending RTA value + 1 */
177
}
__attribute__
((packed));
178
179
struct
vtoc_format7_label
180
{
181
char
DS7KEYID
[4];
/* key identifier */
182
struct
vtoc_ds7ext
DS7EXTNT
[5];
/* space for 5 extent descriptions */
183
__u8
DS7FMTID
;
/* format identifier */
184
struct
vtoc_ds7ext
DS7ADEXT
[11];
/* space for 11 extent descriptions */
185
char
res1
[2];
/* reserved */
186
struct
vtoc_cchhb
DS7PTRDS
;
/* pointer to next FMT7 DSCB */
187
}
__attribute__
((packed));
188
189
struct
vtoc_cms_label
{
190
__u8
label_id
[4];
/* Label identifier */
191
__u8
vol_id
[6];
/* Volid */
192
__u16
version_id
;
/* Version identifier */
193
__u32
block_size
;
/* Disk block size */
194
__u32
origin_ptr
;
/* Disk origin pointer */
195
__u32
usable_count
;
/* Number of usable cylinders/blocks */
196
__u32
formatted_count
;
/* Maximum number of formatted cylinders/
197
* blocks */
198
__u32
block_count
;
/* Disk size in CMS blocks */
199
__u32
used_count
;
/* Number of CMS blocks in use */
200
__u32
fst_size
;
/* File Status Table (FST) size */
201
__u32
fst_count
;
/* Number of FSTs per CMS block */
202
__u8
format_date
[6];
/* Disk FORMAT date */
203
__u8
reserved1
[2];
204
__u32
disk_offset
;
/* Disk offset when reserved*/
205
__u32
map_block
;
/* Allocation Map Block with next hole */
206
__u32
hblk_disp
;
/* Displacement into HBLK data of next hole */
207
__u32
user_disp
;
/* Displacement into user part of Allocation
208
* map */
209
__u8
reserved2
[4];
210
__u8
segment_name
[8];
/* Name of shared segment */
211
}
__attribute__
((packed));
212
213
#endif
/* _ASM_S390_VTOC_H */
Generated on Thu Jan 10 2013 13:16:42 for Linux Kernel by
1.8.2