cregit-Linux how code gets into the kernel

Release 4.7 drivers/s390/char/tape_3590.h

/*
 *    tape device discipline for 3590 tapes.
 *
 *    Copyright IBM Corp. 2001, 2006
 *    Author(s): Stefan Bader <shbader@de.ibm.com>
 *               Michael Holzheu <holzheu@de.ibm.com>
 *               Martin Schwidefsky <schwidefsky@de.ibm.com>
 */

#ifndef _TAPE_3590_H

#define _TAPE_3590_H


#define MEDIUM_SENSE	0xc2

#define READ_PREVIOUS	0x0a

#define MODE_SENSE	0xcf

#define PERFORM_SS_FUNC 0x77

#define READ_SS_DATA	0x3e


#define PREP_RD_SS_DATA 0x18

#define RD_ATTMSG	0x3


#define SENSE_BRA_PER  0

#define SENSE_BRA_CONT 1

#define SENSE_BRA_RE   2

#define SENSE_BRA_DRE  3


#define SENSE_FMT_LIBRARY	0x23

#define SENSE_FMT_UNSOLICITED	0x40

#define SENSE_FMT_COMMAND_REJ	0x41

#define SENSE_FMT_COMMAND_EXEC0 0x50

#define SENSE_FMT_COMMAND_EXEC1 0x51

#define SENSE_FMT_EVENT0	0x60

#define SENSE_FMT_EVENT1	0x61

#define SENSE_FMT_MIM		0x70

#define SENSE_FMT_SIM		0x71


#define MSENSE_UNASSOCIATED	 0x00

#define MSENSE_ASSOCIATED_MOUNT	 0x01

#define MSENSE_ASSOCIATED_UMOUNT 0x02

#define MSENSE_CRYPT_MASK	 0x00000010


#define TAPE_3590_MAX_MSG	 0xb0

/* Datatypes */


struct tape_3590_disc_data {
	
struct tape390_crypt_info crypt_info;
	
int read_back_op;
};


#define TAPE_3590_CRYPT_INFO(device) \
	((struct tape_3590_disc_data*)(device->discdata))->crypt_info

#define TAPE_3590_READ_BACK_OP(device) \
	((struct tape_3590_disc_data*)(device->discdata))->read_back_op


struct tape_3590_sense {

	
unsigned int command_rej:1;
	
unsigned int interv_req:1;
	
unsigned int bus_out_check:1;
	
unsigned int eq_check:1;
	
unsigned int data_check:1;
	
unsigned int overrun:1;
	
unsigned int def_unit_check:1;
	
unsigned int assgnd_elsew:1;

	
unsigned int locate_fail:1;
	
unsigned int inst_online:1;
	
unsigned int reserved:1;
	
unsigned int blk_seq_err:1;
	
unsigned int begin_part:1;
	
unsigned int wr_mode:1;
	
unsigned int wr_prot:1;
	
unsigned int not_cap:1;

	
unsigned int bra:2;
	
unsigned int lc:3;
	
unsigned int vlf_active:1;
	
unsigned int stm:1;
	
unsigned int med_pos:1;

	
unsigned int rac:8;

	
unsigned int rc_rqc:16;

	
unsigned int mc:8;

	
unsigned int sense_fmt:8;

	union {
		struct {
			
unsigned int emc:4;
			
unsigned int smc:4;
			
unsigned int sev:2;
			
unsigned int reserved:6;
			
unsigned int md:8;
			
unsigned int refcode:8;
			
unsigned int mid:16;
			
unsigned int mp:16;
			
unsigned char volid[6];
			
unsigned int fid:8;
		} 
f70;
		struct {
			
unsigned int emc:4;
			
unsigned int smc:4;
			
unsigned int sev:2;
			
unsigned int reserved1:5;
			
unsigned int mdf:1;
			
unsigned char md[3];
			
unsigned int simid:8;
			
unsigned int uid:16;
			
unsigned int refcode1:16;
			
unsigned int refcode2:16;
			
unsigned int refcode3:16;
			
unsigned int reserved2:8;
		} 
f71;
		
unsigned char data[14];
	} 
fmt;
	
unsigned char pad[10];

} __attribute__ ((packed));


struct tape_3590_med_sense {
	
unsigned int macst:4;
	
unsigned int masst:4;
	
char pad1[7];
	
unsigned int flags;
	
char pad2[116];
} __attribute__ ((packed));


struct tape_3590_rdc_data {
	
char data[64];
} __attribute__ ((packed));

/* Datastructures for 3592 encryption support */


struct tape3592_kekl {
	
__u8 flags;
	
char label[64];
} __attribute__ ((packed));


struct tape3592_kekl_pair {
	
__u8 count;
	
struct tape3592_kekl kekl[2];
} __attribute__ ((packed));


struct tape3592_kekl_query_data {
	
__u16 len;
	
__u8  fmt;
	
__u8  mc;
	
__u32 id;
	
__u8  flags;
	
struct tape3592_kekl_pair kekls;
	
char reserved[116];
} __attribute__ ((packed));


struct tape3592_kekl_query_order {
	
__u8 code;
	
__u8 flags;
	
char reserved1[2];
	
__u8 max_count;
	
char reserved2[35];
} __attribute__ ((packed));


struct tape3592_kekl_set_order {
	
__u8 code;
	
__u8 flags;
	
char reserved1[2];
	
__u8 op;
	
struct tape3592_kekl_pair kekls;
	
char reserved2[120];
} __attribute__ ((packed));

#endif /* _TAPE_3590_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
stefan baderstefan bader46670.08%125.00%
michael holzheumichael holzheu19829.77%250.00%
heiko carstensheiko carstens10.15%125.00%
Total665100.00%4100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}