/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef NDTEST_H #define NDTEST_H #include <linux/platform_device.h> #include <linux/libnvdimm.h> struct ndtest_config; struct ndtest_priv { struct platform_device pdev; struct device_node *dn; struct list_head resources; struct nvdimm_bus_descriptor bus_desc; struct nvdimm_bus *bus; struct ndtest_config *config; dma_addr_t *dcr_dma; dma_addr_t *label_dma; dma_addr_t *dimm_dma; }; struct ndtest_blk_mmio { void __iomem *base; u64 size; u64 base_offset; u32 line_size; u32 num_lines; u32 table_size; }; struct ndtest_dimm { struct device *dev; struct nvdimm *nvdimm; struct ndtest_blk_mmio *mmio; struct nd_region *blk_region; dma_addr_t address; unsigned long long flags; unsigned long config_size; void *label_area; char *uuid_str; unsigned int size; unsigned int handle; unsigned int fail_cmd; unsigned int physical_id; unsigned int num_formats; int id; int fail_cmd_code; u8 no_alias; }; struct ndtest_mapping { u64 start; u64 size; u8 position; u8 dimm; }; struct ndtest_region { struct nd_region *region; struct ndtest_mapping *mapping; u64 size; u8 type; u8 num_mappings; u8 range_index; }; struct ndtest_config { struct ndtest_dimm *dimms; struct ndtest_region *regions; unsigned int dimm_count; unsigned int dimm_start; u8 num_regions; }; #endif /* NDTEST_H */