dasd_diag.h 1.6 KB

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