ndtest.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. #ifndef NDTEST_H
  3. #define NDTEST_H
  4. #include <linux/platform_device.h>
  5. #include <linux/libnvdimm.h>
  6. struct ndtest_config;
  7. struct ndtest_priv {
  8. struct platform_device pdev;
  9. struct device_node *dn;
  10. struct list_head resources;
  11. struct nvdimm_bus_descriptor bus_desc;
  12. struct nvdimm_bus *bus;
  13. struct ndtest_config *config;
  14. dma_addr_t *dcr_dma;
  15. dma_addr_t *label_dma;
  16. dma_addr_t *dimm_dma;
  17. };
  18. struct ndtest_blk_mmio {
  19. void __iomem *base;
  20. u64 size;
  21. u64 base_offset;
  22. u32 line_size;
  23. u32 num_lines;
  24. u32 table_size;
  25. };
  26. struct ndtest_dimm {
  27. struct device *dev;
  28. struct nvdimm *nvdimm;
  29. struct ndtest_blk_mmio *mmio;
  30. struct nd_region *blk_region;
  31. dma_addr_t address;
  32. unsigned long long flags;
  33. unsigned long config_size;
  34. void *label_area;
  35. char *uuid_str;
  36. unsigned int size;
  37. unsigned int handle;
  38. unsigned int fail_cmd;
  39. unsigned int physical_id;
  40. unsigned int num_formats;
  41. int id;
  42. int fail_cmd_code;
  43. u8 no_alias;
  44. };
  45. struct ndtest_mapping {
  46. u64 start;
  47. u64 size;
  48. u8 position;
  49. u8 dimm;
  50. };
  51. struct ndtest_region {
  52. struct nd_region *region;
  53. struct ndtest_mapping *mapping;
  54. u64 size;
  55. u8 type;
  56. u8 num_mappings;
  57. u8 range_index;
  58. };
  59. struct ndtest_config {
  60. struct ndtest_dimm *dimms;
  61. struct ndtest_region *regions;
  62. unsigned int dimm_count;
  63. unsigned int dimm_start;
  64. u8 num_regions;
  65. };
  66. #endif /* NDTEST_H */