cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dasd_diag.h (1661B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
      4 * Based on.......: linux/drivers/s390/block/mdisk.h
      5 * ...............: by Hartmunt Penner <hpenner@de.ibm.com>
      6 * Bugreports.to..: <Linux390@de.ibm.com>
      7 * Copyright IBM Corp. 1999, 2000
      8 *
      9 */
     10
     11#define MDSK_WRITE_REQ 0x01
     12#define MDSK_READ_REQ  0x02
     13
     14#define INIT_BIO	0x00
     15#define RW_BIO		0x01
     16#define TERM_BIO	0x02
     17
     18#define DEV_CLASS_FBA	0x01
     19#define DEV_CLASS_ECKD	0x04
     20
     21#define DASD_DIAG_CODE_31BIT		0x03
     22#define DASD_DIAG_CODE_64BIT		0x07
     23
     24#define DASD_DIAG_RWFLAG_ASYNC		0x02
     25#define DASD_DIAG_RWFLAG_NOCACHE	0x01
     26
     27#define DASD_DIAG_FLAGA_FORMAT_64BIT	0x80
     28
     29struct dasd_diag_characteristics {
     30	u16 dev_nr;
     31	u16 rdc_len;
     32	u8 vdev_class;
     33	u8 vdev_type;
     34	u8 vdev_status;
     35	u8 vdev_flags;
     36	u8 rdev_class;
     37	u8 rdev_type;
     38	u8 rdev_model;
     39	u8 rdev_features;
     40} __attribute__ ((packed, aligned(4)));
     41
     42#define DASD_DIAG_FLAGA_DEFAULT		DASD_DIAG_FLAGA_FORMAT_64BIT
     43
     44typedef u64 blocknum_t;
     45typedef s64 sblocknum_t;
     46
     47struct dasd_diag_bio {
     48	u8 type;
     49	u8 status;
     50	u8 spare1[2];
     51	u32 alet;
     52	blocknum_t block_number;
     53	void *buffer;
     54} __attribute__ ((packed, aligned(8)));
     55
     56struct dasd_diag_init_io {
     57	u16 dev_nr;
     58	u8 flaga;
     59	u8 spare1[21];
     60	u32 block_size;
     61	u8 spare2[4];
     62	blocknum_t offset;
     63	sblocknum_t start_block;
     64	blocknum_t end_block;
     65	u8  spare3[8];
     66} __attribute__ ((packed, aligned(8)));
     67
     68struct dasd_diag_rw_io {
     69	u16 dev_nr;
     70	u8  flaga;
     71	u8  spare1[21];
     72	u8  key;
     73	u8  flags;
     74	u8  spare2[2];
     75	u32 block_count;
     76	u32 alet;
     77	u8  spare3[4];
     78	u64 interrupt_params;
     79	struct dasd_diag_bio *bio_list;
     80	u8  spare4[8];
     81} __attribute__ ((packed, aligned(8)));