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