0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef _ASM_S390_VTOC_H
0012 #define _ASM_S390_VTOC_H
0013
0014 #include <linux/types.h>
0015
0016 struct vtoc_ttr
0017 {
0018 __u16 tt;
0019 __u8 r;
0020 } __attribute__ ((packed));
0021
0022 struct vtoc_cchhb
0023 {
0024 __u16 cc;
0025 __u16 hh;
0026 __u8 b;
0027 } __attribute__ ((packed));
0028
0029 struct vtoc_cchh
0030 {
0031 __u16 cc;
0032 __u16 hh;
0033 } __attribute__ ((packed));
0034
0035 struct vtoc_labeldate
0036 {
0037 __u8 year;
0038 __u16 day;
0039 } __attribute__ ((packed));
0040
0041 struct vtoc_volume_label_cdl
0042 {
0043 char volkey[4];
0044 char vollbl[4];
0045 char volid[6];
0046 __u8 security;
0047 struct vtoc_cchhb vtoc;
0048 char res1[5];
0049 char cisize[4];
0050
0051 char blkperci[4];
0052 char labperci[4];
0053 char res2[4];
0054 char lvtoc[14];
0055 char res3[29];
0056 } __attribute__ ((packed));
0057
0058 struct vtoc_volume_label_ldl {
0059 char vollbl[4];
0060 char volid[6];
0061 char res3[69];
0062 char ldl_version;
0063 __u64 formatted_blocks;
0064 } __attribute__ ((packed));
0065
0066 struct vtoc_extent
0067 {
0068 __u8 typeind;
0069 __u8 seqno;
0070 struct vtoc_cchh llimit;
0071 struct vtoc_cchh ulimit;
0072 } __attribute__ ((packed));
0073
0074 struct vtoc_dev_const
0075 {
0076 __u16 DS4DSCYL;
0077 __u16 DS4DSTRK;
0078 __u16 DS4DEVTK;
0079 __u8 DS4DEVI;
0080 __u8 DS4DEVL;
0081 __u8 DS4DEVK;
0082 __u8 DS4DEVFG;
0083 __u16 DS4DEVTL;
0084 __u8 DS4DEVDT;
0085 __u8 DS4DEVDB;
0086 } __attribute__ ((packed));
0087
0088 struct vtoc_format1_label
0089 {
0090 char DS1DSNAM[44];
0091 __u8 DS1FMTID;
0092 char DS1DSSN[6];
0093 __u16 DS1VOLSQ;
0094 struct vtoc_labeldate DS1CREDT;
0095 struct vtoc_labeldate DS1EXPDT;
0096 __u8 DS1NOEPV;
0097 __u8 DS1NOBDB;
0098 __u8 DS1FLAG1;
0099 char DS1SYSCD[13];
0100 struct vtoc_labeldate DS1REFD;
0101 __u8 DS1SMSFG;
0102 __u8 DS1SCXTF;
0103 __u16 DS1SCXTV;
0104 __u8 DS1DSRG1;
0105 __u8 DS1DSRG2;
0106 __u8 DS1RECFM;
0107 __u8 DS1OPTCD;
0108 __u16 DS1BLKL;
0109 __u16 DS1LRECL;
0110 __u8 DS1KEYL;
0111 __u16 DS1RKP;
0112 __u8 DS1DSIND;
0113 __u8 DS1SCAL1;
0114 char DS1SCAL3[3];
0115 struct vtoc_ttr DS1LSTAR;
0116 __u16 DS1TRBAL;
0117 __u16 res1;
0118 struct vtoc_extent DS1EXT1;
0119 struct vtoc_extent DS1EXT2;
0120 struct vtoc_extent DS1EXT3;
0121 struct vtoc_cchhb DS1PTRDS;
0122 } __attribute__ ((packed));
0123
0124 struct vtoc_format4_label
0125 {
0126 char DS4KEYCD[44];
0127 __u8 DS4IDFMT;
0128 struct vtoc_cchhb DS4HPCHR;
0129 __u16 DS4DSREC;
0130 struct vtoc_cchh DS4HCCHH;
0131 __u16 DS4NOATK;
0132 __u8 DS4VTOCI;
0133 __u8 DS4NOEXT;
0134 __u8 DS4SMSFG;
0135 __u8 DS4DEVAC;
0136
0137
0138
0139
0140 struct vtoc_dev_const DS4DEVCT;
0141 char DS4AMTIM[8];
0142 char DS4AMCAT[3];
0143 char DS4R2TIM[8];
0144 char res1[5];
0145 char DS4F6PTR[5];
0146 struct vtoc_extent DS4VTOCE;
0147 char res2[10];
0148 __u8 DS4EFLVL;
0149 struct vtoc_cchhb DS4EFPTR;
0150 char res3;
0151 __u32 DS4DCYL;
0152 char res4[2];
0153 __u8 DS4DEVF2;
0154 char res5;
0155 } __attribute__ ((packed));
0156
0157 struct vtoc_ds5ext
0158 {
0159 __u16 t;
0160 __u16 fc;
0161 __u8 ft;
0162 } __attribute__ ((packed));
0163
0164 struct vtoc_format5_label
0165 {
0166 char DS5KEYID[4];
0167 struct vtoc_ds5ext DS5AVEXT;
0168 struct vtoc_ds5ext DS5EXTAV[7];
0169 __u8 DS5FMTID;
0170 struct vtoc_ds5ext DS5MAVET[18];
0171 struct vtoc_cchhb DS5PTRDS;
0172 } __attribute__ ((packed));
0173
0174 struct vtoc_ds7ext
0175 {
0176 __u32 a;
0177 __u32 b;
0178 } __attribute__ ((packed));
0179
0180 struct vtoc_format7_label
0181 {
0182 char DS7KEYID[4];
0183 struct vtoc_ds7ext DS7EXTNT[5];
0184 __u8 DS7FMTID;
0185 struct vtoc_ds7ext DS7ADEXT[11];
0186 char res1[2];
0187 struct vtoc_cchhb DS7PTRDS;
0188 } __attribute__ ((packed));
0189
0190 struct vtoc_cms_label {
0191 __u8 label_id[4];
0192 __u8 vol_id[6];
0193 __u16 version_id;
0194 __u32 block_size;
0195 __u32 origin_ptr;
0196 __u32 usable_count;
0197 __u32 formatted_count;
0198
0199 __u32 block_count;
0200 __u32 used_count;
0201 __u32 fst_size;
0202 __u32 fst_count;
0203 __u8 format_date[6];
0204 __u8 reserved1[2];
0205 __u32 disk_offset;
0206 __u32 map_block;
0207 __u32 hblk_disp;
0208 __u32 user_disp;
0209
0210 __u8 reserved2[4];
0211 __u8 segment_name[8];
0212 } __attribute__ ((packed));
0213
0214 #endif