#include <linux/kernel.h> #include <linux/mm.h> #include <linux/slab.h> #include <linux/uaccess.h> #include <linux/ktime.h> #include <linux/debugfs.h> #include <linux/highmem.h> #include "gup_test.h" static void put_back_pages(unsigned int cmd, struct page **pages, unsigned long nr_pages, unsigned int gup_test_flags) { … } static void verify_dma_pinned(unsigned int cmd, struct page **pages, unsigned long nr_pages) { … } static void dump_pages_test(struct gup_test *gup, struct page **pages, unsigned long nr_pages) { … } static int __gup_test_ioctl(unsigned int cmd, struct gup_test *gup) { … } static DEFINE_MUTEX(pin_longterm_test_mutex); static struct page **pin_longterm_test_pages; static unsigned long pin_longterm_test_nr_pages; static inline void pin_longterm_test_stop(void) { … } static inline int pin_longterm_test_start(unsigned long arg) { … } static inline int pin_longterm_test_read(unsigned long arg) { … } static long pin_longterm_test_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) { … } static long gup_test_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) { … } static int gup_test_release(struct inode *inode, struct file *file) { … } static const struct file_operations gup_test_fops = …; static int __init gup_test_init(void) { … } late_initcall(gup_test_init);