diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/hmm.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/include/linux/hmm.h b/include/linux/hmm.h index 16f916b437cc..67a03b20a2db 100644 --- a/include/linux/hmm.h +++ b/include/linux/hmm.h @@ -72,11 +72,11 @@ #if IS_ENABLED(CONFIG_HMM) +#include <linux/device.h> #include <linux/migrate.h> #include <linux/memremap.h> #include <linux/completion.h> - struct hmm; /* @@ -474,6 +474,26 @@ static inline unsigned long hmm_devmem_page_get_drvdata(struct page *page) return drvdata[1]; } + + +/* + * struct hmm_device - fake device to hang device memory onto + * + * @device: device struct + * @minor: device minor number + */ +struct hmm_device { + struct device device; + unsigned int minor; +}; + +/* + * A device driver that wants to handle multiple devices memory through a + * single fake device can use hmm_device to do so. This is purely a helper and + * it is not strictly needed, in order to make use of any HMM functionality. + */ +struct hmm_device *hmm_device_new(void *drvdata); +void hmm_device_put(struct hmm_device *hmm_device); #endif /* IS_ENABLED(CONFIG_DEVICE_PRIVATE) */ |