| /* 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 */ |