dasd_fba.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  4. * Bugreports.to..: <Linux390@de.ibm.com>
  5. * Copyright IBM Corp. 1999, 2000
  6. *
  7. */
  8. #ifndef DASD_FBA_H
  9. #define DASD_FBA_H
  10. /*
  11. * Maximum number of blocks to be chained
  12. */
  13. #define DASD_FBA_MAX_BLOCKS 96
  14. struct DE_fba_data {
  15. struct {
  16. unsigned char perm:2; /* Permissions on this extent */
  17. unsigned char zero:2; /* Must be zero */
  18. unsigned char da:1; /* usually zero */
  19. unsigned char diag:1; /* allow diagnose */
  20. unsigned char zero2:2; /* zero */
  21. } __attribute__ ((packed)) mask;
  22. __u8 zero; /* Must be zero */
  23. __u16 blk_size; /* Blocksize */
  24. __u32 ext_loc; /* Extent locator */
  25. __u32 ext_beg; /* logical number of block 0 in extent */
  26. __u32 ext_end; /* logocal number of last block in extent */
  27. } __attribute__ ((packed));
  28. struct LO_fba_data {
  29. struct {
  30. unsigned char zero:4;
  31. unsigned char cmd:4;
  32. } __attribute__ ((packed)) operation;
  33. __u8 auxiliary;
  34. __u16 blk_ct;
  35. __u32 blk_nr;
  36. } __attribute__ ((packed));
  37. struct dasd_fba_characteristics {
  38. union {
  39. __u8 c;
  40. struct {
  41. unsigned char reserved:1;
  42. unsigned char overrunnable:1;
  43. unsigned char burst_byte:1;
  44. unsigned char data_chain:1;
  45. unsigned char zeros:4;
  46. } __attribute__ ((packed)) bits;
  47. } __attribute__ ((packed)) mode;
  48. union {
  49. __u8 c;
  50. struct {
  51. unsigned char zero0:1;
  52. unsigned char removable:1;
  53. unsigned char shared:1;
  54. unsigned char zero1:1;
  55. unsigned char mam:1;
  56. unsigned char zeros:3;
  57. } __attribute__ ((packed)) bits;
  58. } __attribute__ ((packed)) features;
  59. __u8 dev_class;
  60. __u8 unit_type;
  61. __u16 blk_size;
  62. __u32 blk_per_cycl;
  63. __u32 blk_per_bound;
  64. __u32 blk_bdsa;
  65. __u32 reserved0;
  66. __u16 reserved1;
  67. __u16 blk_ce;
  68. __u32 reserved2;
  69. __u16 reserved3;
  70. } __attribute__ ((packed));
  71. #endif /* DASD_FBA_H */