Blame view
drivers/dax/bus.h
1.88 KB
51cf784c4 device-dax: Start... |
1 2 3 4 |
// SPDX-License-Identifier: GPL-2.0 /* Copyright(c) 2016 - 2018 Intel Corporation. All rights reserved. */ #ifndef __DAX_BUS_H__ #define __DAX_BUS_H__ |
730926c3b device-dax: Add /... |
5 |
#include <linux/device.h> |
f5516ec5e device-dax: make ... |
6 |
#include <linux/range.h> |
730926c3b device-dax: Add /... |
7 |
|
51cf784c4 device-dax: Start... |
8 9 10 11 12 |
struct dev_dax; struct resource; struct dax_device; struct dax_region; void dax_region_put(struct dax_region *dax_region); |
c2f3011ee device-dax: add a... |
13 14 |
#define IORESOURCE_DAX_STATIC (1UL << 0) |
51cf784c4 device-dax: Start... |
15 |
struct dax_region *alloc_dax_region(struct device *parent, int region_id, |
a4574f63e mm/memremap_pages... |
16 |
struct range *range, int target_node, unsigned int align, |
c2f3011ee device-dax: add a... |
17 |
unsigned long flags); |
730926c3b device-dax: Add /... |
18 19 |
enum dev_dax_subsys { |
174ebece3 device-dax: move ... |
20 |
DEV_DAX_BUS = 0, /* zeroed dev_dax_data picks this by default */ |
730926c3b device-dax: Add /... |
21 22 |
DEV_DAX_CLASS, }; |
174ebece3 device-dax: move ... |
23 24 25 26 |
struct dev_dax_data { struct dax_region *dax_region; struct dev_pagemap *pgmap; enum dev_dax_subsys subsys; |
c2f3011ee device-dax: add a... |
27 |
resource_size_t size; |
174ebece3 device-dax: move ... |
28 29 |
int id; }; |
730926c3b device-dax: Add /... |
30 |
|
174ebece3 device-dax: move ... |
31 |
struct dev_dax *devm_create_dev_dax(struct dev_dax_data *data); |
730926c3b device-dax: Add /... |
32 33 34 |
/* to be deleted when DEV_DAX_CLASS is removed */ struct dev_dax *__dax_pmem_probe(struct device *dev, enum dev_dax_subsys subsys); |
d200781ef device-dax: Add s... |
35 36 37 38 39 |
struct dax_device_driver { struct device_driver drv; struct list_head ids; int match_always; |
f11cf813d device-dax: intro... |
40 41 |
int (*probe)(struct dev_dax *dev); int (*remove)(struct dev_dax *dev); |
d200781ef device-dax: Add s... |
42 43 44 |
}; int __dax_driver_register(struct dax_device_driver *dax_drv, |
9567da0b4 device-dax: Intro... |
45 46 47 |
struct module *module, const char *mod_name); #define dax_driver_register(driver) \ __dax_driver_register(driver, THIS_MODULE, KBUILD_MODNAME) |
d200781ef device-dax: Add s... |
48 |
void dax_driver_unregister(struct dax_device_driver *dax_drv); |
51cf784c4 device-dax: Start... |
49 |
void kill_dev_dax(struct dev_dax *dev_dax); |
9567da0b4 device-dax: Intro... |
50 |
|
730926c3b device-dax: Add /... |
51 |
#if IS_ENABLED(CONFIG_DEV_DAX_PMEM_COMPAT) |
f11cf813d device-dax: intro... |
52 |
int dev_dax_probe(struct dev_dax *dev_dax); |
730926c3b device-dax: Add /... |
53 |
#endif |
9567da0b4 device-dax: Intro... |
54 55 56 57 58 59 60 61 62 63 |
/* * While run_dax() is potentially a generic operation that could be * defined in include/linux/dax.h we don't want to grow any users * outside of drivers/dax/ */ void run_dax(struct dax_device *dax_dev); #define MODULE_ALIAS_DAX_DEVICE(type) \ MODULE_ALIAS("dax:t" __stringify(type) "*") #define DAX_DEVICE_MODALIAS_FMT "dax:t%d" |
51cf784c4 device-dax: Start... |
64 |
#endif /* __DAX_BUS_H__ */ |