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