brintos

brintos / linux-shallow public Read only

0
0
Text · 3.7 KiB · b398d8a Raw
176 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 *    tape device discipline for 3590 tapes.4 *5 *    Copyright IBM Corp. 2001, 20066 *    Author(s): Stefan Bader <shbader@de.ibm.com>7 *		 Michael Holzheu <holzheu@de.ibm.com>8 *		 Martin Schwidefsky <schwidefsky@de.ibm.com>9 */10 11#ifndef _TAPE_3590_H12#define _TAPE_3590_H13 14#define MEDIUM_SENSE	0xc215#define READ_PREVIOUS	0x0a16#define MODE_SENSE	0xcf17#define PERFORM_SS_FUNC 0x7718#define READ_SS_DATA	0x3e19 20#define PREP_RD_SS_DATA 0x1821#define RD_ATTMSG	0x322 23#define SENSE_BRA_PER  024#define SENSE_BRA_CONT 125#define SENSE_BRA_RE   226#define SENSE_BRA_DRE  327 28#define SENSE_FMT_LIBRARY	0x2329#define SENSE_FMT_UNSOLICITED	0x4030#define SENSE_FMT_COMMAND_REJ	0x4131#define SENSE_FMT_COMMAND_EXEC0 0x5032#define SENSE_FMT_COMMAND_EXEC1 0x5133#define SENSE_FMT_EVENT0	0x6034#define SENSE_FMT_EVENT1	0x6135#define SENSE_FMT_MIM		0x7036#define SENSE_FMT_SIM		0x7137 38#define MSENSE_UNASSOCIATED	 0x0039#define MSENSE_ASSOCIATED_MOUNT	 0x0140#define MSENSE_ASSOCIATED_UMOUNT 0x0241#define MSENSE_CRYPT_MASK	 0x0000001042 43#define TAPE_3590_MAX_MSG	 0xb044 45/* Datatypes */46 47struct tape_3590_disc_data {48	struct tape390_crypt_info crypt_info;49	int read_back_op;50};51 52#define TAPE_3590_CRYPT_INFO(device) \53	((struct tape_3590_disc_data*)(device->discdata))->crypt_info54#define TAPE_3590_READ_BACK_OP(device) \55	((struct tape_3590_disc_data*)(device->discdata))->read_back_op56 57struct tape_3590_sense {58 59	unsigned int command_rej:1;60	unsigned int interv_req:1;61	unsigned int bus_out_check:1;62	unsigned int eq_check:1;63	unsigned int data_check:1;64	unsigned int overrun:1;65	unsigned int def_unit_check:1;66	unsigned int assgnd_elsew:1;67 68	unsigned int locate_fail:1;69	unsigned int inst_online:1;70	unsigned int reserved:1;71	unsigned int blk_seq_err:1;72	unsigned int begin_part:1;73	unsigned int wr_mode:1;74	unsigned int wr_prot:1;75	unsigned int not_cap:1;76 77	unsigned int bra:2;78	unsigned int lc:3;79	unsigned int vlf_active:1;80	unsigned int stm:1;81	unsigned int med_pos:1;82 83	unsigned int rac:8;84 85	unsigned int rc_rqc:16;86 87	unsigned int mc:8;88 89	unsigned int sense_fmt:8;90 91	union {92		struct {93			unsigned int emc:4;94			unsigned int smc:4;95			unsigned int sev:2;96			unsigned int reserved:6;97			unsigned int md:8;98			unsigned int refcode:8;99			unsigned int mid:16;100			unsigned int mp:16;101			unsigned char volid[6];102			unsigned int fid:8;103		} f70;104		struct {105			unsigned int emc:4;106			unsigned int smc:4;107			unsigned int sev:2;108			unsigned int reserved1:5;109			unsigned int mdf:1;110			unsigned char md[3];111			unsigned int simid:8;112			unsigned int uid:16;113			unsigned int refcode1:16;114			unsigned int refcode2:16;115			unsigned int refcode3:16;116			unsigned int reserved2:8;117		} f71;118		unsigned char data[14];119	} fmt;120	unsigned char pad[10];121 122} __attribute__ ((packed));123 124struct tape_3590_med_sense {125	unsigned int macst:4;126	unsigned int masst:4;127	char pad1[7];128	unsigned int flags;129	char pad2[116];130} __attribute__ ((packed));131 132struct tape_3590_rdc_data {133	char data[64];134} __attribute__ ((packed));135 136/* Datastructures for 3592 encryption support */137 138struct tape3592_kekl {139	__u8 flags;140	char label[64];141} __attribute__ ((packed));142 143struct tape3592_kekl_pair {144	__u8 count;145	struct tape3592_kekl kekl[2];146} __attribute__ ((packed));147 148struct tape3592_kekl_query_data {149	__u16 len;150	__u8  fmt;151	__u8  mc;152	__u32 id;153	__u8  flags;154	struct tape3592_kekl_pair kekls;155	char reserved[116];156} __attribute__ ((packed));157 158struct tape3592_kekl_query_order {159	__u8 code;160	__u8 flags;161	char reserved1[2];162	__u8 max_count;163	char reserved2[35];164} __attribute__ ((packed));165 166struct tape3592_kekl_set_order {167	__u8 code;168	__u8 flags;169	char reserved1[2];170	__u8 op;171	struct tape3592_kekl_pair kekls;172	char reserved2[120];173} __attribute__ ((packed));174 175#endif /* _TAPE_3590_H */176