From d38f58104473f53c8d37d0734a73e6a3510b7e0f Mon Sep 17 00:00:00 2001 From: redlightASl Date: Thu, 6 Apr 2023 18:42:12 +0800 Subject: [PATCH 1/2] Import APIs to Linux5.x --- host_software/driver/xdma/cdev_ctrl.c | 11 ++++++----- host_software/driver/xdma/cdev_xvc.c | 2 +- host_software/driver/xdma/libxdma.c | 2 +- host_software/driver/xdma/xdma_mod.c | 4 +++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/host_software/driver/xdma/cdev_ctrl.c b/host_software/driver/xdma/cdev_ctrl.c index 2de5c5e..d4c811b 100644 --- a/host_software/driver/xdma/cdev_ctrl.c +++ b/host_software/driver/xdma/cdev_ctrl.c @@ -134,12 +134,13 @@ long char_ctrl_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) } if (_IOC_DIR(cmd) & _IOC_READ) - result = !access_ok(VERIFY_WRITE, (void __user *)arg, - _IOC_SIZE(cmd)); + //result = !access_ok(VERIFY_WRITE, (void __user *)arg, + // _IOC_SIZE(cmd)); + result = !access_ok((void __user *)arg, _IOC_SIZE(cmd)); else if (_IOC_DIR(cmd) & _IOC_WRITE) - result = !access_ok(VERIFY_READ, (void __user *)arg, - _IOC_SIZE(cmd)); - + //result = !access_ok(VERIFY_READ, (void __user *)arg, + // _IOC_SIZE(cmd)); + result = !access_ok((void __user *)arg, _IOC_SIZE(cmd)); if (result) { pr_err("bad access %ld.\n", result); return -EFAULT; diff --git a/host_software/driver/xdma/cdev_xvc.c b/host_software/driver/xdma/cdev_xvc.c index 20ebde9..b96f518 100644 --- a/host_software/driver/xdma/cdev_xvc.c +++ b/host_software/driver/xdma/cdev_xvc.c @@ -203,7 +203,7 @@ static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) if (buffer) kfree(buffer); - mmiowb(); + wmb(); //! spin_unlock(&xcdev->lock); return rv; diff --git a/host_software/driver/xdma/libxdma.c b/host_software/driver/xdma/libxdma.c index b9884d7..7a59ef0 100644 --- a/host_software/driver/xdma/libxdma.c +++ b/host_software/driver/xdma/libxdma.c @@ -633,7 +633,7 @@ static struct xdma_transfer *engine_start(struct xdma_engine *engine) dbg_tfr("ioread32(0x%p) (dummy read flushes writes).\n", &engine->regs->status); - mmiowb(); + wmb(); //! engine_start_mode_config(engine); diff --git a/host_software/driver/xdma/xdma_mod.c b/host_software/driver/xdma/xdma_mod.c index 0004809..d4efbe7 100644 --- a/host_software/driver/xdma/xdma_mod.c +++ b/host_software/driver/xdma/xdma_mod.c @@ -27,6 +27,7 @@ #define DRV_MODULE_DESC "Xilinx XDMA Reference Driver" #define DRV_MODULE_RELDATE "Feb. 2018" + static char version[] = DRV_MODULE_DESC " " DRV_MODULE_NAME " v" DRV_MODULE_VERSION "\n"; @@ -257,7 +258,8 @@ static void xdma_error_resume(struct pci_dev *pdev) struct xdma_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); pr_info("dev 0x%p,0x%p.\n", pdev, xpdev); - pci_cleanup_aer_uncorrect_error_status(pdev); + //!pci_cleanup_aer_uncorrect_error_status(pdev); + pci_aer_clear_nonfatal_status(pdev); } #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0) From d06eb8ad76ce3a3a3a2b8480a1f466c77eadc17b Mon Sep 17 00:00:00 2001 From: redlightASl Date: Fri, 7 Apr 2023 12:22:25 +0800 Subject: [PATCH 2/2] Sync with newer Xilinx XDMA Driver --- doc/load_xdma_driver.md | 38 +- .../driver/XDMA/linux-kernel/COPYING | 340 ++ .../driver/XDMA/linux-kernel/LICENSE | 30 + .../driver/XDMA/linux-kernel/RELEASE | 39 + .../linux-kernel/include}/libxdma_api.h | 28 +- .../driver/XDMA/linux-kernel/readme.txt | 177 + .../linux-kernel/tests/data/datafile0_4K.bin | Bin 0 -> 4096 bytes .../linux-kernel/tests/data/datafile1_4K.bin | Bin 0 -> 4096 bytes .../linux-kernel/tests/data/datafile2_4K.bin | Bin 0 -> 4096 bytes .../linux-kernel/tests/data/datafile3_4K.bin | Bin 0 -> 4096 bytes .../linux-kernel/tests/data/datafile_256K.bin | Bin 0 -> 263183 bytes .../linux-kernel/tests/data/datafile_32M.bin | Bin 0 -> 33554432 bytes .../linux-kernel/tests/data/datafile_8K.bin | Bin 0 -> 8192 bytes .../tests/data/output_datafile0_4K.bin | Bin 0 -> 1024 bytes .../tests/data/output_datafile1_4K.bin | Bin 0 -> 1024 bytes .../tests/data/output_datafile2_4K.bin | Bin 0 -> 1024 bytes .../tests/data/output_datafile3_4K.bin | Bin 0 -> 1024 bytes .../tests/dma_memory_mapped_test.sh | 115 + .../linux-kernel/tests/dma_streaming_test.sh | 65 + .../XDMA/linux-kernel/tests/load_driver.sh | 100 + .../linux-kernel/tests/perform_hwcount.sh | 38 + .../XDMA/linux-kernel/tests/run_test.sh | 113 + .../tests/scripts_mm/fio_parse_result.sh | 180 + .../linux-kernel/tests/scripts_mm/fio_test.sh | 70 + .../XDMA/linux-kernel/tests/scripts_mm/io.sh | 130 + .../linux-kernel/tests/scripts_mm/io_sweep.sh | 87 + .../linux-kernel/tests/scripts_mm/libtest.sh | 187 + .../tests/scripts_mm/unaligned.sh | 93 + .../linux-kernel/tests/scripts_mm/xdma_mm.sh | 164 + .../driver/XDMA/linux-kernel/tools/Makefile | 24 + .../XDMA/linux-kernel/tools/dma_from_device.c | 304 ++ .../XDMA/linux-kernel/tools/dma_to_device.c | 318 ++ .../XDMA/linux-kernel/tools/dma_utils.c | 183 + .../XDMA/linux-kernel/tools/performance.c | 174 + .../driver/XDMA/linux-kernel/tools/reg_rw.c | 179 + .../XDMA/linux-kernel/tools/test_chrdev.c | 46 + .../linux-kernel/xdma/.Module.symvers.cmd | 1 + .../XDMA/linux-kernel/xdma/.cdev_bypass.o.cmd | 1427 +++++++ .../XDMA/linux-kernel/xdma/.cdev_ctrl.o.cmd | 1428 +++++++ .../XDMA/linux-kernel/xdma/.cdev_events.o.cmd | 1426 +++++++ .../XDMA/linux-kernel/xdma/.cdev_sgdma.o.cmd | 1428 +++++++ .../XDMA/linux-kernel/xdma/.cdev_xvc.o.cmd | 1427 +++++++ .../XDMA/linux-kernel/xdma/.libxdma.o.cmd | 1154 ++++++ .../XDMA/linux-kernel/xdma/.modules.order.cmd | 1 + .../XDMA/linux-kernel/xdma/.xdma.ko.cmd | 1 + .../XDMA/linux-kernel/xdma/.xdma.mod.cmd | 1 + .../XDMA/linux-kernel/xdma/.xdma.mod.o.cmd | 704 ++++ .../driver/XDMA/linux-kernel/xdma/.xdma.o.cmd | 1 + .../XDMA/linux-kernel/xdma/.xdma_cdev.o.cmd | 1426 +++++++ .../XDMA/linux-kernel/xdma/.xdma_mod.o.cmd | 1429 +++++++ .../XDMA/linux-kernel/xdma/.xdma_thread.o.cmd | 1152 ++++++ .../{ => XDMA/linux-kernel}/xdma/Makefile | 24 +- .../XDMA/linux-kernel/xdma/Module.symvers | 0 .../linux-kernel}/xdma/cdev_bypass.c | 46 +- .../{ => XDMA/linux-kernel}/xdma/cdev_ctrl.c | 75 +- .../{ => XDMA/linux-kernel}/xdma/cdev_ctrl.h | 31 +- .../linux-kernel}/xdma/cdev_events.c | 19 +- .../XDMA/linux-kernel/xdma/cdev_sgdma.c | 910 +++++ .../{ => XDMA/linux-kernel}/xdma/cdev_sgdma.h | 48 +- .../{ => XDMA/linux-kernel}/xdma/cdev_xvc.c | 89 +- .../driver/XDMA/linux-kernel/xdma/cdev_xvc.h | 42 + .../{ => XDMA/linux-kernel}/xdma/libxdma.c | 3545 +++++++++-------- .../{ => XDMA/linux-kernel}/xdma/libxdma.h | 188 +- .../XDMA/linux-kernel/xdma/modules.order | 1 + .../driver/XDMA/linux-kernel/xdma/version.h | 35 + .../driver/XDMA/linux-kernel/xdma/xdma.mod | 2 + .../driver/XDMA/linux-kernel/xdma/xdma.mod.c | 216 + .../{ => XDMA/linux-kernel}/xdma/xdma_cdev.c | 237 +- .../{ => XDMA/linux-kernel}/xdma/xdma_cdev.h | 19 +- .../{ => XDMA/linux-kernel}/xdma/xdma_mod.c | 147 +- .../{ => XDMA/linux-kernel}/xdma/xdma_mod.h | 40 +- .../XDMA/linux-kernel/xdma/xdma_thread.c | 339 ++ .../XDMA/linux-kernel/xdma/xdma_thread.h | 147 + host_software/driver/load_driver.sh | 46 - host_software/driver/xdma/.cdev_bypass.o.cmd | 995 ----- host_software/driver/xdma/.cdev_ctrl.o.cmd | 996 ----- host_software/driver/xdma/.cdev_events.o.cmd | 994 ----- host_software/driver/xdma/.cdev_sgdma.o.cmd | 1000 ----- host_software/driver/xdma/.cdev_xvc.o.cmd | 995 ----- host_software/driver/xdma/.libxdma.o.cmd | 944 ----- .../driver/xdma/.tmp_versions/xdma.mod | 2 - host_software/driver/xdma/.xdma.ko.cmd | 1 - host_software/driver/xdma/.xdma.mod.o.cmd | 620 --- host_software/driver/xdma/.xdma.o.cmd | 1 - host_software/driver/xdma/.xdma_cdev.o.cmd | 994 ----- host_software/driver/xdma/.xdma_mod.o.cmd | 997 ----- host_software/driver/xdma/Module.symvers | 14 - host_software/driver/xdma/cdev_sgdma.c | 552 --- host_software/driver/xdma/cdev_xvc.h | 36 - host_software/driver/xdma/libxdma.o.ur-safe | 3 - host_software/driver/xdma/modules.order | 1 - host_software/driver/xdma/version.h | 28 - host_software/driver/xdma/xdma.mod.c | 178 - 93 files changed, 20480 insertions(+), 11345 deletions(-) create mode 100644 host_software/driver/XDMA/linux-kernel/COPYING create mode 100644 host_software/driver/XDMA/linux-kernel/LICENSE create mode 100644 host_software/driver/XDMA/linux-kernel/RELEASE rename host_software/driver/{xdma => XDMA/linux-kernel/include}/libxdma_api.h (79%) create mode 100644 host_software/driver/XDMA/linux-kernel/readme.txt create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/datafile0_4K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/datafile1_4K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/datafile2_4K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/datafile3_4K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/datafile_256K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/datafile_32M.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/datafile_8K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/output_datafile0_4K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/output_datafile1_4K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/output_datafile2_4K.bin create mode 100644 host_software/driver/XDMA/linux-kernel/tests/data/output_datafile3_4K.bin create mode 100755 host_software/driver/XDMA/linux-kernel/tests/dma_memory_mapped_test.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/dma_streaming_test.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/load_driver.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/perform_hwcount.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/run_test.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/scripts_mm/fio_parse_result.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/scripts_mm/fio_test.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/scripts_mm/io.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/scripts_mm/io_sweep.sh create mode 100644 host_software/driver/XDMA/linux-kernel/tests/scripts_mm/libtest.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/scripts_mm/unaligned.sh create mode 100755 host_software/driver/XDMA/linux-kernel/tests/scripts_mm/xdma_mm.sh create mode 100644 host_software/driver/XDMA/linux-kernel/tools/Makefile create mode 100644 host_software/driver/XDMA/linux-kernel/tools/dma_from_device.c create mode 100644 host_software/driver/XDMA/linux-kernel/tools/dma_to_device.c create mode 100644 host_software/driver/XDMA/linux-kernel/tools/dma_utils.c create mode 100644 host_software/driver/XDMA/linux-kernel/tools/performance.c create mode 100644 host_software/driver/XDMA/linux-kernel/tools/reg_rw.c create mode 100644 host_software/driver/XDMA/linux-kernel/tools/test_chrdev.c create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.Module.symvers.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.cdev_bypass.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.cdev_ctrl.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.cdev_events.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.cdev_sgdma.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.cdev_xvc.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.libxdma.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.modules.order.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.xdma.ko.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.xdma.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.xdma_cdev.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.xdma_mod.o.cmd create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/.xdma_thread.o.cmd rename host_software/driver/{ => XDMA/linux-kernel}/xdma/Makefile (51%) create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/Module.symvers rename host_software/driver/{ => XDMA/linux-kernel}/xdma/cdev_bypass.c (73%) rename host_software/driver/{ => XDMA/linux-kernel}/xdma/cdev_ctrl.c (81%) rename host_software/driver/{ => XDMA/linux-kernel}/xdma/cdev_ctrl.h (67%) rename host_software/driver/{ => XDMA/linux-kernel}/xdma/cdev_events.c (80%) create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.c rename host_software/driver/{ => XDMA/linux-kernel}/xdma/cdev_sgdma.h (53%) rename host_software/driver/{ => XDMA/linux-kernel}/xdma/cdev_xvc.c (69%) create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.h rename host_software/driver/{ => XDMA/linux-kernel}/xdma/libxdma.c (58%) rename host_software/driver/{ => XDMA/linux-kernel}/xdma/libxdma.h (76%) create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/modules.order create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/version.h create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/xdma.mod create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.c rename host_software/driver/{ => XDMA/linux-kernel}/xdma/xdma_cdev.c (67%) rename host_software/driver/{ => XDMA/linux-kernel}/xdma/xdma_cdev.h (58%) rename host_software/driver/{ => XDMA/linux-kernel}/xdma/xdma_mod.c (71%) rename host_software/driver/{ => XDMA/linux-kernel}/xdma/xdma_mod.h (70%) create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.c create mode 100644 host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h delete mode 100644 host_software/driver/load_driver.sh delete mode 100644 host_software/driver/xdma/.cdev_bypass.o.cmd delete mode 100644 host_software/driver/xdma/.cdev_ctrl.o.cmd delete mode 100644 host_software/driver/xdma/.cdev_events.o.cmd delete mode 100644 host_software/driver/xdma/.cdev_sgdma.o.cmd delete mode 100644 host_software/driver/xdma/.cdev_xvc.o.cmd delete mode 100644 host_software/driver/xdma/.libxdma.o.cmd delete mode 100644 host_software/driver/xdma/.tmp_versions/xdma.mod delete mode 100644 host_software/driver/xdma/.xdma.ko.cmd delete mode 100644 host_software/driver/xdma/.xdma.mod.o.cmd delete mode 100644 host_software/driver/xdma/.xdma.o.cmd delete mode 100644 host_software/driver/xdma/.xdma_cdev.o.cmd delete mode 100644 host_software/driver/xdma/.xdma_mod.o.cmd delete mode 100644 host_software/driver/xdma/Module.symvers delete mode 100644 host_software/driver/xdma/cdev_sgdma.c delete mode 100644 host_software/driver/xdma/cdev_xvc.h delete mode 100644 host_software/driver/xdma/libxdma.o.ur-safe delete mode 100644 host_software/driver/xdma/modules.order delete mode 100644 host_software/driver/xdma/version.h delete mode 100644 host_software/driver/xdma/xdma.mod.c diff --git a/doc/load_xdma_driver.md b/doc/load_xdma_driver.md index 2dc795b..f797392 100644 --- a/doc/load_xdma_driver.md +++ b/doc/load_xdma_driver.md @@ -22,7 +22,7 @@ $ lspci 然后 cd 到以下目录中,并运行 `make` 编译 Xilinx 提供的 XDMA 驱动 (注意这里需要用管理员权限) 。 ```bash -$ cd host_software/driver/xdma +$ cd host_software/driver/XDMA/linux-kernel/xdma/ $ sudo make ``` @@ -36,15 +36,24 @@ $ sudo rm *.ko $ sudo make ``` -  +## 编译测试工具 + +本项目采用 Xilinx 官方提供的 [XDMA Linux 驱动](https://github.com/Xilinx/dma_ip_drivers) ,官方为其配套了一些测试工具,需要用户自行编译。借助这些工具,用户可以检查自己的驱动是否安装正确 + +切换到 `tools` 目录,并运行 `make` 对工具进行编译 + +```bash +$ cd ../tools/ +$ sudo make +``` ## 加载 XDMA 驱动 -编译成功后,cd 到 上级目录,运行 `load_driver.sh` 脚本来加载驱动 。 +编译成功后,cd 到 `tests` 目录,运行 `load_driver.sh` 脚本来加载驱动 。需要注意 ,这里的 `load_driver.sh` 脚本 ,默认使用中断方式调用设备 ,因为我们前期配置中没有使用到XDMA的中断功能 ,因此需要使用一个参数来使用轮询方式加载驱动 ```bash -$ cd .. # cd 到上级目录 host_software/driver 中 -$ sudo ./load_driver +$ cd ../tests/ # cd 到上级目录 linux-kernel/tests 中 +$ sudo ./load_driver.sh 4 ``` 如果驱动加载成功,则显示 `"DONE"` 。 @@ -61,5 +70,22 @@ $ ls /dev/xdma* 其中我们要用到的设备是 `/dev/xdma0_c2h_0` 和 `/dev/xdma0_h2c_0` ,前者用来从 FPGA 中读取数据 (device_to_host) ,后者用来向 FPGA 中传送数据 (host_to_device) -  +## 检验驱动是否正确启用 + +完成加载后,可以通过调用 Xilinx 提供的测试工具来检测驱动正确性。在 `test` 目录中调用 `run_test.sh` 脚本,等待测试完毕即可 + +```bash +$ sudo sh ./run_test.sh +``` + +如果测试正常 ,程序将快速返回 ,给出 `Info: All PCIe DMA memory mapped tests passed.` 和 `Info: All tests in run_tests.sh passed.` 的结果 + +如果卡死 ,可以卸载之前的 XDMA 驱动并检查之前步骤中是否以轮询方式加载 ,卸载使用下面的命令 + +```bash +$ sudo rmmod xdma +``` + +更多使用信息可以参考 `driver/XDMA/linux-kernel/readme.txt` 或前往 官方repo 进行查询 + diff --git a/host_software/driver/XDMA/linux-kernel/COPYING b/host_software/driver/XDMA/linux-kernel/COPYING new file mode 100644 index 0000000..3912109 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/host_software/driver/XDMA/linux-kernel/LICENSE b/host_software/driver/XDMA/linux-kernel/LICENSE new file mode 100644 index 0000000..703e647 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/LICENSE @@ -0,0 +1,30 @@ +BSD License + +For Xilinx DMA IP software + +Copyright (c) 2016-present, Xilinx, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Xilinx nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/host_software/driver/XDMA/linux-kernel/RELEASE b/host_software/driver/XDMA/linux-kernel/RELEASE new file mode 100644 index 0000000..2f6a92e --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/RELEASE @@ -0,0 +1,39 @@ +v2020.2.0 +========= +- renamed module parameter "enable_credit_mp" to "enable_st_c2h_credit" to + accurately describe its usage. +- turn off the ST C2H credit as default (i.e., enable_st_c2h_credit = 0) +- fixed c2h streaming credit issue when data buffers uses >= 1K descriptors. + +v2020.1.08 +=============== +- replaced module parameter "sgdma_timeout" to "h2c_timeout" and "c2h_timeout" + for H2C and C2H channels. + value of 0 means no timeout: wait forever for the dma completion. +- added new "-e" option to dma_from_device + this is for streaming mode only, when -e is set, the driver will end the dma + and return the data when an EOP (end-of-packet) is received or the + specified bytes of data is received. + without "-e" option, the driver will end the dma when the specified bytes of + data is received. +- added gen4 device ids +- fixed next adjacent descriptors when dma_alloc_coherent doesn't return a + page-aligned address + +v2020.1.06 +=============== +- added memory aperture support (-k) option in dma_from_device and dma_to_device. +- fixed holding spinlock while doing wait_event_interruptible_xxx +- kernel 5.0 support +- fixed next adjacent descriptors crossing the 4K boundary + +Release: 2019.2 +=============== + +Change list: +- Updated data rate for performance run. Now it will print data rate based on the size. +- remove BUG_ON, return proper error code instead +- Streaming mode: enable credit mechanism by default +- Streaming mode: Do not read more than user supplied buffer size on C2H +- Streaming mode: Added support for Async-IO for both streaming and MM transfers +- fixed performance appliaction crash diff --git a/host_software/driver/xdma/libxdma_api.h b/host_software/driver/XDMA/linux-kernel/include/libxdma_api.h similarity index 79% rename from host_software/driver/xdma/libxdma_api.h rename to host_software/driver/XDMA/linux-kernel/include/libxdma_api.h index 00d4355..640a158 100644 --- a/host_software/driver/xdma/libxdma_api.h +++ b/host_software/driver/XDMA/linux-kernel/include/libxdma_api.h @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #ifndef __XDMA_BASE_API_H__ @@ -125,6 +132,19 @@ int xdma_user_isr_disable(void *dev_hndl, unsigned int mask); */ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, struct sg_table *sgt, bool dma_mapped, int timeout_ms); + +ssize_t xdma_xfer_submit_nowait(void *cb_hndl, void *dev_hndl, int channel, bool write, u64 ep_addr, + struct sg_table *sgt, bool dma_mapped, int timeout_ms); + + +ssize_t xdma_xfer_completion(void *cb_hndl, void *dev_hndl, int channel, bool write, u64 ep_addr, + struct sg_table *sgt, bool dma_mapped, int timeout_ms); + +/////////////////////missing API//////////////////// + +//xdma_get_channle_state - if no interrupt on DMA hang is available +//xdma_channle_restart + #endif diff --git a/host_software/driver/XDMA/linux-kernel/readme.txt b/host_software/driver/XDMA/linux-kernel/readme.txt new file mode 100644 index 0000000..05ee9c2 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/readme.txt @@ -0,0 +1,177 @@ +The files in this directory provide Xilinx PCIe DMA drivers, example software, +and example test scripts that can be used to exercise the Xilinx PCIe DMA IP. + +This software can be used directly or referenced to create drivers and software +for your Xilinx FPGA hardware design. + +Operating System Support: +========================= +Operating System Architecture: x86_64 +Linux kernel: 3.10+ +RHEL/CentOS: 7.6, 7.7, 7.8, 7.9, + 8.1, 8.2 +Ubuntu: 16.04.5 LTS, 16.04.6 LTS + 18.04.1 LTS, 18.04.2 LTS, 18.04.4 LTS3, 18.04.5 LTS + 20.04 LTS, 20.04.1 LT + +HW Requirement: +=============== +The PCIe DMA supports UltraScale+, UltraScale, Virtex-7 XT and 7 Series Gen2 +devices. + +Please refer to the Xilinx documentation "PG195 DMA/Bridge Subsystem for PCI +Express" for details of the IP. + + +Directory and file description: +=============================== + - xdma/: This directory contains the Xilinx PCIe DMA kernel module + driver files. + + - include/: This directory contains all include files that are needed for + compiling driver. + + - tests/: This directory contains example application software to exercise the + provided kernel module driver and Xilinx PCIe DMA IP. This directory + also contains the following scripts and directories. + + - load_driver.sh: + This script loads the kernel module and creates the necissary + kernel nodes used by the provided software. + The The kernel device nodes will be created under /dev/xdma*. + Additional device nodes are created under /dev/xdma/card* to + more easily differentiate between multiple PCIe DMA enabled + cards. Root permissions will be required to run this script. + + - run_test.sh: + - dma_memory_mapped_test.sh, dma_streaming_test.sh: + - data/: + run_test.sh runs sample tests on a Xilinx PCIe DMA target and + returns a pass (0) or fail (1) result. + This script calls 2 other scripts in the same directory: + - dma_memory_mapped_test.sh for memory-mapped dma mode + - dma_streaming_test.sh for streaming dma mode + The data/ directory contains binary data files that are used + for DMA data transfers to the Xilinx FPGA PCIe endpoint device + with the run_test.sh. + !NOTE!: + ======= + These scripts are intended for use with the PCIe DMA EXAMPLE + DESIGN ONLY. + + - perform_hwcount.sh: + This script runs hardware performance for XDMA for both Host to + Card (H2C) and Card to Host (C2H). The result are copied to + 'hw_log_h2c.txt' and hw_log_c2h.txt' text files. + For each direction the performance script loops from 64 bytes + to 4MBytes and generate performance numbers (byte size doubles + for each loop count). + You can grep for 'data rate' on those two files to see data + rate values. + Data rate values are in percentage of maximum throughput. + Maximum data rate for x8 Gen3 is 8Gbytes/s, so for a x8Gen3 + design value of 0.81 data rate is 0.81*8 = 6.48Gbytes/s. + Maximum data rate for x16 Gen3 is 16Gbytes/s, so for a x16Gen3 + design value of 0.78 data rate is 0.78*16 = 12.48Gbytes/s. + This program can be run on AXI-MM example design. + AXI-ST example design is a loopback design, both H2C and C2H + are connected. Running on AXI-ST example design will not + generate proper numbers. + If a AXI-ST design is independent of H2C and C2H, performance + number can be generated. + + - scripts_mm/ + This directory contains a set of scripts to check basic driver + loading/unloading and perform dma operations in memory-mapped + mode. + Compare with dma_memory_mapped_test.sh, the test is more + extensive with more dma size and it also utilizes fio tool in + addition to dma_from/to_device tools. + + - xdma_mm.sh + top level script. + + - io_sweep.sh, io.sh, unaligned + dma test via dma_from/to_device + + - fio_test.sh fio_parse_result.sh + dma test via fio tool + + - scripts_mm/ dependency + Some test in script_mm/ requires fio tool and python extension + + Install fio: + - Centos/RHEL: yum install fio + - Ubuntu: apt install fio + + Install python extension openpyxl, xlrd(version 1.2.0) + python --version + pip2 install openpyxl + pip2 install xlrd=1.2.0 + +Usage: + - Change directory to the driver directory. + cd xdma + - Compile and install the kernel module driver. + make install + - Change directory to the tools directory. + cd tools + - Compile the provided example test tools. + make + - Load the kernel module driver: + a. modprobe xdma + b. using the provided script. + cd tests + ./load_driver.sh + - Run the provided test script to generate basic DMA traffic. + ./run_test.sh + + For more extensive memory mapped test: + assume the XDMA FGPA is at pci slot 0000:01:00.0 + cd scripts_mm + ./xdma_mm.sh 0000:01:00.0 | tee /tmp/xdma_mm.log + + - Check driver Version number + modinfo xdma (or) + modinfo ../xdma/xdma.ko + +Updates and Backward Compaitiblity: + - The following features were added to the PCIe DMA IP and driver in Vivado + 2016.1. These features cannot be used with PCIe DMA IP if the IP was + generated using a Vivado build earlier than 2016.1. + - Poll Mode: Earlier versions of Vivado only support interrupt mode which + is the default behavior of the driver. + - Source/Destination Address: Earlier versions of Vivado PCIe DMA IP + required the low-order bits of the Source and Destination address to be + the same. + As of 2016.1 this restriction has been removed and the Source and + Destination addresses can be any arbitrary address that is valid for + your system. + +Frequently asked questions: + Q: How do I uninstall the kernel module driver? + A: Use the following commands to uninstall the driver. + - Uninstall the kernel module. + rmmod -s xdma + + Q: How do I modify the PCIe Device IDs recognized by the kernel module driver? + A: The xdma/xdma_mod.c file constains the pci_device_id struct that identifies + the PCIe Device IDs that are recognized by the driver in the following + format: + { PCI_DEVICE(0x10ee, 0x8038), }, + Add, remove, or modify the PCIe Device IDs in this struct as desired. Then + uninstall the existing xdma kernel module, compile the driver again, and + re-install the driver using the load_driver.sh script. + + Q: By default the driver uses interupts to signal when DMA transfers are + completed. How do I modify the driver to use polling rather than + interrupts to determine when DMA transactions are completed? + A: The driver can be changed from being interrupt driven (default) to being + polling driven (poll mode) when the kernel module is inserted. To do this + modify the load_driver.sh file as follows: + Change: insmod xdma/xdma.ko + To: insmod xdma/xdma.ko poll_mode=1 + Note: Interrupt vs Poll mode will apply to all DMA channels. If desired the + driver can be modified such that some channels are interrupt driven while + others are polling driven. Refer to the poll mode section of PG195 for + additional information on using the PCIe DMA IP in poll mode. diff --git a/host_software/driver/XDMA/linux-kernel/tests/data/datafile0_4K.bin b/host_software/driver/XDMA/linux-kernel/tests/data/datafile0_4K.bin new file mode 100644 index 0000000000000000000000000000000000000000..753f5353eb301acb365246e10862a57a8722d467 GIT binary patch literal 4096 zcmWd-6cQE@6%&_`l#-T_m6KOcR8m$^Ra4i{)Y8_`)zddHG%_|ZH8Z!cw6eCbwX=6{ zbaHlab#wRd^z!!c_45x13RUzF>}`JIdkXDU$Ah|;w4L$ zEnl&6)#^2C*R9{Mant54TeofBv2)k%J$v`DP6JlYEp~Z)S)i*s80hL(ul@1p()L1P77Mniq^EDE$wJe2RhP;&UB$G-RMpadeV#D z^r0{P=+6KKGKj$p;UE5GD8m@e2u3oB(Trg%;~38bCNhc1Okpb1n9dAlGK<;FVJ`ES z&jJ>*h{Y^nDa%;S3Rbd;)vRGH>sZeQHnNG$Y+)*>T;VF$xXul3a*NyC;V$>M&jTLvh{rtPDbIM$3tsYy z*Sz5^?|9D#KJtmreBmqK_|6Z0@{8a6;V=KkACN!@0trU*qTMsZ3|l2VkW3}q=tc`8tmN>ru_RjEdGYEY9})TRz~ zsYiVp(2zznrU^}HMsr%wl2){)4Q**hdpgjOPIRUVUFk-5deDW_xyE&FaFbiy<_>qc$9*2~kVib`2~T;(b6)V0SG?v8Z+XXiKJbxG zeC7*Z`NnsC@RMKs<_~}QfA|9uh`h{PlzDalAq3R04a)TALT=}1ooGLnhRWFafr$W9J&l8fBrAusvJ zPXP*2h{6=1D8(pF2})9m(v+brs7?)PQj6Nup)U2PPXij#h{iOb zDa~k33tG~O*0iB5?PyO2I?{>GbfGKV=uQuM(u>~op)dXD&j1E8h`|iuAO2-1!x+v8 zMly=gjA1O}7|#SIGKtAdVJg#@&J1QUi`mR!F7uer0v57}#Vlbd%UI3|RlYxw6A~RXYN;a~SgPi0dH+jfQKJrt5f)t`KMJP%! zic^A;l%h0cC`&oYQ-O+9qB2#eN;RregPPQ$Hg%{=J?hhdhBTrvO=wCpn$v=ow4ya_ zXiGcV(}9k3qBC9SN;kUGgP!!FH+|?!Kl(F(fed0WL->b(8Okt*GlG$fVl-nI%Q(g} zfr(6FGEEMhTBSjsY%vx1eZVl``6%R1JxfsJfpGh5io zHny{ao$O*ad)Ui9_H%%P9O5uXILa}ObApqc;xuPC%Q?<-fs0(?GFQ0DHLi1mo800y zceu+v?(=|$JmN7=c*--L^MaSW;x%u0%RAolfscIRGhg`1H@@?OpZwxCfB4IPn)L)9 literal 0 HcmV?d00001 diff --git a/host_software/driver/XDMA/linux-kernel/tests/data/datafile2_4K.bin b/host_software/driver/XDMA/linux-kernel/tests/data/datafile2_4K.bin new file mode 100644 index 0000000000000000000000000000000000000000..9e91efc5a2c4145322f0c3fffe0fc8fa925a46d1 GIT binary patch literal 4096 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 F{{gt=_-X(E literal 0 HcmV?d00001 diff --git a/host_software/driver/XDMA/linux-kernel/tests/data/datafile3_4K.bin b/host_software/driver/XDMA/linux-kernel/tests/data/datafile3_4K.bin new file mode 100644 index 0000000000000000000000000000000000000000..df437f42c808d41dec5d543d60ce94c8cb8a044a GIT binary patch literal 4096 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ǹ?z6-Mwj7g(IvQgbP=u* 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 IR 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

h!a2Q`a8|D^ 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 z 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 O075_nhylp|&;JFP)Eof- literal 0 HcmV?d00001 diff --git a/host_software/driver/XDMA/linux-kernel/tests/data/datafile_32M.bin b/host_software/driver/XDMA/linux-kernel/tests/data/datafile_32M.bin new file mode 100644 index 0000000000000000000000000000000000000000..31ba1fe4c2a003b8fce1030af357d69c08db5043 GIT binary patch literal 33554432 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 z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~cfBp9T$IoB>cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_zC|MBzJ??3)` z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rL%A_507?Q2uxSyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzyJR8H&o~_{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c{|yy7OxSS# zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_zK4ih$9_z3=Y|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rHe?7d}G7Nd9;KyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzlVf|eyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzh}>pGgt0B{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z=ggHmPu_g~cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!V&XYG^{sR7Y|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y 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 z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)K6c#r z2@@yz-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0ySe!|2_lc)IK{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-Tyvu(&Q;qr}^Lg@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|2}!j z)M-J%{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cPn{MN95UVi?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@Ba6o;E?GvX8Pa#@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR){~j`Z z#>`o>{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?pD}aR>^XD&@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%XEHG9t7dGr16{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?th;% zci#L33;pl@cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Yf1fvh!NNt0{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?U$Ah|;w4M{@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%WZ zw0OzVWy}5V{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tfphblLJ1EB){OcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!Ye_ytI#mZHy{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F 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 z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-(SCZ`|kY*|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!-@beQ;o~R&yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_c zfB5+6^B4cS|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c``r(`tAD<|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! zzkd7vaq_aFbe|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c``>^5`u*o`DF3_v-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-+%x48!B`d|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!|Aq=3CTuwWyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&@qhY1@ld<6fy|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z``^Qc3m+k3B>%hr-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-@`|U7%6fT|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y 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 z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!Q>IFtCT%+ZyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&@)r%9VGeFp!#|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c``^>1OP?WQCjYzt z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-_vKvm??7>|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) 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 z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!3l=I|q-Zh!yZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&?{7b#k-cnSZz|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c``?QeD_){x zDgV3w-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-;0+hS*mmy|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!OO`5KrffO?yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&@ymnmDW zd3{dX```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHd$sB{ zYSyalfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)X-jheM;*Qx7&_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmI2>+I8yItM7mJzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|9hRf z_3Afh=zsUW```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHd%gM%8a8U|fA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)X-gNBV7H)-mB_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmI2% z#!Z?wYwmydzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|9g|B&6>Ap>3{dX```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHd$Z;(TDEHKfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)X- zi(f=zsUW```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zd%N}>I(F*pfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)X-hmM^(cj@YX_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmI2*&Rx28>+XN|zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|9h9N-MaVa>3{dX```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHd$;aAdiLt=fA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)X-kDk4H_v!0@_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmI2@-hKM^>+gT}zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|9hXl{rV3W=zsUW```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHd%ykz1`ZnRfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)ZTfPsSs4;kuz_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmMmK!9#`)8}5Jizx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|ND@k!-fZr@W1=t{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQpec1585hF+W-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0x{IAY|e(PRAY{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tdRSYV??~a?I>|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!r%nqB4w>$M_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmI1(aLDu-GyU)WcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Ye-D{HW9F>c{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c&zL!D_MEx?cmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!7nmuRky!rlj|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rK4XJ8%Aih5mQ{ zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzt5Y$VBw<0{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~cFIc!}@sg$fcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_yHTD)ZGvgQ7F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rEV$x@`H1mHv1CyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzb{+9V&$sU{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p 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 z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_y% zx_ss8wd?+O|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rG7cdhPm+oBntIyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzhAq4<+v*-SI|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rE`R`t13OfBf(McmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ`-v_U>sh3Hoi&-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|NY^k$4{O<^S}Gw{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp{qd8h&z`^Vzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWSF>9glAUcU0b```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ`<9iu-@7{m#zx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWSF?Ys9MK7R7Q```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ`$mSee*W^m z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ`3-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p 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 zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c*Q?*4VWYxta*!;{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~cH*4OaWvkZycmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_z)XxXZDo3{RU z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rJGl-KK53_WpPOyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzqe`Iu6>7&{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cw`<>_W2esk zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_z4=-8=qm#+SI|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rG`Q+@))`?*4cGyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzjx`{t$UB2 z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cckAAxXRqG=cmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!l=-I1xpT7Qg|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLe*-KTHA z{{DCWyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzxV0eum6C7{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c_v=4k;Gn_&cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_x+7&vI~ zkfHu}|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rDJsJY?vw;r@63yZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzYiHYY;ju-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I1_BSwxIJ;wj;fA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{`ZliMvoag&j0Rz_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y_t9g< 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 z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmI3NT)Fe)&F6pjzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|9kE{dGqBj;D7hO```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHd)|Ec3luEm zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)X-{sILH6)xg`_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmI3ALWPSIE#`mszx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|9jygMT-?L z;eYqP```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHd(mRWOO!0-fA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)X-@e(CVl`i9d_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmI3IQl-n3 zE$4stzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|9j~&Wy_VX;D7hO```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHd)ad3D+E;Zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWRae1(9D zl`8w+{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-Txj?u~OwKRsHY&cmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!Yf3H-zO4VxB{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?uTr&I z^%^z(@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? 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 z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWSF^_#cv-hc4F```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ`;|yZ0YHe)7Nj z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|NZ@kkDoq&@xS}u{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp{o|+4U%r0xzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWSF^OvvRzW?yQ z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ`;`x9>lG{_?;3-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|NZ-qpTB-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|2=Y)sL`Uw@W1=t{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQpJ!-V*F=EE@zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWP^dW@K{ zV#o2n```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ=3Atk`kl#`C}X-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|2=k`xbfmA@W1=t{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQpJ#M`C z2@)pqzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWP^eu9LF5-0J$```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ=35qQps(CiB1h-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|2=V% zq{)(}@W1=t{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQpJ!!J!DN?5Lzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWP^d5V;&Qm661```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ=39 zs?=%Hrt`o1-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|2=h@wCU1k@W1=t{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQpJ#D)588T+_zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWP^ zeTIygGH3C>```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ=37rp#HgX7j)M-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|2=b-tl6^X@W1=t{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp zJ!`h?IdbOmzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWP^dybsBa_8~C```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ=3BuH1R@=JUV%-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|2=n}y!rAM@W1=t{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQpJ#W7J1qv4Ozx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWP^e}RI93K#Le```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH 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 z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rKSuS*v!Py8d_nyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzt^f=r*6Ia{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c*Qr~teuIYocmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!FtKXnuqsIPs|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV 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 z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzxV3hr*FUh{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c_vzcO|A2x1cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!l>px)N zpuzrk|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rDJqIB4*Yq5gOOyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzYiKbWazNr{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c4;eaa zc;E>CyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&^Z4G$bKa+Lqw|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y 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 zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlH`<}h~_8&OtfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)ZTzWoOd9y;uQ_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmMl=gNF_uIqHA+zx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|NEiCM~)sl?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH`;nu^j-NQ`fA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)ZTvEwIBo;vM+_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmMl|lc!FfIqQG-zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|NE)aXU?8G?|=8d z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH`0RRB7wr$(CmD;v#JGI*+wQbw(Ubfn{ZEHVr_ao=`edF%Ea|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!Z{E6n z=k7iKyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&^B-?@A5{saHJ|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c``_>0yZ_+fBmcYq-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-|s(o z_~`Ky|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!A3l2g`3wKM|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c``@2F zd;a3(EC0Ly-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-=DvD`Rer>|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!U%q<%=IuNGyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&@` zzj^!a{RjWM|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c``_Qbd;j6%C;z+u-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-`{`u`04W(|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! zKYsfB9yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&@mfBE|D`w#!S|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c``^EQ`~KtSFaNv$-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-@pI(`Rn%||GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!fByRY=Wi(gyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&^R|M?p#bQu4;|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```bD3LPeFIRCr<-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-$RE98!mhV|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!!-fkVAz~!|yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_AM~E0Hauol&|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c``;r*iX0_sH2=H*-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-y=tf8ZCMZ|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!qehD!BW5iByZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&^#$A}p#b{zk^|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c``=^6iXA6zJpa4@-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-($y#8!vtW|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c``=ThN}VQcI{&-> z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-&3ban=X9@|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!)22(GA!8>0yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_QXULc-a~A)* z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c``fs%AF@~KL5M_-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! 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 z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHd!xopnl@|hfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)X- zlcvp@w`l2q_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmI2{<}F&bYVCjbzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y 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 z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzpq-oX6?H5 z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cuUWfp{f3SHcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_zyTfbrBrp^9$|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rGu0xM}m2 zt^RlayZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzi-;SW$U)>{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~cZ`rzS`;MLdcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_y{+rDGx zuHF83|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLGhxoh{Hz5aLqyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzwg?;XYaoK{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c@7cR= z|AB-4cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!d+kfETp~L=n|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rD)FcE{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cA31vL_=$h~@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~VUto)*I}0002i zwr$(CQros|r*@m9wrz7STW#C6?fuBzkDUMA|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z|NeLI(BUKgcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_y1JaqWT(PRF1|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rD)La`f2o6aIJqyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzaKqz{KUyq{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cA3t&O)af(+cmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_ziJazia*>nDP|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rIS$bN1Z%3;uWiyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzn?vK{=&se{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~cpTBVN(&a1ucmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_y%yma}>)ocED|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rG7ha`oEv8~%6yyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzhAv}{l?8({&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~cU%zql*6lm~cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!NymkA|-FyCb|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rKr1bNAl;2mW{eyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzu&!g|G~pY{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c-+%D%(c>rncmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_yXeDwIq(`Wv7|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rE`W^7PsB7yftuyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzdwEU{Kd;x{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cKY#J^)$2F@cmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_z?eD(Ux+jstV|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rJe>^Y-2Q5B_)m zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzrTI={=>&l{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~czyI*@)8{Y#cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_zC{Pg+D*KhuJ z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rHJs^7Y&IAO3g$yZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzkmJq{m0K={&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cfB*6G*Y7|6 zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!t{Pp|K-%$Q{|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rL%C^EXuJF#dP{yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzyA#tI!xGb z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~chYk}qT=)q7cmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_zK4HrH_#7O>k|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rHga5HV8Z zDE@c zUi<|9cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_z~jTb*b!bJXe|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rJ$akT6l=B>s2*yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzb8zT zI7!lE{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~cCr*+yS@IPAcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_y9O_n@G%2fV$|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rE7k zkup{4H2!!0yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzo$%u}TlO6OcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_y<&6Yh!&RqU?|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rGV)kuz8BJpOn8yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzvs-AJ5Szx{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c=gyNiU;YCAcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!V&6mGG!9xCb|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rK>aP_R(pBK~*(yZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzZWc2xJc1r{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c7cNq?Sn(46cmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_x^Empil$x{Az|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rDh}QL|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? 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 z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0ySa@6QCW5@a5{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-Tyv%%-C_`C-~p}@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|2}ry z_z4py`QQET{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)K7PW)Nt37e-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0ySanj@|Q>Xdg{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-Tyv$ z%G7B=!TxvuyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzfYYO6dW?$|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO$wpx}_{GiLhV{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-Txjk zea6gLv;FV>cmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Yf1fdP*6cZR{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?pEY~V+=fVH(fA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{`Xe9^U!_tzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWRa^U!_lJ^A1L@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|K5Gc{KLF```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ?RoJQ`1?{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c zkH(Yf%gq1ofA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{`blBW%l~!fA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)ZT%k1^-eeQqvzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|NHCP z`+V`?fA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)ZT`+V`S{Pe&3-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|9$bX{QUa%zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWQv`T6zz z^Xq^2zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|NGbX&+lr@|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO$wpWoHm`iB4A|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_) z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qL)_^^HK# z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO$w^^HJqbIbqkfA_!p-~I3YcmKQp-T&@? z_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{`Wv|b1M|~zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) z?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWQvb1M{%Z2RB+ z@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR) z|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq! z{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp z-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p z-~I3YcmKQp-T&@?_rLq!{qO#F|GWR){~iiQws&^@@BVlHyZ_z)?tk~c```WV{&)Yo z|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c z```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlH zyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YH zzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F z|GWR)|L%W}Z13#;`Rjl8zx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!YfA_!p-~I3Y zcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV{&)Yo|K0!Y zfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z)?tk~c```WV z{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO#F|GWR)|L%YHzx&_)@BVlHyZ_z) u?tk~c```WV{&)Yo|K0!YfA_!p-~I3YcmKQp-T&@?_rLq!{qO(n|Nak_eeu%( literal 0 HcmV?d00001 diff --git a/host_software/driver/XDMA/linux-kernel/tests/data/datafile_8K.bin b/host_software/driver/XDMA/linux-kernel/tests/data/datafile_8K.bin new file mode 100644 index 0000000000000000000000000000000000000000..2790a825575865101b195571e8184acb486a492c GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/host_software/driver/XDMA/linux-kernel/tests/data/output_datafile2_4K.bin b/host_software/driver/XDMA/linux-kernel/tests/data/output_datafile2_4K.bin new file mode 100644 index 0000000000000000000000000000000000000000..50f43df99eca4b97a08739bb1ceb70ec3c21926e GIT binary patch literal 1024 zcmWmD0}>bj0Kl-$wr$(CZQHhO+qP}nwr$&9cgr85;9mmxhk*VjkiQ7*PlEV^pnfNq z-w5tkLimM{ekPQk2<=D0_<^v#C!FsH?^`1HhKRlori0wn-_<*?HC!Y6+?_CmjhlJiHk+(?fO_F$nq+TbP*GTSFQh0@wUM7{7NbN<^ zc!9K@C!Oa=?^!Z`CPKvmLqHd>{+bHf`PxPZFOr=Ihu?_3%}7O-573HM%aasc4m~F z7;Q(!*nzROXPoUAZ(AnVhKaUjlC79*OQzU@sWxYt&6sXeX4r(8HfENMm~BJm*nqj# zXP)(#Z(SBxhlSQ=k+oQCO_o@LrB-K|)mUy-R#=6VR%VrzSZzhtSb?>cXPxC(Z&@~2 zhK-hHlcm^fNw!#mtrlmS#n^69c36a+7G{@)*lj`fSb)9eXP^1lZ(a_VhlA$kkhwT) zPL7y^qh{xr**I=iPMC$0X6BTcIBiDGn1QpV=bY&{Z(1&xhKr`=lBu|CO0JlKt0w1~ z$+&J(ZkU9dCgzrjxNSo2n1H*+=brJnZ(JT2hlj@Ik+FDeOr98nr$*;D5i;{Ff- literal 0 HcmV?d00001 diff --git a/host_software/driver/XDMA/linux-kernel/tests/data/output_datafile3_4K.bin b/host_software/driver/XDMA/linux-kernel/tests/data/output_datafile3_4K.bin new file mode 100644 index 0000000000000000000000000000000000000000..c8b49c8cd518e58491924bfc364ff26e01a85009 GIT binary patch literal 1024 zcmZQzWMXDvWn<^yMC+6cQE@6%&_`l#-T_m6KOcR8m$^Ra4i{)Y8_`)zddH zG%_|ZH8Z!cw6eCbwX=6{baHlab#wRd^z!!c_45x13RUz zF>}`JIdkXDU$Ah|;w4L$Enl&6)#^2C*R9{Mant54TeofBv2)k%J$v` " + echo -e "xdma id:\txdma[N] " + echo -e "io size:\tdma transfer size in byte" + echo -e "io count:\tdma transfer count" + echo -e "h2c #:\tnumber of h2c channels" + echo -e "c2h #:\tnumber of c2h channels" + echo + + exit 1 +} + +if [ $# -eq 0 ]; then + display_help +fi + +xid=$1 +transferSz=$2 +transferCount=$3 +h2cChannels=$4 +c2hChannels=$5 + +tool_path=../tools + +testError=0 +# Run the PCIe DMA memory mapped write read test +echo "Info: Running PCIe DMA memory mapped write read test" +echo -e "\ttransfer size: $transferSz, count: $transferCount" + +# Write to all enabled h2cChannels in parallel +if [ $h2cChannels -gt 0 ]; then + # Loop over four blocks of size $transferSz and write to them + for ((i=0; i<=3; i++)); do + addrOffset=$(($transferSz * $i)) + curChannel=$(($i % $h2cChannels)) + echo "Info: Writing to h2c channel $curChannel at address" \ + "offset $addrOffset." + $tool_path/dma_to_device -d /dev/${xid}_h2c_${curChannel} \ + -f data/datafile${i}_4K.bin -s $transferSz \ + -a $addrOffset -c $transferCount & + # If all channels have active transactions we must wait for + # them to complete + if [ $(($curChannel+1)) -eq $h2cChannels ]; then + echo "Info: Wait for current transactions to complete." + wait + fi + done +fi + +# Wait for the last transaction to complete. +wait + +# Read from all enabled c2hChannels in parallel +if [ $c2hChannels -gt 0 ]; then + # Loop over four blocks of size $transferSz and read from them + for ((i=0; i<=3; i++)); do + addrOffset=$(($transferSz * $i)) + curChannel=$(($i % $c2hChannels)) + + rm -f data/output_datafile${i}_4K.bin + echo "Info: Reading from c2h channel $curChannel at " \ + "address offset $addrOffset." + $tool_path/dma_from_device -d /dev/${xid}_c2h_${curChannel} \ + -f data/output_datafile${i}_4K.bin -s $transferSz \ + -a $addrOffset -c $transferCount & + # If all channels have active transactions we must wait for + # them to complete + if [ $(($curChannel+1)) -eq $c2hChannels ]; then + echo "Info: Wait for current transactions to complete." + wait + fi + done +fi + +# Wait for the last transaction to complete. +wait + +# Verify that the written data matches the read data if possible. +if [ $h2cChannels -eq 0 ]; then + echo "Info: No data verification was performed because no h2c " \ + "channels are enabled." +elif [ $c2hChannels -eq 0 ]; then + echo "Info: No data verification was performed because no c2h " \ + "channels are enabled." +else + echo "Info: Checking data integrity." + for ((i=0; i<=3; i++)); do + cmp data/output_datafile${i}_4K.bin data/datafile${i}_4K.bin \ + -n $transferSz + returnVal=$? + if [ ! $returnVal == 0 ]; then + echo "Error: The data written did not match the data" \ + " that was read." + echo -e "\taddress range: " \ + "$(($i*$transferSz)) - $((($i+1)*$transferSz))" + echo -e "\twrite data file: data/datafile${i}_4K.bin" + echo -e "\tread data file: data/output_datafile${i}_4K.bin" + testError=1 + else + echo "Info: Data check passed for address range " \ + "$(($i*$transferSz)) - $((($i+1)*$transferSz))" + fi + done +fi + +# Exit with an error code if an error was found during testing +if [ $testError -eq 1 ]; then + echo "Error: Test completed with Errors." + exit 1 +fi + +# Report all tests passed and exit +echo "Info: All PCIe DMA memory mapped tests passed." +exit 0 diff --git a/host_software/driver/XDMA/linux-kernel/tests/dma_streaming_test.sh b/host_software/driver/XDMA/linux-kernel/tests/dma_streaming_test.sh new file mode 100755 index 0000000..9f62c48 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/dma_streaming_test.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +transferSize=$1 +transferCount=$2 +channelPairs=$3 + +tool_path=../tools + +testError=0 + +# Run the PCIe DMA streaming test +echo "Info: Running PCIe DMA streaming test" +echo " transfer size: $transferSize" +echo " transfer count: $transferCount" +echo "Info: Only channels that have both h2c and c2h will be tested as the other" +echo " interfaces are left unconnected in the PCIe DMA example design. " + +# Setup the DMA c2h channels to wait for incomming data from the h2c channels. +for ((i=0; i<$channelPairs; i++)) +do + rm -f data/output_datafile${i}_4K.bin + echo "Info: DMA setup to read from c2h channel $i. Waiting on write data to channel $i." + $tool_path/dma_from_device -d /dev/xdma0_c2h_${i} -f data/output_datafile${i}_4K.bin -s $transferSize -c $transferCount & +done + +# Wait to make sure the DMA is ready to receive data. +sleep 1s + +# Setup the DMA to write to the h2c channels. Data will be push out the h2c channel +# and then read back through the c2h channel and written to the output data file. +for ((i=0; i<$channelPairs; i++)) +do + echo "Info: Writing to h2c channel $i. This will also start reading data on c2h channel $i." + $tool_path/dma_to_device -d /dev/xdma0_h2c_${i} -f data/datafile${i}_4K.bin -s $transferSize -c $transferCount & +done + +# Wait for the current transactions to complete +echo "Info: Wait the for current transactions to complete." +wait + +# Verify that the written data matches the read data. +for ((i=0; i<$channelPairs; i++)) +do + echo "Info: Checking data integrity." + cmp data/output_datafile${i}_4K.bin data/datafile${i}_4K.bin -n $transferSize + returnVal=$? + if [ ! $returnVal == 0 ]; then + echo "Error: The data written did not match the data that was read." + echo " write data file: data/datafile${i}_4K.bin" + echo " read data file: data/output_datafile${i}_4K.bin" + testError=1 + else + echo "Info: Data check passed for c2h and h2c channel $i." + fi +done + +# Exit with an error code if an error was found during testing +if [ $testError -eq 1 ]; then + echo "Error: Test completed with Errors." + exit 1 +fi + +# Report all tests passed and exit +echo "Info: All PCIe DMA streaming tests passed." +exit 0 diff --git a/host_software/driver/XDMA/linux-kernel/tests/load_driver.sh b/host_software/driver/XDMA/linux-kernel/tests/load_driver.sh new file mode 100755 index 0000000..a669481 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/load_driver.sh @@ -0,0 +1,100 @@ +#!/bin/bash +# set -x + +display_help() { + echo "$0 [interrupt mode]" + echo "interrupt mode: optional" + echo "0: auto" + echo "1: MSI" + echo "2: Legacy" + echo "3: MSIx" + echo "4: do not use interrupt, poll mode only" + exit; +} + +if [ "$1" == "help" ]; then + display_help +fi; + +interrupt_selection=$1 +echo "interrupt_selection $interrupt_selection." +device_id=903f + +# Make sure only root can run our script +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + exit 1 +fi + +# Remove the existing xdma kernel module +lsmod | grep xdma +if [ $? -eq 0 ]; then + rmmod xdma + if [ $? -ne 0 ]; then + echo "rmmod xdma failed: $?" + exit 1 + fi +fi + +# Use the following command to Load the driver in the default +# or interrupt drive mode. This will allow the driver to use +# interrupts to signal when DMA transfers are completed. +echo -n "Loading driver..." +case $interrupt_selection in + "0") + echo "insmod xdma.ko interrupt_mode=1 ..." + ret=`insmod ../xdma/xdma.ko interrupt_mode=0` + ;; + "1") + echo "insmod xdma.ko interrupt_mode=2 ..." + ret=`insmod ../xdma/xdma.ko interrupt_mode=1` + ;; + "2") + echo "insmod xdma.ko interrupt_mode=3 ..." + ret=`insmod ../xdma/xdma.ko interrupt_mode=2` + ;; + "3") + echo "insmod xdma.ko interrupt_mode=4 ..." + ret=`insmod ../xdma/xdma.ko interrupt_mode=3` + ;; + "4") + echo "insmod xdma.ko poll_mode=1 ..." + ret=`insmod ../xdma/xdma.ko poll_mode=1` + ;; + *) + intp=`sudo lspci -d :${device_id} -v | grep -o -E "MSI-X"` + intp1=`sudo lspci -d :${device_id} -v | grep -o -E "MSI:"` + if [[ ( -n $intp ) && ( $intp == "MSI-X" ) ]]; then + echo "insmod xdma.ko interrupt_mode=0 ..." + ret=`insmod ../xdma/xdma.ko interrupt_mode=0` + elif [[ ( -n $intp1 ) && ( $intp1 == "MSI:" ) ]]; then + echo "insmod xdma.ko interrupt_mode=1 ..." + ret=`insmod ../xdma/xdma.ko interrupt_mode=1` + else + echo "insmod xdma.ko interrupt_mode=2 ..." + ret=`insmod ../xdma/xdma.ko interrupt_mode=2` + fi + ;; +esac + +if [ ! $ret == 0 ]; then + echo "Error: xdma driver did not load properly" + echo " FAILED" + exit 1 +fi + +# Check to see if the xdma devices were recognized +echo "" +cat /proc/devices | grep xdma > /dev/null +returnVal=$? +if [ $returnVal == 0 ]; then + # Installed devices were recognized. + echo "The Kernel module installed correctly and the xmda devices were recognized." +else + # No devices were installed. + echo "Error: The Kernel module installed correctly, but no devices were recognized." + echo " FAILED" + exit 1 +fi + +echo "DONE" diff --git a/host_software/driver/XDMA/linux-kernel/tests/perform_hwcount.sh b/host_software/driver/XDMA/linux-kernel/tests/perform_hwcount.sh new file mode 100755 index 0000000..457bcfd --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/perform_hwcount.sh @@ -0,0 +1,38 @@ +#!/bin/bash +tool_path=../tools + +h2cchannels=$1 +c2hchannels=$2 +if [ "$#" -ne 2 ];then + echo "usage $0 " + exit -1 +fi +rm hw_log_h2c.txt +rm hw_log_c2h.txt +echo "h2cchannels $h2cchannels" +echo "c2hchannels $c2hchannels" +h2c=/dev/xdma0_h2c_0 +c2h=/dev/xdma0_c2h_0 +iter=1 + +out_h2c=hw_log_h2c.txt +out_c2h=hw_log_c2h.txt +for ((i=0;i /dev/null + statusRegVal=`$tool_path/reg_rw /dev/xdma0_control 0x1${i}00 w | grep "Read.*:" | sed 's/Read.*: 0x\([a-z0-9]*\)/\1/'` + channelId=${statusRegVal:0:3} + + # there will NOT be a mix of MM & ST channels, so no need to check + # for streaming enabled + if [ $channelId == "1fc" ]; then + c2hChannels=$((c2hChannels + 1)) + fi +done +echo "Info: Number of enabled c2h channels = $c2hChannels" + +# Report if the PCIe DMA core is memory mapped or streaming +if [ $isStreaming -eq 0 ]; then + echo "Info: The PCIe DMA core is memory mapped." +else + echo "Info: The PCIe DMA core is streaming." +fi + +# Check to make sure atleast one channel was identified +if [ $h2cChannels -eq 0 -a $c2hChannels -eq 0 ]; then + echo "Error: No PCIe DMA channels were identified." + exit 1 +fi + +# Perform testing on the PCIe DMA core. +testError=0 +if [ $isStreaming -eq 0 ]; then + + # Run the PCIe DMA memory mapped write read test + ./dma_memory_mapped_test.sh xdma0 $transferSize $transferCount $h2cChannels $c2hChannels + returnVal=$? + if [ $returnVal -eq 1 ]; then + testError=1 + fi + +else + + # Run the PCIe DMA streaming test + channelPairs=$(($h2cChannels < $c2hChannels ? $h2cChannels : $c2hChannels)) + if [ $channelPairs -gt 0 ]; then + ./dma_streaming_test.sh $transferSize $transferCount $channelPairs + returnVal=$? + if [ $returnVal -eq 1 ]; then + testError=1 + fi + else + echo "Info: No PCIe DMA stream channels were tested because no h2c/c2h pairs were found." + fi + +fi + +# Exit with an error code if an error was found during testing +if [ $testError -eq 1 ]; then + echo "Error: Test completed with Errors." + exit 1 +fi + +# Report all tests passed and exit +echo "Info: All tests in run_tests.sh passed." +exit 0 diff --git a/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/fio_parse_result.sh b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/fio_parse_result.sh new file mode 100755 index 0000000..d1589b2 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/fio_parse_result.sh @@ -0,0 +1,180 @@ +#!/bin/bash + +############################################################## +# +# parse the fio result directory generated by the fio_test.sh +# +############################################################## +function parse_iops() { + eval str="$1" + + value=$(echo $str | awk -F "," '{print $1}' | awk -F "=" '{print $2}') + unit=$(echo $value | awk -F '[0-9,.]*' '{print $2}') + value=$(echo $value | sed 's/[^0-9,.]*//g') +# echo -n " iops: ${value}${unit}" + + if [ -z "$unit" ];then + value=$(echo "scale=4; $value/1000" | bc -l) + elif [[ "$unit" == "k" ]];then + value=$(echo "scale=4; $value" | bc -l) + elif [[ "$unit" == "m" ]];then + value=$(echo "scale=4; $value*1000" | bc -l) + else + echo "iops: $value$unit, unknown unit $unit." + fi +} + +function parse_bw() { + eval str="$1" + + value=$(echo $str | awk -F "," '{print $2}') + value=$(echo $value | awk -F "[(,)]" '{print $2}') + unit=$(echo $value | awk -F '[0-9,.]*' '{print $2}') + value=$(echo $value | sed 's/[^0-9,.]*//g') +# echo -n " bw: ${value}${unit}" + + if [[ "$unit" == "kB/s" ]];then + value=$(echo "scale=4; $value" | bc -l) + elif [[ "$unit" == "MB/s" ]];then + value=$(echo "scale=4; $value*1024" | bc -l) + elif [[ "$unit" == "gB/s" ]];then + value=$(echo "scale=4; $value*1024*1024" | bc -l) + else + echo "bw: $value$unit, unknown unit $unit." + fi +} + +function parse_latency() { + eval str="$1" + + value=$(echo $str | awk -F "," '{print $3}' | awk -F "=" '{print $2}') + unit=$(echo $str | awk -F "[(,)]" '{print $2}') +# echo -n " latency: ${value}${unit}" + + if [[ "$unit" == "usec" ]];then + value=$(echo "scale=4; $value" | bc -l) + elif [[ "$unit" == "sec" ]];then + value=$(echo "scale=6; $value*1000000" | bc -l) + elif [[ "$unit" == "msec" ]];then + value=$(echo "scale=6; $value*1000" | bc -l) + elif [[ "$unit" == "nsec" ]];then + value=$(echo "scale=4; $value/1000" | bc -l) + else + echo "latency: $value$unit, unknown unit $unit." + fi +} + +############## +# Main body +############## + +if [ $# -lt 1 ];then + echo "$0 " + exit 1 +fi +dir=$1 + +if [[ ! -d $dir ]];then + echo "$dir does NOT exist." + exit 1 +fi + +declare -a lat_array +resfname=result.csv + +rm -f $dir/$resfname +channel_list=`ls $dir` +for channels in $channel_list; do + cd $dir/$channels + rm -f $dir/$channels/$resfname + + iodir_list=`ls` + for iodir in $iodir_list; do + cd $dir/$channels/$iodir + + rm -f $resfname + echo > $resfname + + fio_list=`ls fio*.log` + for fname in $fio_list; do + # fio result file format fio__t<# threads>.log + sz=$(echo $fname | cut -d. -f1 | cut -d_ -f2) + thread=$(echo $fname | cut -d. -f1 | cut -d_ -f3) + thread=$(echo $thread | sed 's/[^0-9]*//') + + #echo "$dir/$channels/$iodir/$fname:" + + value=0; + unit=0 + if [ "$iodir" == "h2c" ]; then + #echo -n "$channels h2c:io $sz thread $thread " + + ln=$(grep "write:" $fname) + parse_iops "\${ln}" + echo -n $sz,$thread,$value, >> $resfname + parse_bw "\${ln}" + echo -n $value, >> $resfname + ln=$(grep clat $fname | grep avg) + parse_latency "\${ln}" + echo "$value,,,," >> $resfname + + elif [ "$iodir" == "c2h" ]; then + #echo -n "$channels c2h:io $sz thread $thread " + + ln=$(grep "read:" $fname) + parse_iops "\${ln}" + echo -n $sz,$thread,,,,$value, >> $resfname + parse_bw "\${ln}" + echo -n $value, >> $resfname + ln=$(grep clat $fname | grep avg) + parse_latency "\${ln}" + echo "$value," >> $resfname + + elif [ "$iodir" == "bi" ]; then + #echo -n "$channels bidir:io $sz thread $thread " + + readarray lat_array < <(grep clat $fname | \ + grep avg) + + # h2c + #echo -n "h2c " + + ln=$(grep "write:" $fname) + parse_iops "\${ln}" + echo -n $sz,$thread,$value, >> $resfname + parse_bw "\${ln}" + echo -n $value, >> $resfname + parse_latency "\${lat_array[1]}" + echo -n $value, >> $resfname + + #c2h + #echo -n " c2h " + + ln=$(grep "read:" $fname) + parse_iops "\${ln}" + echo -n $value, >> $resfname + parse_bw "\${ln}" + echo -n $value, >> $resfname + parse_latency "\${lat_array[0]}" + echo $value >> $resfname + + fi + done + done +done + +echo +cd $dir +for channels in $channel_list; do + cd $dir/$channels + + echo -n "iosize(B)","Thread #", > $resfname + echo -n "H2C IOPS(K)","H2C BW(KB/s)","H2C Latency(usec)," >> $resfname + echo "C2H IOPS(K)","C2H BW(KB/s)","C2H Latency(usec)," >> $resfname + + for iodir in $iodir_list; do + cat $iodir/$resfname | sort -t, -k1,1n >> $resfname + done + + echo "$channels channel results: $dir/$channels/$resfname" +done diff --git a/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/fio_test.sh b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/fio_test.sh new file mode 100755 index 0000000..79b3e4c --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/fio_test.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +display_help() { + echo -n "$0 <# ch> < runtime> " + echo "" + echo -e "\t: xdmaN" + echo -e "\t

: io direction " + echo -e "\t<# ch>: fio --num_ch" + echo -e "\t: fio --io_size" + echo -e "\t: fio --runtime" + echo -e "\t: fio --threads" + echo -e "\t: log directory" + exit; +} + +#################### +# +# main body +# +#################### + +if [ $# -ne 7 ]; then + display_help +fi + +xid=$1 +iodir=$2 +num_ch=$3 +io_size=$4 +runtime=$5 +threads=$6 +logdir=$7 + +outfile="${logdir}/fio_${io_size}_t${threads}.log" + +exec_cmd= +op_cmd= +engine=sync +cmd_common="fio --allow_file_create=0 --ioengine=${engine} --zero_buffers" +cmd_common="$cmd_common --mem=mmap --runtime=${runtime} --time_based" +for ((i = 0; i < num_ch; i++)); do + if [ ${iodir} == bi ]; then + op_cmd="${op_cmd} --name=write${i} --bs=${io_size}" + op_cmd="${op_cmd} --size=${io_size} --offset=0 --rw=write" + op_cmd="${op_cmd} --filename=/dev/xdma0_h2c_${i}" + op_cmd="${op_cmd} --numjobs=${threads} --group_reporting" + op_cmd="${op_cmd} --name=read${i} --bs=${io_size}" + op_cmd="${op_cmd} --size=${io_size} --offset=0 --rw=read " + op_cmd="${op_cmd} --filename=/dev/xdma0_c2h_${i}" + op_cmd="${op_cmd} --numjobs=${threads} --group_reporting" + elif [ ${iodir} == h2c ]; then + op_cmd="${op_cmd} --name=write${i} --bs=${io_size}" + op_cmd="${op_cmd} --size=${io_size} --offset=0 --rw=write" + op_cmd="${op_cmd} --filename=/dev/xdma0_${iodir}_${i}" + op_cmd="${op_cmd} --numjobs=${threads} --group_reporting" + else + op_cmd="${op_cmd} --name=read${i} --bs=${io_size}" + op_cmd="${op_cmd} --size=${io_size} --offset=0 --rw=read" + op_cmd="${op_cmd} --filename=/dev/xdma0_${iodir}_${i}" + op_cmd="${op_cmd} --numjobs=${threads} --group_reporting" + fi +done + + +exec_cmd="${cmd_common}${op_cmd}" +echo -e "${exec_cmd}\n\n" > ${outfile} + +${exec_cmd} >> ${outfile} & +pid=$! +wait $pid diff --git a/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/io.sh b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/io.sh new file mode 100755 index 0000000..2436da5 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/io.sh @@ -0,0 +1,130 @@ +#!/bin/sh + +tool_path=../../tools +logdir=/tmp + +if [ $# -lt 9 ]; then + echo -ne "$0
" + echo " [data file]" + echo -e "\t: log test into dmesg" + echo -e "\t: read data back and compare" + echo -e "\t: dma transfer size" + echo -e "\t
: " + echo -e "\t: " + echo -e "\t: xdma" + echo -e "\t: dma h2c channel #, 0-based" + echo -e "\t\tif >= 4, no traffic will be ran" + echo -e "\t: dma c2h channel #, 0-based" + echo -e "\t if channel # >= 4 NO dma will be performed" + echo -e "\t\tif >= 4, no traffic will be ran" + echo -e "\t: temp. log directory" + echo -e "\t[data file]: data file, size >= io size, " + echo -e "\t optional if =0" + exit +fi + +dmesg=$1 +data_check=$2 +sz=$3 +address=$4 +offset=$5 +xid=$6 +h2cno=$7 +c2hno=$8 +logdir=$9 +if [ $# -gt 9 ]; then + datafile=${10} +fi + +if [ ! -d "$logdir" ]; then + mkdir -p $logdir +fi + +echo -en "\n===>$0 $xid, channel $h2cno:$c2hno, io $sz, addr $address, " +echo "off $offset, data: $datafile, integrity $data_check, dmesg $dmesg." + +if [ "$h2cno" -ge 4 ] && [ "$c2hno" -ge 4 ]; then + echo "$0: NO valid dma channel $h2cno:$c2hno" + exit 1 +fi + +h2c_cmd="$tool_path/dma_to_device -d /dev/${xid}_h2c_${h2cno}" +c2h_cmd="$tool_path/dma_from_device -d /dev/${xid}_c2h_${c2hno}" +if [ "$address" -ne "0" ]; then + h2c_cmd="$h2c_cmd -a $address" + c2h_cmd="$c2h_cmd -a $address" +fi + +if [ "$offset" -ne "0" ]; then + h2c_cmd="$h2c_cmd -o $offset" + c2h_cmd="$c2h_cmd -o $offset" +fi + +if [ "$data_check" -ne 0 ]; then + if [ -z "$datafile" ]; then + echo "no datafile specified" + exit 2 + fi + if [ ! -s "$datafile" ]; then + echo "missing datafile: $datafile ..." + exit 3 + fi + + h2c_fname="$logdir/$xid-h2c${h2cno}-io$sz-o$offset-a$address.bin" + rm -f $h2c_fname + h2c_cmd="$h2c_cmd -f $datafile -w $h2c_fname" + + c2h_fname="$logdir/$xid-c2h${c2hno}-io$sz-o$offset-a$address.bin" + rm -f $c2h_fname + c2h_cmd="$c2h_cmd -f $c2h_fname" +fi + +if [ "$h2cno" -lt 4 ]; then + if [ "$dmesg" -ne "0" ]; then + echo "$h2c_cmd -s $sz -c 1" > /dev/kmsg + fi + + echo "$h2c_cmd -s $sz -c 1 ..." > \ + ${logdir}/h2c-io${sz}-o${offset}-a${address}.log + out=`$h2c_cmd -s $sz -c 1` + + echo $out >> ${logdir}/h2c-io${sz}-o${offset}-a${address}.log + if [ "$?" -ne "0" ]; then + echo -e "\tH2C${h2cno}: io $sz, ERROR $?." + exit 4 + fi +fi + +if [ "$c2hno" -lt 4 ]; then + if [ "$dmesg" -ne "0" ]; then + echo "$c2h_cmd -s $sz -c 1 ..." > /dev/kmsg + fi + + echo "$c2h_cmd -s $sz -c 1 ..." > \ + ${logdir}/c2h-io${sz}-o${offset}-a${address}.log + out=`./$c2h_cmd -s $sz -c 1` + + echo $out >> ${logdir}/c2h-io${sz}-o${offset}-a${address}.log + if [ "$?" -ne "0" ]; then + echo -e "\tC2H$channel: io $sz, ERROR $?." + exit 5 + fi +fi + +if [ "$data_check" -eq 0 ]; then + # no data integrity check needs to be done + exit 0 +fi + +#md5sum $c2h_fname +#md5sum $h2c_fname +diff -q $c2h_fname $h2c_fname > /dev/null +if [ "$?" -eq "1" ]; then + echo -e "\t$xid $h2cno:$c2hno: io $sz, addr $address, off $offset," \ + "data integrity FAILED!." + exit 6 +fi +echo -e "\t$xid $h2cno:$c2hno: io $sz, addr $address, off $offset, data match." +rm -f $c2h_fname $h2c_fname + +exit 0 diff --git a/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/io_sweep.sh b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/io_sweep.sh new file mode 100755 index 0000000..fffd8ec --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/io_sweep.sh @@ -0,0 +1,87 @@ +#!/bin/sh + +delay=5 + +if [ $# -lt 9 ]; then + echo -ne "$0:
" + echo " [log dir]" + echo -e "\t: xdma" + echo -e "\th2c channel: H2C channel #, 0-based" + echo -e "\tc2h channel: C2H channel #, 0-based" + echo -e "\t
: " + echo -e "\t: " + echo -e "\t,: dma size in byte, io size start from" + echo -e "\t\tio_min, double each time until reaches io_max" + echo -e "\t: read back the data and compare, 0|1" + echo -e "\t: log test info. into dmesg, 0|1" + exit 1 +fi + +xid=$1 +h2cno=$2 +c2hno=$3 +addr=$4 +off=$5 +io_min=$6 +io_max=$7 +data_check=$8 +dmesg=$9 + +tmpdir="/tmp/${xid}_h2c${h2cno}c2h${c2hno}" + +echo "====>$0 $xid $h2cno:$c2hno, $io_min~$io_max @$addr $off, $data_check, $tmpdir" +if [ "$dmesg" -ne 0 ]; then + echo "$0 $xid $h2cno:$c2hno, $io_min~$io_max @$addr $off, $tmpdir..." \ + >> /dev/kmsg +fi + +if [ ! -d "$tmpdir" ]; then + mkdir -p $tmpdir +fi +rm -rf ${tmpdir}/* + +if [ "$data_check" -ne 0 ]; then + cnt=$(($io_max / 1024)) + if [ "$cnt" -eq 0 ]; then + cnt=1 + fi + datafile="$tmpdir/datafile-$cnt-K" + cnt=$(($cnt / 65536)) + if [ "$cnt" -eq "0" ]; then + cnt=1 + fi + if [ ! -f "$datafile" ]; then + echo "creating datafile: $datafile ..." + let cnt=cnt+1 + dd if=/dev/urandom of=$datafile bs=64M count=$cnt \ + iflag=fullblock + fi +fi + +date + +sz=$io_min +while [ "$sz" -le "$io_max" ]; do + ./io.sh $dmesg $data_check $sz $addr $off $xid $h2cno $c2hno $tmpdir \ + $datafile + if [ "$?" -ne "0" ]; then + #echo -e "\t$xid $h2cno:$c2hno, $sz FAILED" + exit 2 + fi + + if [ "$sz" -eq "$io_max" ]; then + break + fi + + sz=$(($sz * 2)) + if [ "$sz" -gt "$io_max" ]; then + sz=$io_max + fi + + if [ "$delay" -ne "0" ]; then + sleep $delay + fi +done + +echo "====>$0 $xid $h2cno:$c2hno, $io_min~$io_max @$addr $off COMPLETED!" +exit 0 diff --git a/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/libtest.sh b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/libtest.sh new file mode 100644 index 0000000..6b04fb7 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/libtest.sh @@ -0,0 +1,187 @@ +tool_path=../../tools +ERR=255 + +############################ +# +# utility functions +# +############################ + +# Make sure only root can run the script +function check_if_root() { + if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + exit $ERR + fi +} + +function check_cmd_exist() { + which $1 > /dev/null 2>&1 + if [[ $? -ne 0 ]]; then + echo "$1 NOT found on the system" + return $ERR + fi + return 0 +} + +# check_rc +function check_rc() { + local rc=$1 + + if [ $rc -ne 0 ]; then + echo "ERR! $2 failed $rc." + if [ $3 -gt 0 ]; then + exit $rc + fi + fi +} + +# check_dma_dir +function check_dma_dir() { + if [ "$1" != h2c ] && [ "$1" != c2h ] && [ "$1" != bi ]; then + echo "bad dma direction: $1." + exit $ERR + fi +} + +# check_driver_loaded +function check_driver_loaded() { + local bdf=$1 + lspci -s $bdf -v | grep driver | grep xdma | wc -l +} + +# bdf_to_xdmaid +function bdf_to_xdmaid() { + cd /sys/bus/pci/devices/$1/ + if [ -d "xdma" ]; then + cd xdma/ + ls | grep control | cut -d'_' -f1 + fi +} + +# cfg_reg_read +function cfg_reg_read() { + local v=`$tool_path/reg_rw /dev/$1_control $2 w | grep "Read.*:" | sed 's/Read.*: 0x\([a-z0-9]*\)/\1/'` + if [ -z "$v" ]; then + return $ERR + else + echo $v + return 0 + fi +} + +# cfg_reg_write +function cfg_reg_write() { + local v=`$tool_path/reg_rw /dev/$1_control $2 w $3` + return $? +} + +# get_streaming_enabled +function get_streaming_enabled() { + local v=`cfg_reg_read $1 0` + local rc=$? + if [ $rc -ne 0 ]; then + return $rc + fi + + local id=${v:0:3} + local stream=${v:4:1} + + local st=0 + if [ "$id" == "1fc" ]; then + if [ "$stream" == "8" ]; then + st=1 + fi + else + echo "$1 reg 0, $v, bad id $id, $stream." + return $ERR + fi + echo $st + return 0 +} + +# get_h2c_channel_count +function get_h2c_channel_count() { + local cnt=0 + + for ((i=0; i<=3; i++)); do + local regval=`cfg_reg_read $1 0x0${i}00` + if [ $? -ne 0 ]; then + break + fi + + local id=${regval:0:3} + if [ "$id" == "1fc" ]; then + cnt=$((cnt + 1)) + fi + done + echo $cnt + return 0 +} + +# get_c2h_channel_count +function get_c2h_channel_count() { + local cnt=0 + + for ((i=0; i<=3; i++)); do + local regval=`cfg_reg_read $1 0x1${i}00` + if [ $? -ne 0 ]; then + break + fi + + local id=${regval:0:3} + if [ "$id" == "1fc" ]; then + cnt=$((cnt + 1)) + fi + done + echo $cnt + return 0 +} + +############################################################################# +# +# test cases +# +############################################################################# + +# xdma config bar access +# TC_cfg_reg_rw +function TC_cfg_reg_rw() { + local reg=0x301c + local val=0 + + cfg_reg_write $reg $val + local v=$(cfg_reg_read $reg) + let "v = $v + 0" + + if [ $v -eq $val ]; then + echo "ERR ${FUNCNAME[0]} reg value mismatch $v, exp $val" + exit $ERR + fi + + cfg_reg_write $reg 1 +} + +# TC_dma_chrdev_open_close +function TC_dma_chrdev_open_close() { + local xid=$1 + local h2c_count=$2 + local c2h_count=$3 + local err=0 + + for ((i=0; i<$h2c_count; i++)); do + $tool_path/test_chrdev /dev/${xid}_h2c_$i > /dev/null 2>&1 + if [ $? -ne 0 ];then + echo "${FUNCNAME[0]} ${xid}_h2c_$i FAILED" + exit 1 + fi + done + + for ((i=0; i<$c2h_count; i++)); do + $tool_path/test_chrdev /dev/${xid}_c2h_$i > /dev/null 2>&1 + if [ $? -ne 0 ];then + echo "${FUNCNAME[0]} ${xid}_c2h_$i FAILED" + exit 2 + fi + done +} diff --git a/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/unaligned.sh b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/unaligned.sh new file mode 100755 index 0000000..f9160fb --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/unaligned.sh @@ -0,0 +1,93 @@ +#!/bin/sh + +########################## +# +# preset test parameters: +# +########################## +# dma io size +io_list="1 10 127 128 1021 1022 1023 1024 4095 4096 4097 4098 4099 8189 8190 8191 8192" +io_max=8192 + +# offset +offset_list="1 2 3 4 2045 2046 2047 2048 2049 4091 4092 4093 4094 4095" + +# starting address +address=0 + +# delay(sleep) before moving on to the next channel, if applicable +delay=2 + +########################## +# +# main +# +########################## +if [ $# -lt 5 ]; then + echo "$0: " + echo -e "\t: xdma" + echo -e "\t: H2C channel #, 0-based" + echo -e "\t: C2H channel #, 0-based" + echo -e "\t: read back the data and compare, 0|1" + echo -e "\t: log test info. into dmesg, 0|1" + exit +fi + +xid=$1 +h2cno=$2 +c2hno=$3 +data_check=$4 +dmesg=$5 + +tmpdir="/tmp/${xid}_h2c${h2cno}_c2h${c2hno}_unaligned" + +echo "====>$0 $xid $h2cno:$c2hno, $data_check,$dmesg, $tmpdir" +if [ "$dmesg" -ne 0 ]; then + echo "$0 $xid $h2cno:$c2hno, $tmpdir..." >> /dev/kmsg +fi + +if [ ! -d "$tmpdir" ]; then + mkdir -p $tmpdir +fi +rm -rf $tmpdir/* + +# generate data file, minimum 64MB +cnt=$(($io_max / 1024)) +if [ "$cnt" -eq "0" ]; then + cnt=1 +fi +datafile="$tmpdir/datafile-$cnt-K" +cnt=$(($cnt / 65536)) +if [ "$cnt" -eq "0" ]; then + cnt=1 +fi +if [ ! -f "$datafile" ]; then + echo "creating datafile: $datafile ..." + let cnt=cnt+1 + dd if=/dev/urandom of=$datafile bs=64M count=$cnt iflag=fullblock +fi + +echo +date + +echo "====>$0: $xid $h2cno:$c2hno, addr $address ..." > /dev/kmsg +echo "$0: $xid $h2cno:$c2hno, addr $address ..." > /dev/kmsg + +for io in $io_list; do + for offset in $offset_list; do + ./io.sh $dmesg $data_check $io $address $offset $xid \ + $h2cno $c2hno $tmpdir $datafile + if [ "$?" -ne "0" ]; then + echo -e "\t$xid $h2cno:$c2hno, $io, off $offset FAILED!" + exit 2 + fi + done + + if [ "$delay" -ne "0" ]; then + sleep $delay + fi +done + +date +echo "====>$0: $xid $h2cno:$c2hno, addr $address COMPLETED!" +exit 0 diff --git a/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/xdma_mm.sh b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/xdma_mm.sh new file mode 100755 index 0000000..a480dd7 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tests/scripts_mm/xdma_mm.sh @@ -0,0 +1,164 @@ +#!/bin/bash + +#################### +# +# test settings +# +#################### +outdir="/tmp" +driver_modes="0 4" ;# driver mode +address=0 +offset=0 +io_min=64 +io_max=$((1 << 30)) ;# 1GB +delay=5 ;# delay between each test + +fio_time=30 +fio_thread_list="4 8" +fio_iodir_list="h2c c2h bi" + +#################### +# +# main body +# +#################### + +display_help() { + echo "$0 [log dir]" + echo -e "xdma BDF:\tfpga pci device specified in the format of " + echo -e "\t\t\t::." + echo -e "log dir:\toptional, default to /tmp" + echo + exit; +} + +if [ $# -eq 0 ]; then + display_help +fi + +bdf=$1 +if [ $# -gt 1 ]; then + outdir=$2 +fi + +echo "xdma bdf:$bdf, outdir: $outdir" + +source ./libtest.sh + +check_if_root + +curdir=$PWD + +for dm in $driver_modes; do + + echo -e "\n\n====> xdma mode $dm ...\n" + + cd ../../tests + + ./load_driver.sh $dm + if [ $? -ne 0 ]; then + echo "load_driver.sh failed: $?" + exit 1 + fi + + cd $curdir + xid=$(bdf_to_xdmaid $bdf) + if [ ! -n "$xid" ]; then + echo "$bdf, no correponding xdma found, driver mode $dm." + exit 1 + fi + echo "xdma id: $xid." + + h2c_channels=$(get_h2c_channel_count $xid) + check_rc $? get_h2c_channel_count 1 + + c2h_channels=$(get_c2h_channel_count $xid) + check_rc $? get_c2h_channel_count 1 + + channel_pairs=$(($h2c_channels < $c2h_channels ? \ + $h2c_channels : $c2h_channels)) + echo "channels: $h2c_channels,$c2h_channels, pair $channel_pairs" + + if [ "$channel_pairs" -eq 0 ]; then + echo "Error: 0 DMA channel pair: $h2c_channels,$c2h_channels." + exit 1 + fi + + # test cdev + TC_dma_chrdev_open_close $xid $h2c_channels $c2h_channels + + # + # run 1 channel at a time + # + + for i in {1..80}; do echo -n =; done + echo -e "\nSingle H2C Channel $h2c_channels io test ...\n" + for ((i=0; i<$h2c_channels; i++)); do + # aligned: no data integrity check + ./io_sweep.sh $xid $i 4 $address $offset \ + $io_min $io_max 0 1 + check_rc $? "h2c-$i" 1 + ./unaligned.sh $xid $i 4 0 1 + check_rc $? "h2c-$i-unaligned" 1 + done + + for i in {1..80}; do echo -n =; done + echo -e "\nSingle C2H Channel $c2h_channels io test ...\n" + for ((i=0; i<$c2h_channels; i++)); do + ./io_sweep.sh $xid 4 $i $address $offset \ + $io_min $io_max 0 1 + check_rc $? "c2h-$i" 1 + ./unaligned.sh $xid 4 $i 0 1 + check_rc $? "c2h-$i-unaligned" 1 + done + + for i in {1..80}; do echo -n =; done + echo -e "\nh2c/c2h pair $channel_pairs io test with data check ...\n" + for ((i=0; i<$channel_pairs; i++)); do + ./io_sweep.sh $xid $i $i $address $offset $io_min $io_max 1 1 + check_rc $? "pair-$i" 1 + ./unaligned.sh $xid $i $i 1 1 + check_rc $? "pair-$i-unaligned" 1 + done + + # + # fio test + # + + check_cmd_exist fio + if [ "$?" -ne 0 ]; then + echo "fio test skipped" + continue + fi + + for i in {1..80}; do echo -n =; done + echo -e "\nfio test ...\n" + + # + # result directory structure: + # - + # - + # - + # + for ((i=1; i<=$channel_pairs; i++)); do + for iodir in $fio_iodir_list; do + out=${outdir}/fio_d${dm}/${i}/${iodir} + mkdir -p ${out} + rm -rf ${out}/* + + for (( sz=$io_min; sz<=$io_max; sz=$(($sz*2)) )); do + for thread in $fio_thread_list; do + name=${sz}_t${thread} + echo "$iodir $i: $name ..." + ./fio_test.sh $xid $iodir $i ${sz} \ + ${fio_time} ${thread} ${out} + done + done + done + done + ./fio_parse_result.sh ${outdir}/fio_d${dm} + + echo -e "\n\n====> xdma mode $dm COMPLETED.\n" +done + +echo "$0: COMPLETED." diff --git a/host_software/driver/XDMA/linux-kernel/tools/Makefile b/host_software/driver/XDMA/linux-kernel/tools/Makefile new file mode 100644 index 0000000..80f6366 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tools/Makefile @@ -0,0 +1,24 @@ +CC ?= gcc + +all: reg_rw dma_to_device dma_from_device performance test_chrdev + +dma_to_device: dma_to_device.o + $(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE + +dma_from_device: dma_from_device.o + $(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE + +performance: performance.o + $(CC) -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE + +reg_rw: reg_rw.o + $(CC) -o $@ $< + +test_chrdev: test_chrdev.o + $(CC) -o $@ $< + +%.o: %.c + $(CC) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE + +clean: + rm -rf reg_rw *.o *.bin dma_to_device dma_from_device performance test_chrdev diff --git a/host_software/driver/XDMA/linux-kernel/tools/dma_from_device.c b/host_software/driver/XDMA/linux-kernel/tools/dma_from_device.c new file mode 100644 index 0000000..ba4515d --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tools/dma_from_device.c @@ -0,0 +1,304 @@ +/* + * This file is part of the Xilinx DMA IP Core driver tool for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "../xdma/cdev_sgdma.h" + +#include "dma_utils.c" + +#define DEVICE_NAME_DEFAULT "/dev/xdma0_c2h_0" +#define SIZE_DEFAULT (32) +#define COUNT_DEFAULT (1) + +static struct option const long_opts[] = { + {"device", required_argument, NULL, 'd'}, + {"address", required_argument, NULL, 'a'}, + {"aperture", required_argument, NULL, 'k'}, + {"size", required_argument, NULL, 's'}, + {"offset", required_argument, NULL, 'o'}, + {"count", required_argument, NULL, 'c'}, + {"file", required_argument, NULL, 'f'}, + {"eop_flush", no_argument, NULL, 'e'}, + {"help", no_argument, NULL, 'h'}, + {"verbose", no_argument, NULL, 'v'}, + {0, 0, 0, 0} +}; + +static int test_dma(char *devname, uint64_t addr, uint64_t aperture, + uint64_t size, uint64_t offset, uint64_t count, + char *ofname); +static int eop_flush = 0; + +static void usage(const char *name) +{ + int i = 0; + fprintf(stdout, "%s\n\n", name); + fprintf(stdout, "usage: %s [OPTIONS]\n\n", name); + fprintf(stdout, "Read via SGDMA, optionally save output to a file\n\n"); + + fprintf(stdout, " -%c (--%s) device (defaults to %s)\n", + long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) the start address on the AXI bus\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) memory address aperture\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) size of a single transfer in bytes, default %d.\n", + long_opts[i].val, long_opts[i].name, SIZE_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) page offset of transfer\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) number of transfers, default is %d.\n", + long_opts[i].val, long_opts[i].name, COUNT_DEFAULT); + i++; + fprintf(stdout, + " -%c (--%s) file to write the data of the transfers\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) end dma when ST end-of-packet(eop) is rcved\n", + long_opts[i].val, long_opts[i].name); + fprintf(stdout, + "\t\t* streaming only, ignored for memory-mapped channels\n"); + fprintf(stdout, + "\t\t* acutal # of bytes dma'ed could be smaller than specified\n"); + i++; + fprintf(stdout, " -%c (--%s) print usage help and exit\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) verbose output\n", + long_opts[i].val, long_opts[i].name); + i++; + + fprintf(stdout, "\nReturn code:\n"); + fprintf(stdout, " 0: all bytes were dma'ed successfully\n"); + fprintf(stdout, " * with -e set, the bytes dma'ed could be smaller\n"); + fprintf(stdout, " < 0: error\n\n"); +} + +int main(int argc, char *argv[]) +{ + int cmd_opt; + char *device = DEVICE_NAME_DEFAULT; + uint64_t address = 0; + uint64_t aperture = 0; + uint64_t size = SIZE_DEFAULT; + uint64_t offset = 0; + uint64_t count = COUNT_DEFAULT; + char *ofname = NULL; + + while ((cmd_opt = getopt_long(argc, argv, "vhec:f:d:a:k:s:o:", long_opts, + NULL)) != -1) { + switch (cmd_opt) { + case 0: + /* long option */ + break; + case 'd': + /* device node name */ + device = strdup(optarg); + break; + case 'a': + /* RAM address on the AXI bus in bytes */ + address = getopt_integer(optarg); + break; + case 'k': + /* memory aperture windows size */ + aperture = getopt_integer(optarg); + break; + case 's': + /* RAM size in bytes */ + size = getopt_integer(optarg); + break; + case 'o': + offset = getopt_integer(optarg) & 4095; + break; + /* count */ + case 'c': + count = getopt_integer(optarg); + break; + /* count */ + case 'f': + ofname = strdup(optarg); + break; + /* print usage help and exit */ + case 'v': + verbose = 1; + break; + case 'e': + eop_flush = 1; + break; + case 'h': + default: + usage(argv[0]); + exit(0); + break; + } + } + if (verbose) + fprintf(stdout, + "dev %s, addr 0x%lx, aperture 0x%lx, size 0x%lx, offset 0x%lx, " + "count %lu\n", + device, address, aperture, size, offset, count); + + return test_dma(device, address, aperture, size, offset, count, ofname); +} + +static int test_dma(char *devname, uint64_t addr, uint64_t aperture, + uint64_t size, uint64_t offset, uint64_t count, + char *ofname) +{ + ssize_t rc = 0; + size_t out_offset = 0; + size_t bytes_done = 0; + uint64_t i; + char *buffer = NULL; + char *allocated = NULL; + struct timespec ts_start, ts_end; + int out_fd = -1; + int fpga_fd; + long total_time = 0; + float result; + float avg_time = 0; + int underflow = 0; + + /* + * use O_TRUNC to indicate to the driver to flush the data up based on + * EOP (end-of-packet), streaming mode only + */ + if (eop_flush) + fpga_fd = open(devname, O_RDWR | O_TRUNC); + else + fpga_fd = open(devname, O_RDWR); + + if (fpga_fd < 0) { + fprintf(stderr, "unable to open device %s, %d.\n", + devname, fpga_fd); + perror("open device"); + return -EINVAL; + } + + /* create file to write data to */ + if (ofname) { + out_fd = open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC, + 0666); + if (out_fd < 0) { + fprintf(stderr, "unable to open output file %s, %d.\n", + ofname, out_fd); + perror("open output file"); + rc = -EINVAL; + goto out; + } + } + + posix_memalign((void **)&allocated, 4096 /*alignment */ , size + 4096); + if (!allocated) { + fprintf(stderr, "OOM %lu.\n", size + 4096); + rc = -ENOMEM; + goto out; + } + + buffer = allocated + offset; + if (verbose) + fprintf(stdout, "host buffer 0x%lx, %p.\n", size + 4096, buffer); + + for (i = 0; i < count; i++) { + rc = clock_gettime(CLOCK_MONOTONIC, &ts_start); + if (aperture) { + struct xdma_aperture_ioctl io; + + io.buffer = (unsigned long)buffer; + io.len = size; + io.ep_addr = addr; + io.aperture = aperture; + io.done = 0UL; + + rc = ioctl(fpga_fd, IOCTL_XDMA_APERTURE_R, &io); + if (rc < 0 || io.error) { + fprintf(stderr, + "#%d: aperture R failed %d,%d.\n", + i, rc, io.error); + goto out; + } + + bytes_done = io.done; + } else { + rc = read_to_buffer(devname, fpga_fd, buffer, size, addr); + if (rc < 0) + goto out; + bytes_done = rc; + + } + clock_gettime(CLOCK_MONOTONIC, &ts_end); + + if (bytes_done < size) { + fprintf(stderr, "#%d: underflow %ld/%ld.\n", + i, bytes_done, size); + underflow = 1; + } + + /* subtract the start time from the end time */ + timespec_sub(&ts_end, &ts_start); + total_time += ts_end.tv_nsec; + /* a bit less accurate but side-effects are accounted for */ + if (verbose) + fprintf(stdout, + "#%lu: CLOCK_MONOTONIC %ld.%09ld sec. read %ld/%ld bytes\n", + i, ts_end.tv_sec, ts_end.tv_nsec, bytes_done, size); + + /* file argument given? */ + if (out_fd >= 0) { + rc = write_from_buffer(ofname, out_fd, buffer, + bytes_done, out_offset); + if (rc < 0 || rc < bytes_done) + goto out; + out_offset += bytes_done; + } + } + + if (!underflow) { + avg_time = (float)total_time/(float)count; + result = ((float)size)*1000/avg_time; + if (verbose) + printf("** Avg time device %s, total time %ld nsec, avg_time = %f, size = %lu, BW = %f \n", + devname, total_time, avg_time, size, result); + printf("%s ** Average BW = %lu, %f\n", devname, size, result); + rc = 0; + } else if (eop_flush) { + /* allow underflow with -e option */ + rc = 0; + } else + rc = -EIO; + +out: + close(fpga_fd); + if (out_fd >= 0) + close(out_fd); + free(allocated); + + return rc; +} diff --git a/host_software/driver/XDMA/linux-kernel/tools/dma_to_device.c b/host_software/driver/XDMA/linux-kernel/tools/dma_to_device.c new file mode 100644 index 0000000..6d8eada --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tools/dma_to_device.c @@ -0,0 +1,318 @@ +/* + * This file is part of the Xilinx DMA IP Core driver tools for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "../xdma/cdev_sgdma.h" + +#include "dma_utils.c" + +static struct option const long_opts[] = { + {"device", required_argument, NULL, 'd'}, + {"address", required_argument, NULL, 'a'}, + {"aperture", required_argument, NULL, 'k'}, + {"size", required_argument, NULL, 's'}, + {"offset", required_argument, NULL, 'o'}, + {"count", required_argument, NULL, 'c'}, + {"data infile", required_argument, NULL, 'f'}, + {"data outfile", required_argument, NULL, 'w'}, + {"help", no_argument, NULL, 'h'}, + {"verbose", no_argument, NULL, 'v'}, + {0, 0, 0, 0} +}; + +#define DEVICE_NAME_DEFAULT "/dev/xdma0_h2c_0" +#define SIZE_DEFAULT (32) +#define COUNT_DEFAULT (1) + + +static int test_dma(char *devname, uint64_t addr, uint64_t aperture, + uint64_t size, uint64_t offset, uint64_t count, + char *filename, char *); + +static void usage(const char *name) +{ + int i = 0; + + fprintf(stdout, "%s\n\n", name); + fprintf(stdout, "usage: %s [OPTIONS]\n\n", name); + fprintf(stdout, + "Write via SGDMA, optionally read input from a file.\n\n"); + + fprintf(stdout, " -%c (--%s) device (defaults to %s)\n", + long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) the start address on the AXI bus\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) memory address aperture\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) size of a single transfer in bytes, default %d,\n", + long_opts[i].val, long_opts[i].name, SIZE_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) page offset of transfer\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) number of transfers, default %d\n", + long_opts[i].val, long_opts[i].name, COUNT_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) filename to read the data from.\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) filename to write the data of the transfers\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) print usage help and exit\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) verbose output\n", + long_opts[i].val, long_opts[i].name); + i++; + + fprintf(stdout, "\nReturn code:\n"); + fprintf(stdout, " 0: all bytes were dma'ed successfully\n"); + fprintf(stdout, " < 0: error\n\n"); +} + +int main(int argc, char *argv[]) +{ + int cmd_opt; + char *device = DEVICE_NAME_DEFAULT; + uint64_t address = 0; + uint64_t aperture = 0; + uint64_t size = SIZE_DEFAULT; + uint64_t offset = 0; + uint64_t count = COUNT_DEFAULT; + char *infname = NULL; + char *ofname = NULL; + + while ((cmd_opt = + getopt_long(argc, argv, "vhc:f:d:a:k:s:o:w:", long_opts, + NULL)) != -1) { + switch (cmd_opt) { + case 0: + /* long option */ + break; + case 'd': + /* device node name */ + //fprintf(stdout, "'%s'\n", optarg); + device = strdup(optarg); + break; + case 'a': + /* RAM address on the AXI bus in bytes */ + address = getopt_integer(optarg); + break; + case 'k': + /* memory aperture windows size */ + aperture = getopt_integer(optarg); + break; + case 's': + /* size in bytes */ + size = getopt_integer(optarg); + break; + case 'o': + offset = getopt_integer(optarg) & 4095; + break; + /* count */ + case 'c': + count = getopt_integer(optarg); + break; + /* count */ + case 'f': + infname = strdup(optarg); + break; + case 'w': + ofname = strdup(optarg); + break; + /* print usage help and exit */ + case 'v': + verbose = 1; + break; + case 'h': + default: + usage(argv[0]); + exit(0); + break; + } + } + + if (verbose) + fprintf(stdout, + "dev %s, addr 0x%lx, aperture 0x%lx, size 0x%lx, offset 0x%lx, " + "count %lu\n", + device, address, aperture, size, offset, count); + + return test_dma(device, address, aperture, size, offset, count, + infname, ofname); +} + +static int test_dma(char *devname, uint64_t addr, uint64_t aperture, + uint64_t size, uint64_t offset, uint64_t count, + char *infname, char *ofname) +{ + uint64_t i; + ssize_t rc; + size_t bytes_done = 0; + size_t out_offset = 0; + char *buffer = NULL; + char *allocated = NULL; + struct timespec ts_start, ts_end; + int infile_fd = -1; + int outfile_fd = -1; + int fpga_fd = open(devname, O_RDWR); + long total_time = 0; + float result; + float avg_time = 0; + int underflow = 0; + + if (fpga_fd < 0) { + fprintf(stderr, "unable to open device %s, %d.\n", + devname, fpga_fd); + perror("open device"); + return -EINVAL; + } + + if (infname) { + infile_fd = open(infname, O_RDONLY); + if (infile_fd < 0) { + fprintf(stderr, "unable to open input file %s, %d.\n", + infname, infile_fd); + perror("open input file"); + rc = -EINVAL; + goto out; + } + } + + if (ofname) { + outfile_fd = + open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC, + 0666); + if (outfile_fd < 0) { + fprintf(stderr, "unable to open output file %s, %d.\n", + ofname, outfile_fd); + perror("open output file"); + rc = -EINVAL; + goto out; + } + } + + posix_memalign((void **)&allocated, 4096 /*alignment */ , size + 4096); + if (!allocated) { + fprintf(stderr, "OOM %lu.\n", size + 4096); + rc = -ENOMEM; + goto out; + } + buffer = allocated + offset; + if (verbose) + fprintf(stdout, "host buffer 0x%lx = %p\n", + size + 4096, buffer); + + if (infile_fd >= 0) { + rc = read_to_buffer(infname, infile_fd, buffer, size, 0); + if (rc < 0 || rc < size) + goto out; + } + + for (i = 0; i < count; i++) { + /* write buffer to AXI MM address using SGDMA */ + rc = clock_gettime(CLOCK_MONOTONIC, &ts_start); + + if (aperture) { + struct xdma_aperture_ioctl io; + + io.buffer = (unsigned long)buffer; + io.len = size; + io.ep_addr = addr; + io.aperture = aperture; + io.done = 0UL; + + rc = ioctl(fpga_fd, IOCTL_XDMA_APERTURE_W, &io); + if (rc < 0 || io.error) { + fprintf(stdout, + "#%d: aperture W ioctl failed %d,%d.\n", + i, rc, io.error); + goto out; + } + + bytes_done = io.done; + } else { + rc = write_from_buffer(devname, fpga_fd, buffer, size, + addr); + if (rc < 0) + goto out; + + bytes_done = rc; + } + + rc = clock_gettime(CLOCK_MONOTONIC, &ts_end); + + if (bytes_done < size) { + printf("#%d: underflow %ld/%ld.\n", + i, bytes_done, size); + underflow = 1; + } + + /* subtract the start time from the end time */ + timespec_sub(&ts_end, &ts_start); + total_time += ts_end.tv_nsec; + /* a bit less accurate but side-effects are accounted for */ + if (verbose) + fprintf(stdout, + "#%lu: CLOCK_MONOTONIC %ld.%09ld sec. write %ld bytes\n", + i, ts_end.tv_sec, ts_end.tv_nsec, size); + + if (outfile_fd >= 0) { + rc = write_from_buffer(ofname, outfile_fd, buffer, + bytes_done, out_offset); + if (rc < 0 || rc < bytes_done) + goto out; + out_offset += bytes_done; + } + } + + if (!underflow) { + avg_time = (float)total_time/(float)count; + result = ((float)size)*1000/avg_time; + if (verbose) + printf("** Avg time device %s, total time %ld nsec, avg_time = %f, size = %lu, BW = %f \n", + devname, total_time, avg_time, size, result); + printf("%s ** Average BW = %lu, %f\n", devname, size, result); + } + +out: + close(fpga_fd); + if (infile_fd >= 0) + close(infile_fd); + if (outfile_fd >= 0) + close(outfile_fd); + free(allocated); + + if (rc < 0) + return rc; + /* treat underflow as error */ + return underflow ? -EIO : 0; +} diff --git a/host_software/driver/XDMA/linux-kernel/tools/dma_utils.c b/host_software/driver/XDMA/linux-kernel/tools/dma_utils.c new file mode 100644 index 0000000..9812279 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tools/dma_utils.c @@ -0,0 +1,183 @@ +/* + * This file is part of the Xilinx DMA IP Core driver tools for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include +#include +#include +#include +#include +#include + +/* + * man 2 write: + * On Linux, write() (and similar system calls) will transfer at most + * 0x7ffff000 (2,147,479,552) bytes, returning the number of bytes + * actually transferred. (This is true on both 32-bit and 64-bit + * systems.) + */ + +#define RW_MAX_SIZE 0x7ffff000 + +int verbose = 0; + +uint64_t getopt_integer(char *optarg) +{ + int rc; + uint64_t value; + + rc = sscanf(optarg, "0x%lx", &value); + if (rc <= 0) + rc = sscanf(optarg, "%lu", &value); + //printf("sscanf() = %d, value = 0x%lx\n", rc, value); + + return value; +} + +ssize_t read_to_buffer(char *fname, int fd, char *buffer, uint64_t size, + uint64_t base) +{ + ssize_t rc; + uint64_t count = 0; + char *buf = buffer; + off_t offset = base; + int loop = 0; + + while (count < size) { + uint64_t bytes = size - count; + + if (bytes > RW_MAX_SIZE) + bytes = RW_MAX_SIZE; + + if (offset) { + rc = lseek(fd, offset, SEEK_SET); + if (rc != offset) { + fprintf(stderr, "%s, seek off 0x%lx != 0x%lx.\n", + fname, rc, offset); + perror("seek file"); + return -EIO; + } + } + + /* read data from file into memory buffer */ + rc = read(fd, buf, bytes); + if (rc < 0) { + fprintf(stderr, "%s, read 0x%lx @ 0x%lx failed %ld.\n", + fname, bytes, offset, rc); + perror("read file"); + return -EIO; + } + + count += rc; + if (rc != bytes) { + fprintf(stderr, "%s, read underflow 0x%lx/0x%lx @ 0x%lx.\n", + fname, rc, bytes, offset); + break; + } + + buf += bytes; + offset += bytes; + loop++; + } + + if (count != size && loop) + fprintf(stderr, "%s, read underflow 0x%lx/0x%lx.\n", + fname, count, size); + return count; +} + +ssize_t write_from_buffer(char *fname, int fd, char *buffer, uint64_t size, + uint64_t base) +{ + ssize_t rc; + uint64_t count = 0; + char *buf = buffer; + off_t offset = base; + int loop = 0; + + while (count < size) { + uint64_t bytes = size - count; + + if (bytes > RW_MAX_SIZE) + bytes = RW_MAX_SIZE; + + if (offset) { + rc = lseek(fd, offset, SEEK_SET); + if (rc != offset) { + fprintf(stderr, "%s, seek off 0x%lx != 0x%lx.\n", + fname, rc, offset); + perror("seek file"); + return -EIO; + } + } + + /* write data to file from memory buffer */ + rc = write(fd, buf, bytes); + if (rc < 0) { + fprintf(stderr, "%s, write 0x%lx @ 0x%lx failed %ld.\n", + fname, bytes, offset, rc); + perror("write file"); + return -EIO; + } + + count += rc; + if (rc != bytes) { + fprintf(stderr, "%s, write underflow 0x%lx/0x%lx @ 0x%lx.\n", + fname, rc, bytes, offset); + break; + } + buf += bytes; + offset += bytes; + + loop++; + } + + if (count != size && loop) + fprintf(stderr, "%s, write underflow 0x%lx/0x%lx.\n", + fname, count, size); + + return count; +} + + +/* Subtract timespec t2 from t1 + * + * Both t1 and t2 must already be normalized + * i.e. 0 <= nsec < 1000000000 + */ +static int timespec_check(struct timespec *t) +{ + if ((t->tv_nsec < 0) || (t->tv_nsec >= 1000000000)) + return -1; + return 0; + +} + +void timespec_sub(struct timespec *t1, struct timespec *t2) +{ + if (timespec_check(t1) < 0) { + fprintf(stderr, "invalid time #1: %lld.%.9ld.\n", + (long long)t1->tv_sec, t1->tv_nsec); + return; + } + if (timespec_check(t2) < 0) { + fprintf(stderr, "invalid time #2: %lld.%.9ld.\n", + (long long)t2->tv_sec, t2->tv_nsec); + return; + } + t1->tv_sec -= t2->tv_sec; + t1->tv_nsec -= t2->tv_nsec; + if (t1->tv_nsec >= 1000000000) { + t1->tv_sec++; + t1->tv_nsec -= 1000000000; + } else if (t1->tv_nsec < 0) { + t1->tv_sec--; + t1->tv_nsec += 1000000000; + } +} diff --git a/host_software/driver/XDMA/linux-kernel/tools/performance.c b/host_software/driver/XDMA/linux-kernel/tools/performance.c new file mode 100644 index 0000000..f5536e5 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tools/performance.c @@ -0,0 +1,174 @@ +/* + * This file is part of the Xilinx DMA IP Core driver tools for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "../xdma/cdev_sgdma.h" + +struct xdma_performance_ioctl perf; + +static struct option const long_opts[] = +{ + {"device", required_argument, NULL, 'd'}, + {"count", required_argument, NULL, 'c'}, + {"size", required_argument, NULL, 's'}, + {"incremental", no_argument, NULL, 'i'}, + {"non-incremental", no_argument, NULL, 'n'}, + {"verbose", no_argument, NULL, 'v'}, + {"help", no_argument, NULL, 'h'}, + {0, 0, 0, 0} +}; + +static void usage(const char* name) +{ + int i = 0; + printf("%s\n\n", name); + printf("usage: %s [OPTIONS]\n\n", name); + printf("Performance test for XDMA SGDMA engine.\n\n"); + + printf(" -%c (--%s) device\n", long_opts[i].val, long_opts[i].name); i++; + printf(" -%c (--%s) incremental\n", long_opts[i].val, long_opts[i].name); i++; + printf(" -%c (--%s) non-incremental\n", long_opts[i].val, long_opts[i].name); i++; + printf(" -%c (--%s) be more verbose during test\n", long_opts[i].val, long_opts[i].name); i++; + printf(" -%c (--%s) print usage help and exit\n", long_opts[i].val, long_opts[i].name); i++; +} + +static uint32_t getopt_integer(char *optarg) +{ + int rc; + uint32_t value; + rc = sscanf(optarg, "0x%x", &value); + if (rc <= 0) + rc = sscanf(optarg, "%ul", &value); + //printf("sscanf() = %d, value = 0x%08x\n", rc, (unsigned int)value); + return value; +} + +int test_dma(char *device_name, int size, int count); + +static int verbosity = 0; + +int main(int argc, char *argv[]) +{ + int cmd_opt; + char *device = "/dev/xdma/card0/h2c0"; + uint32_t size = 32768; + uint32_t count = 1; + char *filename = NULL; + + while ((cmd_opt = getopt_long(argc, argv, "vhic:d:s:", long_opts, NULL)) != -1) + { + switch (cmd_opt) + { + case 0: + /* long option */ + break; + case 'v': + verbosity++; + break; + /* device node name */ + case 'd': + printf("'%s'\n", optarg); + device = strdup(optarg); + break; + /* transfer size in bytes */ + case 's': + size = getopt_integer(optarg); + break; + /* count */ + case 'c': + count = getopt_integer(optarg); + printf(" count = %d\n", count); + break; + /* print usage help and exit */ + case 'h': + default: + usage(argv[0]); + exit(0); + break; + } + } + printf("device = %s, size = 0x%08x, count = %u\n", device, size, count); + test_dma(device, size, count); + +} + +int test_dma(char *device_name, int size, int count) +{ + int rc = 0; + int fd = open(device_name, O_RDWR); + if (fd < 0) { + printf("FAILURE: Could not open %s. Make sure xdma device driver is loaded and you have access rights (maybe use sudo?).\n", device_name); + exit(1); + } + + unsigned char status = 1; + + perf.version = IOCTL_XDMA_PERF_V1; + perf.transfer_size = size; + rc = ioctl(fd, IOCTL_XDMA_PERF_START, &perf); + if (rc == 0) { + printf("IOCTL_XDMA_PERF_START succesful.\n"); + } else { + printf("ioctl(..., IOCTL_XDMA_PERF_START) = %d\n", rc); + } +#if 1 + while (count--) { + + sleep(2); + rc = ioctl(fd, IOCTL_XDMA_PERF_GET, &perf); + if (rc == 0) { + printf("IOCTL_XDMA_PERF_GET succesful.\n"); + } else { + printf("ioctl(..., IOCTL_XDMA_PERF_GET) = %d\n", rc); + } + printf("perf.transfer_size = %d\n", perf.transfer_size); + printf("perf.iterations = %d\n", perf.iterations); + printf("(data transferred = %lld bytes)\n", (long long)perf.transfer_size * (long long)perf.iterations); + printf("perf.clock_cycle_count = %lld\n", (long long)perf.clock_cycle_count); + printf("perf.data_cycle_count = %lld\n", (long long)perf.data_cycle_count); + if (perf.clock_cycle_count && perf.data_cycle_count) { + printf("(data duty cycle = %lld%%)\n", (long long)perf.data_cycle_count * 100 / (long long)perf.clock_cycle_count); + } + } +#endif + rc = ioctl(fd, IOCTL_XDMA_PERF_STOP, &perf); + if (rc == 0) { + printf("IOCTL_XDMA_PERF_STOP succesful.\n"); + } else { + printf("ioctl(..., IOCTL_XDMA_PERF_STOP) = %d\n", rc); + } + printf("perf.transfer_size = %d bytes\n", perf.transfer_size); + printf("perf.iterations = %d\n", perf.iterations); + printf("(data transferred = %lld bytes)\n", (long long)perf.transfer_size * (long long)perf.iterations); + printf("perf.clock_cycle_count = %lld\n", (long long)perf.clock_cycle_count); + printf("perf.data_cycle_count = %lld\n", (long long)perf.data_cycle_count); + if (perf.clock_cycle_count && perf.data_cycle_count) { + printf("(data duty cycle = %lld%%)\n", (long long)perf.data_cycle_count * 100 / (long long)perf.clock_cycle_count); + printf (" data rate ***** bytes length = %d, rate = %f \n", perf.transfer_size, (double)(long long)perf.data_cycle_count/(long long)perf.clock_cycle_count); + } + printf("perf.pending_count = %lld\n", (long long)perf.pending_count); + + close(fd); +} diff --git a/host_software/driver/XDMA/linux-kernel/tools/reg_rw.c b/host_software/driver/XDMA/linux-kernel/tools/reg_rw.c new file mode 100644 index 0000000..9965a16 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tools/reg_rw.c @@ -0,0 +1,179 @@ +/* + * This file is part of the Xilinx DMA IP Core driver tools for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +/* ltoh: little endian to host */ +/* htol: host to little endian */ +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define ltohl(x) (x) +#define ltohs(x) (x) +#define htoll(x) (x) +#define htols(x) (x) +#elif __BYTE_ORDER == __BIG_ENDIAN +#define ltohl(x) __bswap_32(x) +#define ltohs(x) __bswap_16(x) +#define htoll(x) __bswap_32(x) +#define htols(x) __bswap_16(x) +#endif + +int main(int argc, char **argv) +{ + int fd; + int err = 0; + void *map; + uint32_t read_result, writeval; + off_t target; + off_t pgsz, target_aligned, offset; + /* access width */ + char access_width = 'w'; + char *device; + + /* not enough arguments given? */ + if (argc < 3) { + fprintf(stderr, + "\nUsage:\t%s
[[type] data]\n" + "\tdevice : character device to access\n" + "\taddress : memory address to access\n" + "\ttype : access operation type : [b]yte, [h]alfword, [w]ord\n" + "\tdata : data to be written for a write\n\n", + argv[0]); + exit(1); + } + + device = strdup(argv[1]); + target = strtoul(argv[2], 0, 0); + /* check for target page alignment */ + pgsz = sysconf(_SC_PAGESIZE); + offset = target & (pgsz - 1); + target_aligned = target & (~(pgsz - 1)); + + printf("device: %s, address: 0x%lx (0x%lx+0x%lx), access %s.\n", + device, target, target_aligned, offset, + argc >= 4 ? "write" : "read"); + + /* data given? */ + if (argc >= 4) + access_width = tolower(argv[3][0]); + printf("access width: "); + if (access_width == 'b') + printf("byte (8-bits)\n"); + else if (access_width == 'h') + printf("half word (16-bits)\n"); + else if (access_width == 'w') + printf("word (32-bits)\n"); + else { + printf("default to word (32-bits)\n"); + access_width = 'w'; + } + + if ((fd = open(argv[1], O_RDWR | O_SYNC)) == -1) { + printf("character device %s opened failed: %s.\n", + argv[1], strerror(errno)); + return -errno; + } + printf("character device %s opened.\n", argv[1]); + + map = mmap(NULL, offset + 4, PROT_READ | PROT_WRITE, MAP_SHARED, fd, + target_aligned); + if (map == (void *)-1) { + printf("Memory 0x%lx mapped failed: %s.\n", + target, strerror(errno)); + err = 1; + goto close; + } + printf("Memory 0x%lx mapped at address %p.\n", target_aligned, map); + + map += offset; + /* read only */ + if (argc <= 4) { + switch (access_width) { + case 'b': + read_result = *((uint8_t *) map); + printf + ("Read 8-bits value at address 0x%lx (%p): 0x%02x\n", + target, map, (unsigned int)read_result); + break; + case 'h': + read_result = *((uint16_t *) map); + /* swap 16-bit endianess if host is not little-endian */ + read_result = ltohs(read_result); + printf + ("Read 16-bit value at address 0x%lx (%p): 0x%04x\n", + target, map, (unsigned int)read_result); + break; + case 'w': + read_result = *((uint32_t *) map); + /* swap 32-bit endianess if host is not little-endian */ + read_result = ltohl(read_result); + printf + ("Read 32-bit value at address 0x%lx (%p): 0x%08x\n", + target, map, (unsigned int)read_result); + break; + default: + fprintf(stderr, "Illegal data type '%c'.\n", + access_width); + err = 1; + goto unmap; + } + } + + /* data value given, i.e. writing? */ + if (argc >= 5) { + writeval = strtoul(argv[4], 0, 0); + switch (access_width) { + case 'b': + printf("Write 8-bits value 0x%02x to 0x%lx (0x%p)\n", + (unsigned int)writeval, target, map); + *((uint8_t *) map) = writeval; + break; + case 'h': + printf("Write 16-bits value 0x%04x to 0x%lx (0x%p)\n", + (unsigned int)writeval, target, map); + /* swap 16-bit endianess if host is not little-endian */ + writeval = htols(writeval); + *((uint16_t *) map) = writeval; + break; + case 'w': + printf("Write 32-bits value 0x%08x to 0x%lx (0x%p)\n", + (unsigned int)writeval, target, map); + /* swap 32-bit endianess if host is not little-endian */ + writeval = htoll(writeval); + *((uint32_t *) map) = writeval; + break; + default: + fprintf(stderr, "Illegal data type '%c'.\n", + access_width); + err = 1; + goto unmap; + } + } +unmap: + map -= offset; + if (munmap(map, offset + 4) == -1) { + printf("Memory 0x%lx mapped failed: %s.\n", + target, strerror(errno)); + } +close: + close(fd); + + return err; +} diff --git a/host_software/driver/XDMA/linux-kernel/tools/test_chrdev.c b/host_software/driver/XDMA/linux-kernel/tools/test_chrdev.c new file mode 100644 index 0000000..3d48634 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/tools/test_chrdev.c @@ -0,0 +1,46 @@ +/* + * This file is part of the Xilinx DMA IP Core driver tools for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + + int fd; + char *filename; + + if ( (argc < 2) || (argc >= 3)) + { + printf("usage %s \n",argv[0]); + return -1; + } + filename = argv[1]; + fd = open(filename,O_RDWR); + if (fd < 0) + { + perror("Device open Failed"); + return fd; + } + printf("%s Device open successfull\n",argv[1]); + + if ( close(fd) ) + { + perror("Device Close Failed"); + return -1; + } + printf("%s Device close successfull\n",argv[1]); + + return 0; +} diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.Module.symvers.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.Module.symvers.cmd new file mode 100644 index 0000000..b650dea --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.Module.symvers.cmd @@ -0,0 +1 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/Module.symvers := sed 's/\.ko$$/\.o/' /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/modules.order | scripts/mod/modpost -m -a -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/Module.symvers -e -i Module.symvers -T - diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.cdev_bypass.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_bypass.o.cmd new file mode 100644 index 0000000..f923080 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_bypass.o.cmd @@ -0,0 +1,1427 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.cdev_bypass.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"cdev_bypass"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include/libxdma_api.h \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + $(wildcard include/config/CFI_CLANG) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + include/linux/stdarg.h \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/jump_label.h \ + $(wildcard include/config/JUMP_LABEL) \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + include/linux/stringify.h \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/nops.h \ + include/linux/fortify-string.h \ + include/linux/bug.h \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/MODULES) \ + include/linux/once_lite.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/dynamic_debug.h \ + include/linux/mm.h \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/SYSCTL) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/X86) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/KASAN_HW_TAGS) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/HIGHMEM) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/gfp.h \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/spinlock.h \ + $(wildcard include/config/PREEMPTION) \ + include/linux/typecheck.h \ + include/linux/preempt.h \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/align.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/bitops.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + arch/x86/include/asm/preempt.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + include/linux/thread_info.h \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/VM86) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/FRAME_POINTER) \ + $(wildcard include/config/COMPAT) \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + include/uapi/video/edid.h \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + $(wildcard include/config/PARAVIRT) \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PGTABLE_LEVELS) \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/TRACEPOINTS) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/special_insns.h \ + include/linux/irqflags.h \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/linux/seqlock.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + include/linux/rbtree_types.h \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags-layout.h \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rbtree.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/UPROBES) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + $(wildcard include/config/TREE_SRCU) \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/tsc.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/ioport.h \ + include/linux/overflow.h \ + include/linux/sizes.h \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/refcount.h \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/rhashtable-types.h \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/sysctl.h \ + include/uapi/linux/sysctl.h \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/ratelimit.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + arch/x86/include/asm/pgtable_areas.h \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + $(wildcard include/config/HYPERV) \ + include/linux/kref.h \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h \ + include/linux/module.h \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/kobject_ns.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/cdev.h \ + include/linux/device.h \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/dma-direction.h \ + include/linux/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ + include/linux/fb.h \ + $(wildcard include/config/GUMSTIX_AM200EPD) \ + $(wildcard include/config/FB_NOTIFY) \ + $(wildcard include/config/FB_DEFERRED_IO) \ + $(wildcard include/config/FB_TILEBLITTING) \ + $(wildcard include/config/FB_BACKLIGHT) \ + $(wildcard include/config/FB_FOREIGN_ENDIAN) \ + $(wildcard include/config/FB_BOTH_ENDIAN) \ + $(wildcard include/config/FB_BIG_ENDIAN) \ + $(wildcard include/config/FB_LITTLE_ENDIAN) \ + include/linux/kgdb.h \ + $(wildcard include/config/HAVE_ARCH_KGDB) \ + $(wildcard include/config/KGDB) \ + $(wildcard include/config/SERIAL_KGDB_NMI) \ + $(wildcard include/config/KGDB_HONOUR_BLOCKLIST) \ + include/linux/kprobes.h \ + $(wildcard include/config/KPROBES_SANITY_TEST) \ + $(wildcard include/config/OPTPROBES) \ + $(wildcard include/config/KPROBES_ON_FTRACE) \ + include/linux/ftrace.h \ + $(wildcard include/config/FUNCTION_TRACER) \ + $(wildcard include/config/DYNAMIC_FTRACE) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_ARGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_REGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/STACK_TRACER) \ + $(wildcard include/config/FUNCTION_PROFILER) \ + $(wildcard include/config/FTRACE_SYSCALLS) \ + include/linux/trace_recursion.h \ + $(wildcard include/config/FTRACE_RECORD_RECURSION) \ + include/linux/trace_clock.h \ + arch/x86/include/asm/trace_clock.h \ + include/linux/kallsyms.h \ + $(wildcard include/config/KALLSYMS_ALL) \ + include/linux/ptrace.h \ + include/linux/pid_namespace.h \ + $(wildcard include/config/PID_NS) \ + include/linux/nsproxy.h \ + include/linux/ns_common.h \ + include/uapi/linux/ptrace.h \ + arch/x86/include/asm/ftrace.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/linux/uio.h \ + include/uapi/linux/uio.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + include/uapi/linux/aio_abi.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.h \ + include/linux/freelist.h \ + arch/x86/include/asm/kprobes.h \ + include/asm-generic/kprobes.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + arch/x86/include/asm/insn.h \ + arch/x86/include/asm/inat.h \ + arch/x86/include/asm/inat_types.h \ + arch/x86/include/asm/kgdb.h \ + include/uapi/linux/fb.h \ + include/linux/i2c.h \ + $(wildcard include/config/I2C) \ + $(wildcard include/config/I2C_SLAVE) \ + $(wildcard include/config/I2C_BOARDINFO) \ + $(wildcard include/config/I2C_MUX) \ + include/linux/acpi.h \ + $(wildcard include/config/ACPI_DEBUGGER) \ + $(wildcard include/config/LOONGARCH) \ + $(wildcard include/config/ACPI_PROCESSOR_CSTATE) \ + $(wildcard include/config/ACPI_HOTPLUG_CPU) \ + $(wildcard include/config/ACPI_HOTPLUG_IOAPIC) \ + $(wildcard include/config/ACPI_WMI) \ + $(wildcard include/config/ACPI_NUMA) \ + $(wildcard include/config/HIBERNATION) \ + $(wildcard include/config/ACPI_HOTPLUG_MEMORY) \ + $(wildcard include/config/ACPI_CONTAINER) \ + $(wildcard include/config/ACPI_GTDT) \ + $(wildcard include/config/GPIOLIB) \ + $(wildcard include/config/ACPI_TABLE_UPGRADE) \ + $(wildcard include/config/ACPI_WATCHDOG) \ + $(wildcard include/config/ACPI_SPCR_TABLE) \ + $(wildcard include/config/ACPI_GENERIC_GSI) \ + $(wildcard include/config/ACPI_LPIT) \ + $(wildcard include/config/ACPI_PPTT) \ + include/linux/irqdomain.h \ + $(wildcard include/config/IRQ_DOMAIN_HIERARCHY) \ + $(wildcard include/config/GENERIC_IRQ_DEBUGFS) \ + $(wildcard include/config/IRQ_DOMAIN) \ + $(wildcard include/config/IRQ_DOMAIN_NOMAP) \ + include/linux/irqhandler.h \ + include/linux/of.h \ + $(wildcard include/config/OF_DYNAMIC) \ + $(wildcard include/config/SPARC) \ + $(wildcard include/config/OF_PROMTREE) \ + $(wildcard include/config/OF_KOBJ) \ + $(wildcard include/config/OF_NUMA) \ + $(wildcard include/config/OF_OVERLAY) \ + include/linux/mod_devicetable.h \ + include/linux/property.h \ + include/linux/resource_ext.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/acpi/acpi.h \ + include/acpi/platform/acenv.h \ + include/acpi/platform/acgcc.h \ + include/acpi/platform/aclinux.h \ + $(wildcard include/config/ACPI_REDUCED_HARDWARE_ONLY) \ + $(wildcard include/config/ACPI_DEBUG) \ + include/linux/ctype.h \ + arch/x86/include/asm/acenv.h \ + include/acpi/acnames.h \ + include/acpi/actypes.h \ + include/acpi/acexcep.h \ + include/acpi/actbl.h \ + include/acpi/actbl1.h \ + include/acpi/actbl2.h \ + include/acpi/actbl3.h \ + include/acpi/acrestyp.h \ + include/acpi/platform/acenvex.h \ + include/acpi/platform/aclinuxex.h \ + include/acpi/platform/acgccex.h \ + include/acpi/acoutput.h \ + include/acpi/acpiosxf.h \ + include/acpi/acpixf.h \ + include/acpi/acconfig.h \ + include/acpi/acbuffer.h \ + include/acpi/acpi_bus.h \ + $(wildcard include/config/ACPI_SYSTEM_POWER_STATES_SUPPORT) \ + $(wildcard include/config/ACPI_SLEEP) \ + include/acpi/acpi_drivers.h \ + $(wildcard include/config/ACPI_DOCK) \ + include/acpi/acpi_numa.h \ + $(wildcard include/config/ACPI_HMAT) \ + include/acpi/acpi_io.h \ + include/linux/io.h \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/ACPI_APEI) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/NUMA_EMU) \ + include/linux/regulator/consumer.h \ + $(wildcard include/config/REGULATOR) \ + include/linux/suspend.h \ + $(wildcard include/config/VT) \ + $(wildcard include/config/SUSPEND) \ + $(wildcard include/config/HIBERNATION_SNAPSHOT_DEV) \ + $(wildcard include/config/PM_SLEEP_DEBUG) \ + $(wildcard include/config/PM_AUTOSLEEP) \ + include/linux/swap.h \ + $(wildcard include/config/FRONTSWAP) \ + $(wildcard include/config/MEMCG_SWAP) \ + include/linux/memcontrol.h \ + include/linux/cgroup.h \ + $(wildcard include/config/CGROUP_CPUACCT) \ + $(wildcard include/config/SOCK_CGROUP_DATA) \ + $(wildcard include/config/CGROUP_DATA) \ + $(wildcard include/config/CGROUP_BPF) \ + include/uapi/linux/cgroupstats.h \ + include/uapi/linux/taskstats.h \ + include/linux/seq_file.h \ + include/linux/user_namespace.h \ + $(wildcard include/config/INOTIFY_USER) \ + $(wildcard include/config/FANOTIFY) \ + $(wildcard include/config/PERSISTENT_KEYRINGS) \ + include/linux/kernel_stat.h \ + include/linux/cgroup-defs.h \ + $(wildcard include/config/CGROUP_NET_CLASSID) \ + $(wildcard include/config/CGROUP_NET_PRIO) \ + include/linux/u64_stats_sync.h \ + arch/x86/include/generated/asm/local64.h \ + include/asm-generic/local64.h \ + arch/x86/include/asm/local.h \ + include/linux/bpf-cgroup.h \ + include/linux/bpf.h \ + $(wildcard include/config/BPF_JIT_ALWAYS_ON) \ + $(wildcard include/config/INET) \ + include/uapi/linux/bpf.h \ + $(wildcard include/config/BPF_LIRC_MODE2) \ + $(wildcard include/config/EFFICIENT_UNALIGNED_ACCESS) \ + $(wildcard include/config/IP_ROUTE_CLASSID) \ + $(wildcard include/config/BPF_KPROBE_OVERRIDE) \ + $(wildcard include/config/XFRM) \ + include/uapi/linux/bpf_common.h \ + include/linux/file.h \ + include/linux/sched/mm.h \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/bpfptr.h \ + include/linux/sockptr.h \ + include/linux/bpf_types.h \ + $(wildcard include/config/BPF_LSM) \ + $(wildcard include/config/XDP_SOCKETS) \ + include/linux/psi_types.h \ + include/linux/kthread.h \ + include/linux/cgroup_subsys.h \ + $(wildcard include/config/CGROUP_DEVICE) \ + $(wildcard include/config/CGROUP_FREEZER) \ + $(wildcard include/config/CGROUP_PERF) \ + $(wildcard include/config/CGROUP_HUGETLB) \ + $(wildcard include/config/CGROUP_PIDS) \ + $(wildcard include/config/CGROUP_RDMA) \ + $(wildcard include/config/CGROUP_MISC) \ + $(wildcard include/config/CGROUP_DEBUG) \ + include/linux/page_counter.h \ + include/linux/vmpressure.h \ + include/linux/eventfd.h \ + include/linux/writeback.h \ + include/linux/flex_proportions.h \ + include/linux/backing-dev-defs.h \ + $(wildcard include/config/DEBUG_FS) \ + include/linux/blk_types.h \ + $(wildcard include/config/FAIL_MAKE_REQUEST) \ + $(wildcard include/config/BLK_CGROUP_IOCOST) \ + $(wildcard include/config/BLK_INLINE_ENCRYPTION) \ + $(wildcard include/config/BLK_DEV_INTEGRITY) \ + include/linux/bvec.h \ + include/linux/highmem.h \ + arch/x86/include/asm/cacheflush.h \ + include/asm-generic/cacheflush.h \ + include/linux/highmem-internal.h \ + include/linux/blk-cgroup.h \ + $(wildcard include/config/BLK_CGROUP_FC_APPID) \ + include/linux/blkdev.h \ + $(wildcard include/config/BLK_RQ_ALLOC_TIME) \ + $(wildcard include/config/BLK_WBT) \ + $(wildcard include/config/BLK_DEV_ZONED) \ + $(wildcard include/config/BLK_DEV_THROTTLING) \ + $(wildcard include/config/BLK_DEBUG_FS) \ + include/linux/sched/clock.h \ + $(wildcard include/config/HAVE_UNSTABLE_SCHED_CLOCK) \ + include/uapi/linux/major.h \ + include/linux/genhd.h \ + $(wildcard include/config/BLOCK_HOLDER_DEPRECATED) \ + $(wildcard include/config/CDROM) \ + include/linux/mempool.h \ + include/linux/bio.h \ + include/uapi/linux/blkzoned.h \ + include/linux/sbitmap.h \ + include/linux/elevator.h \ + include/linux/hashtable.h \ + include/linux/blk-mq.h \ + $(wildcard include/config/FAIL_IO_TIMEOUT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/pagemap.h \ + include/linux/hugetlb_inline.h \ + include/uapi/linux/mempolicy.h \ + include/linux/freezer.h \ + include/uapi/linux/i2c.h \ + include/linux/backlight.h \ + $(wildcard include/config/BACKLIGHT_CLASS_DEVICE) \ + include/linux/poll.h \ + include/uapi/linux/poll.h \ + arch/x86/include/generated/uapi/asm/poll.h \ + include/uapi/asm-generic/poll.h \ + include/uapi/linux/eventpoll.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEAER) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + include/linux/aio.h \ + include/linux/splice.h \ + include/linux/pipe_fs_i.h \ + include/generated/uapi/linux/version.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + $(wildcard include/config/BLOCK_ID) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/linux/cpuset.h \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.cdev_ctrl.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_ctrl.o.cmd new file mode 100644 index 0000000..80a561e --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_ctrl.o.cmd @@ -0,0 +1,1428 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.cdev_ctrl.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"cdev_ctrl"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/version.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/stdarg.h \ + include/linux/align.h \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + $(wildcard include/config/CFI_CLANG) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/linux/typecheck.h \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/once_lite.h \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/JUMP_LABEL) \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/COMPAT) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/UPROBES) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/PREEMPTION) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/rcupdate.h \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + include/linux/irqflags.h \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/asm/processor-flags.h \ + $(wildcard include/config/VM86) \ + arch/x86/include/uapi/asm/processor-flags.h \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/X86) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/segment.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT) \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/PGTABLE_LEVELS) \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + include/linux/bug.h \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/fortify-string.h \ + arch/x86/include/asm/frame.h \ + $(wildcard include/config/FRAME_POINTER) \ + include/linux/preempt.h \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + arch/x86/include/asm/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/TRACEPOINTS) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/special_insns.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + include/linux/rcutree.h \ + include/linux/wait.h \ + include/linux/spinlock.h \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/uapi/linux/wait.h \ + include/linux/refcount.h \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/rhashtable-types.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/tsc.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/seqlock.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/nodemask.h \ + $(wildcard include/config/HIGHMEM) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/mm_types_task.h \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h \ + include/linux/module.h \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/TREE_SRCU) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/generated/bounds.h \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/sysctl.h \ + $(wildcard include/config/SYSCTL) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/cdev.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/device.h \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/ratelimit.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/ioport.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/overflow.h \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/sizes.h \ + include/linux/dma-direction.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + include/linux/mm.h \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + arch/x86/include/asm/pgtable_areas.h \ + include/linux/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ + include/linux/fb.h \ + $(wildcard include/config/GUMSTIX_AM200EPD) \ + $(wildcard include/config/FB_NOTIFY) \ + $(wildcard include/config/FB_DEFERRED_IO) \ + $(wildcard include/config/FB_TILEBLITTING) \ + $(wildcard include/config/FB_BACKLIGHT) \ + $(wildcard include/config/FB_FOREIGN_ENDIAN) \ + $(wildcard include/config/FB_BOTH_ENDIAN) \ + $(wildcard include/config/FB_BIG_ENDIAN) \ + $(wildcard include/config/FB_LITTLE_ENDIAN) \ + include/linux/kgdb.h \ + $(wildcard include/config/HAVE_ARCH_KGDB) \ + $(wildcard include/config/KGDB) \ + $(wildcard include/config/SERIAL_KGDB_NMI) \ + $(wildcard include/config/KGDB_HONOUR_BLOCKLIST) \ + include/linux/kprobes.h \ + $(wildcard include/config/KPROBES_SANITY_TEST) \ + $(wildcard include/config/OPTPROBES) \ + $(wildcard include/config/KPROBES_ON_FTRACE) \ + include/linux/ftrace.h \ + $(wildcard include/config/FUNCTION_TRACER) \ + $(wildcard include/config/DYNAMIC_FTRACE) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_ARGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_REGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/STACK_TRACER) \ + $(wildcard include/config/FUNCTION_PROFILER) \ + $(wildcard include/config/FTRACE_SYSCALLS) \ + include/linux/trace_recursion.h \ + $(wildcard include/config/FTRACE_RECORD_RECURSION) \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + $(wildcard include/config/HYPERV) \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + include/linux/trace_clock.h \ + arch/x86/include/asm/trace_clock.h \ + include/linux/kallsyms.h \ + $(wildcard include/config/KALLSYMS_ALL) \ + include/linux/ptrace.h \ + include/linux/pid_namespace.h \ + $(wildcard include/config/PID_NS) \ + include/linux/nsproxy.h \ + include/linux/ns_common.h \ + include/uapi/linux/ptrace.h \ + arch/x86/include/asm/ftrace.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/linux/uio.h \ + include/uapi/linux/uio.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + include/uapi/linux/aio_abi.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.h \ + include/linux/freelist.h \ + arch/x86/include/asm/kprobes.h \ + include/asm-generic/kprobes.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + arch/x86/include/asm/insn.h \ + arch/x86/include/asm/inat.h \ + arch/x86/include/asm/inat_types.h \ + arch/x86/include/asm/kgdb.h \ + include/uapi/linux/fb.h \ + include/linux/i2c.h \ + $(wildcard include/config/I2C) \ + $(wildcard include/config/I2C_SLAVE) \ + $(wildcard include/config/I2C_BOARDINFO) \ + $(wildcard include/config/I2C_MUX) \ + include/linux/acpi.h \ + $(wildcard include/config/ACPI_DEBUGGER) \ + $(wildcard include/config/LOONGARCH) \ + $(wildcard include/config/ACPI_PROCESSOR_CSTATE) \ + $(wildcard include/config/ACPI_HOTPLUG_CPU) \ + $(wildcard include/config/ACPI_HOTPLUG_IOAPIC) \ + $(wildcard include/config/ACPI_WMI) \ + $(wildcard include/config/ACPI_NUMA) \ + $(wildcard include/config/HIBERNATION) \ + $(wildcard include/config/ACPI_HOTPLUG_MEMORY) \ + $(wildcard include/config/ACPI_CONTAINER) \ + $(wildcard include/config/ACPI_GTDT) \ + $(wildcard include/config/GPIOLIB) \ + $(wildcard include/config/ACPI_TABLE_UPGRADE) \ + $(wildcard include/config/ACPI_WATCHDOG) \ + $(wildcard include/config/ACPI_SPCR_TABLE) \ + $(wildcard include/config/ACPI_GENERIC_GSI) \ + $(wildcard include/config/ACPI_LPIT) \ + $(wildcard include/config/ACPI_PPTT) \ + include/linux/irqdomain.h \ + $(wildcard include/config/IRQ_DOMAIN_HIERARCHY) \ + $(wildcard include/config/GENERIC_IRQ_DEBUGFS) \ + $(wildcard include/config/IRQ_DOMAIN) \ + $(wildcard include/config/IRQ_DOMAIN_NOMAP) \ + include/linux/irqhandler.h \ + include/linux/of.h \ + $(wildcard include/config/OF_DYNAMIC) \ + $(wildcard include/config/SPARC) \ + $(wildcard include/config/OF_PROMTREE) \ + $(wildcard include/config/OF_KOBJ) \ + $(wildcard include/config/OF_NUMA) \ + $(wildcard include/config/OF_OVERLAY) \ + include/linux/mod_devicetable.h \ + include/linux/property.h \ + include/linux/resource_ext.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/acpi/acpi.h \ + include/acpi/platform/acenv.h \ + include/acpi/platform/acgcc.h \ + include/acpi/platform/aclinux.h \ + $(wildcard include/config/ACPI_REDUCED_HARDWARE_ONLY) \ + $(wildcard include/config/ACPI_DEBUG) \ + include/linux/ctype.h \ + arch/x86/include/asm/acenv.h \ + include/acpi/acnames.h \ + include/acpi/actypes.h \ + include/acpi/acexcep.h \ + include/acpi/actbl.h \ + include/acpi/actbl1.h \ + include/acpi/actbl2.h \ + include/acpi/actbl3.h \ + include/acpi/acrestyp.h \ + include/acpi/platform/acenvex.h \ + include/acpi/platform/aclinuxex.h \ + include/acpi/platform/acgccex.h \ + include/acpi/acoutput.h \ + include/acpi/acpiosxf.h \ + include/acpi/acpixf.h \ + include/acpi/acconfig.h \ + include/acpi/acbuffer.h \ + include/acpi/acpi_bus.h \ + $(wildcard include/config/ACPI_SYSTEM_POWER_STATES_SUPPORT) \ + $(wildcard include/config/ACPI_SLEEP) \ + include/acpi/acpi_drivers.h \ + $(wildcard include/config/ACPI_DOCK) \ + include/acpi/acpi_numa.h \ + $(wildcard include/config/ACPI_HMAT) \ + include/acpi/acpi_io.h \ + include/linux/io.h \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/ACPI_APEI) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/NUMA_EMU) \ + include/linux/regulator/consumer.h \ + $(wildcard include/config/REGULATOR) \ + include/linux/suspend.h \ + $(wildcard include/config/VT) \ + $(wildcard include/config/SUSPEND) \ + $(wildcard include/config/HIBERNATION_SNAPSHOT_DEV) \ + $(wildcard include/config/PM_SLEEP_DEBUG) \ + $(wildcard include/config/PM_AUTOSLEEP) \ + include/linux/swap.h \ + $(wildcard include/config/FRONTSWAP) \ + $(wildcard include/config/MEMCG_SWAP) \ + include/linux/memcontrol.h \ + include/linux/cgroup.h \ + $(wildcard include/config/CGROUP_CPUACCT) \ + $(wildcard include/config/SOCK_CGROUP_DATA) \ + $(wildcard include/config/CGROUP_DATA) \ + $(wildcard include/config/CGROUP_BPF) \ + include/uapi/linux/cgroupstats.h \ + include/uapi/linux/taskstats.h \ + include/linux/seq_file.h \ + include/linux/user_namespace.h \ + $(wildcard include/config/INOTIFY_USER) \ + $(wildcard include/config/FANOTIFY) \ + $(wildcard include/config/PERSISTENT_KEYRINGS) \ + include/linux/kernel_stat.h \ + include/linux/cgroup-defs.h \ + $(wildcard include/config/CGROUP_NET_CLASSID) \ + $(wildcard include/config/CGROUP_NET_PRIO) \ + include/linux/u64_stats_sync.h \ + arch/x86/include/generated/asm/local64.h \ + include/asm-generic/local64.h \ + arch/x86/include/asm/local.h \ + include/linux/bpf-cgroup.h \ + include/linux/bpf.h \ + $(wildcard include/config/BPF_JIT_ALWAYS_ON) \ + $(wildcard include/config/INET) \ + include/uapi/linux/bpf.h \ + $(wildcard include/config/BPF_LIRC_MODE2) \ + $(wildcard include/config/EFFICIENT_UNALIGNED_ACCESS) \ + $(wildcard include/config/IP_ROUTE_CLASSID) \ + $(wildcard include/config/BPF_KPROBE_OVERRIDE) \ + $(wildcard include/config/XFRM) \ + include/uapi/linux/bpf_common.h \ + include/linux/file.h \ + include/linux/sched/mm.h \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/bpfptr.h \ + include/linux/sockptr.h \ + include/linux/bpf_types.h \ + $(wildcard include/config/BPF_LSM) \ + $(wildcard include/config/XDP_SOCKETS) \ + include/linux/psi_types.h \ + include/linux/kthread.h \ + include/linux/cgroup_subsys.h \ + $(wildcard include/config/CGROUP_DEVICE) \ + $(wildcard include/config/CGROUP_FREEZER) \ + $(wildcard include/config/CGROUP_PERF) \ + $(wildcard include/config/CGROUP_HUGETLB) \ + $(wildcard include/config/CGROUP_PIDS) \ + $(wildcard include/config/CGROUP_RDMA) \ + $(wildcard include/config/CGROUP_MISC) \ + $(wildcard include/config/CGROUP_DEBUG) \ + include/linux/page_counter.h \ + include/linux/vmpressure.h \ + include/linux/eventfd.h \ + include/linux/writeback.h \ + include/linux/flex_proportions.h \ + include/linux/backing-dev-defs.h \ + $(wildcard include/config/DEBUG_FS) \ + include/linux/blk_types.h \ + $(wildcard include/config/FAIL_MAKE_REQUEST) \ + $(wildcard include/config/BLK_CGROUP_IOCOST) \ + $(wildcard include/config/BLK_INLINE_ENCRYPTION) \ + $(wildcard include/config/BLK_DEV_INTEGRITY) \ + include/linux/bvec.h \ + include/linux/highmem.h \ + arch/x86/include/asm/cacheflush.h \ + include/asm-generic/cacheflush.h \ + include/linux/highmem-internal.h \ + include/linux/blk-cgroup.h \ + $(wildcard include/config/BLK_CGROUP_FC_APPID) \ + include/linux/blkdev.h \ + $(wildcard include/config/BLK_RQ_ALLOC_TIME) \ + $(wildcard include/config/BLK_WBT) \ + $(wildcard include/config/BLK_DEV_ZONED) \ + $(wildcard include/config/BLK_DEV_THROTTLING) \ + $(wildcard include/config/BLK_DEBUG_FS) \ + include/linux/sched/clock.h \ + $(wildcard include/config/HAVE_UNSTABLE_SCHED_CLOCK) \ + include/uapi/linux/major.h \ + include/linux/genhd.h \ + $(wildcard include/config/BLOCK_HOLDER_DEPRECATED) \ + $(wildcard include/config/CDROM) \ + include/linux/mempool.h \ + include/linux/bio.h \ + include/uapi/linux/blkzoned.h \ + include/linux/sbitmap.h \ + include/linux/elevator.h \ + include/linux/hashtable.h \ + include/linux/blk-mq.h \ + $(wildcard include/config/FAIL_IO_TIMEOUT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/pagemap.h \ + include/linux/hugetlb_inline.h \ + include/uapi/linux/mempolicy.h \ + include/linux/freezer.h \ + include/uapi/linux/i2c.h \ + include/linux/backlight.h \ + $(wildcard include/config/BACKLIGHT_CLASS_DEVICE) \ + include/linux/poll.h \ + include/uapi/linux/poll.h \ + arch/x86/include/generated/uapi/asm/poll.h \ + include/uapi/asm-generic/poll.h \ + include/uapi/linux/eventpoll.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEAER) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + include/linux/aio.h \ + include/linux/splice.h \ + include/linux/pipe_fs_i.h \ + include/generated/uapi/linux/version.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + $(wildcard include/config/BLOCK_ID) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/linux/cpuset.h \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.cdev_events.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_events.o.cmd new file mode 100644 index 0000000..5199e4c --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_events.o.cmd @@ -0,0 +1,1426 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.cdev_events.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"cdev_events"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/stdarg.h \ + include/linux/align.h \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + $(wildcard include/config/CFI_CLANG) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/linux/typecheck.h \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/once_lite.h \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/JUMP_LABEL) \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/COMPAT) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/UPROBES) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/PREEMPTION) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/rcupdate.h \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + include/linux/irqflags.h \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/asm/processor-flags.h \ + $(wildcard include/config/VM86) \ + arch/x86/include/uapi/asm/processor-flags.h \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/X86) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/segment.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT) \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/PGTABLE_LEVELS) \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + include/linux/bug.h \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/fortify-string.h \ + arch/x86/include/asm/frame.h \ + $(wildcard include/config/FRAME_POINTER) \ + include/linux/preempt.h \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + arch/x86/include/asm/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/TRACEPOINTS) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/special_insns.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + include/linux/rcutree.h \ + include/linux/wait.h \ + include/linux/spinlock.h \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/uapi/linux/wait.h \ + include/linux/refcount.h \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/rhashtable-types.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/tsc.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/seqlock.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/nodemask.h \ + $(wildcard include/config/HIGHMEM) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/mm_types_task.h \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h \ + include/linux/module.h \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/TREE_SRCU) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/generated/bounds.h \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/sysctl.h \ + $(wildcard include/config/SYSCTL) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/cdev.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/device.h \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/ratelimit.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/ioport.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/overflow.h \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/sizes.h \ + include/linux/dma-direction.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + include/linux/mm.h \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + arch/x86/include/asm/pgtable_areas.h \ + include/linux/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ + include/linux/fb.h \ + $(wildcard include/config/GUMSTIX_AM200EPD) \ + $(wildcard include/config/FB_NOTIFY) \ + $(wildcard include/config/FB_DEFERRED_IO) \ + $(wildcard include/config/FB_TILEBLITTING) \ + $(wildcard include/config/FB_BACKLIGHT) \ + $(wildcard include/config/FB_FOREIGN_ENDIAN) \ + $(wildcard include/config/FB_BOTH_ENDIAN) \ + $(wildcard include/config/FB_BIG_ENDIAN) \ + $(wildcard include/config/FB_LITTLE_ENDIAN) \ + include/linux/kgdb.h \ + $(wildcard include/config/HAVE_ARCH_KGDB) \ + $(wildcard include/config/KGDB) \ + $(wildcard include/config/SERIAL_KGDB_NMI) \ + $(wildcard include/config/KGDB_HONOUR_BLOCKLIST) \ + include/linux/kprobes.h \ + $(wildcard include/config/KPROBES_SANITY_TEST) \ + $(wildcard include/config/OPTPROBES) \ + $(wildcard include/config/KPROBES_ON_FTRACE) \ + include/linux/ftrace.h \ + $(wildcard include/config/FUNCTION_TRACER) \ + $(wildcard include/config/DYNAMIC_FTRACE) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_ARGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_REGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/STACK_TRACER) \ + $(wildcard include/config/FUNCTION_PROFILER) \ + $(wildcard include/config/FTRACE_SYSCALLS) \ + include/linux/trace_recursion.h \ + $(wildcard include/config/FTRACE_RECORD_RECURSION) \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + $(wildcard include/config/HYPERV) \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + include/linux/trace_clock.h \ + arch/x86/include/asm/trace_clock.h \ + include/linux/kallsyms.h \ + $(wildcard include/config/KALLSYMS_ALL) \ + include/linux/ptrace.h \ + include/linux/pid_namespace.h \ + $(wildcard include/config/PID_NS) \ + include/linux/nsproxy.h \ + include/linux/ns_common.h \ + include/uapi/linux/ptrace.h \ + arch/x86/include/asm/ftrace.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/linux/uio.h \ + include/uapi/linux/uio.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + include/uapi/linux/aio_abi.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.h \ + include/linux/freelist.h \ + arch/x86/include/asm/kprobes.h \ + include/asm-generic/kprobes.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + arch/x86/include/asm/insn.h \ + arch/x86/include/asm/inat.h \ + arch/x86/include/asm/inat_types.h \ + arch/x86/include/asm/kgdb.h \ + include/uapi/linux/fb.h \ + include/linux/i2c.h \ + $(wildcard include/config/I2C) \ + $(wildcard include/config/I2C_SLAVE) \ + $(wildcard include/config/I2C_BOARDINFO) \ + $(wildcard include/config/I2C_MUX) \ + include/linux/acpi.h \ + $(wildcard include/config/ACPI_DEBUGGER) \ + $(wildcard include/config/LOONGARCH) \ + $(wildcard include/config/ACPI_PROCESSOR_CSTATE) \ + $(wildcard include/config/ACPI_HOTPLUG_CPU) \ + $(wildcard include/config/ACPI_HOTPLUG_IOAPIC) \ + $(wildcard include/config/ACPI_WMI) \ + $(wildcard include/config/ACPI_NUMA) \ + $(wildcard include/config/HIBERNATION) \ + $(wildcard include/config/ACPI_HOTPLUG_MEMORY) \ + $(wildcard include/config/ACPI_CONTAINER) \ + $(wildcard include/config/ACPI_GTDT) \ + $(wildcard include/config/GPIOLIB) \ + $(wildcard include/config/ACPI_TABLE_UPGRADE) \ + $(wildcard include/config/ACPI_WATCHDOG) \ + $(wildcard include/config/ACPI_SPCR_TABLE) \ + $(wildcard include/config/ACPI_GENERIC_GSI) \ + $(wildcard include/config/ACPI_LPIT) \ + $(wildcard include/config/ACPI_PPTT) \ + include/linux/irqdomain.h \ + $(wildcard include/config/IRQ_DOMAIN_HIERARCHY) \ + $(wildcard include/config/GENERIC_IRQ_DEBUGFS) \ + $(wildcard include/config/IRQ_DOMAIN) \ + $(wildcard include/config/IRQ_DOMAIN_NOMAP) \ + include/linux/irqhandler.h \ + include/linux/of.h \ + $(wildcard include/config/OF_DYNAMIC) \ + $(wildcard include/config/SPARC) \ + $(wildcard include/config/OF_PROMTREE) \ + $(wildcard include/config/OF_KOBJ) \ + $(wildcard include/config/OF_NUMA) \ + $(wildcard include/config/OF_OVERLAY) \ + include/linux/mod_devicetable.h \ + include/linux/property.h \ + include/linux/resource_ext.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/acpi/acpi.h \ + include/acpi/platform/acenv.h \ + include/acpi/platform/acgcc.h \ + include/acpi/platform/aclinux.h \ + $(wildcard include/config/ACPI_REDUCED_HARDWARE_ONLY) \ + $(wildcard include/config/ACPI_DEBUG) \ + include/linux/ctype.h \ + arch/x86/include/asm/acenv.h \ + include/acpi/acnames.h \ + include/acpi/actypes.h \ + include/acpi/acexcep.h \ + include/acpi/actbl.h \ + include/acpi/actbl1.h \ + include/acpi/actbl2.h \ + include/acpi/actbl3.h \ + include/acpi/acrestyp.h \ + include/acpi/platform/acenvex.h \ + include/acpi/platform/aclinuxex.h \ + include/acpi/platform/acgccex.h \ + include/acpi/acoutput.h \ + include/acpi/acpiosxf.h \ + include/acpi/acpixf.h \ + include/acpi/acconfig.h \ + include/acpi/acbuffer.h \ + include/acpi/acpi_bus.h \ + $(wildcard include/config/ACPI_SYSTEM_POWER_STATES_SUPPORT) \ + $(wildcard include/config/ACPI_SLEEP) \ + include/acpi/acpi_drivers.h \ + $(wildcard include/config/ACPI_DOCK) \ + include/acpi/acpi_numa.h \ + $(wildcard include/config/ACPI_HMAT) \ + include/acpi/acpi_io.h \ + include/linux/io.h \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/ACPI_APEI) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/NUMA_EMU) \ + include/linux/regulator/consumer.h \ + $(wildcard include/config/REGULATOR) \ + include/linux/suspend.h \ + $(wildcard include/config/VT) \ + $(wildcard include/config/SUSPEND) \ + $(wildcard include/config/HIBERNATION_SNAPSHOT_DEV) \ + $(wildcard include/config/PM_SLEEP_DEBUG) \ + $(wildcard include/config/PM_AUTOSLEEP) \ + include/linux/swap.h \ + $(wildcard include/config/FRONTSWAP) \ + $(wildcard include/config/MEMCG_SWAP) \ + include/linux/memcontrol.h \ + include/linux/cgroup.h \ + $(wildcard include/config/CGROUP_CPUACCT) \ + $(wildcard include/config/SOCK_CGROUP_DATA) \ + $(wildcard include/config/CGROUP_DATA) \ + $(wildcard include/config/CGROUP_BPF) \ + include/uapi/linux/cgroupstats.h \ + include/uapi/linux/taskstats.h \ + include/linux/seq_file.h \ + include/linux/user_namespace.h \ + $(wildcard include/config/INOTIFY_USER) \ + $(wildcard include/config/FANOTIFY) \ + $(wildcard include/config/PERSISTENT_KEYRINGS) \ + include/linux/kernel_stat.h \ + include/linux/cgroup-defs.h \ + $(wildcard include/config/CGROUP_NET_CLASSID) \ + $(wildcard include/config/CGROUP_NET_PRIO) \ + include/linux/u64_stats_sync.h \ + arch/x86/include/generated/asm/local64.h \ + include/asm-generic/local64.h \ + arch/x86/include/asm/local.h \ + include/linux/bpf-cgroup.h \ + include/linux/bpf.h \ + $(wildcard include/config/BPF_JIT_ALWAYS_ON) \ + $(wildcard include/config/INET) \ + include/uapi/linux/bpf.h \ + $(wildcard include/config/BPF_LIRC_MODE2) \ + $(wildcard include/config/EFFICIENT_UNALIGNED_ACCESS) \ + $(wildcard include/config/IP_ROUTE_CLASSID) \ + $(wildcard include/config/BPF_KPROBE_OVERRIDE) \ + $(wildcard include/config/XFRM) \ + include/uapi/linux/bpf_common.h \ + include/linux/file.h \ + include/linux/sched/mm.h \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/bpfptr.h \ + include/linux/sockptr.h \ + include/linux/bpf_types.h \ + $(wildcard include/config/BPF_LSM) \ + $(wildcard include/config/XDP_SOCKETS) \ + include/linux/psi_types.h \ + include/linux/kthread.h \ + include/linux/cgroup_subsys.h \ + $(wildcard include/config/CGROUP_DEVICE) \ + $(wildcard include/config/CGROUP_FREEZER) \ + $(wildcard include/config/CGROUP_PERF) \ + $(wildcard include/config/CGROUP_HUGETLB) \ + $(wildcard include/config/CGROUP_PIDS) \ + $(wildcard include/config/CGROUP_RDMA) \ + $(wildcard include/config/CGROUP_MISC) \ + $(wildcard include/config/CGROUP_DEBUG) \ + include/linux/page_counter.h \ + include/linux/vmpressure.h \ + include/linux/eventfd.h \ + include/linux/writeback.h \ + include/linux/flex_proportions.h \ + include/linux/backing-dev-defs.h \ + $(wildcard include/config/DEBUG_FS) \ + include/linux/blk_types.h \ + $(wildcard include/config/FAIL_MAKE_REQUEST) \ + $(wildcard include/config/BLK_CGROUP_IOCOST) \ + $(wildcard include/config/BLK_INLINE_ENCRYPTION) \ + $(wildcard include/config/BLK_DEV_INTEGRITY) \ + include/linux/bvec.h \ + include/linux/highmem.h \ + arch/x86/include/asm/cacheflush.h \ + include/asm-generic/cacheflush.h \ + include/linux/highmem-internal.h \ + include/linux/blk-cgroup.h \ + $(wildcard include/config/BLK_CGROUP_FC_APPID) \ + include/linux/blkdev.h \ + $(wildcard include/config/BLK_RQ_ALLOC_TIME) \ + $(wildcard include/config/BLK_WBT) \ + $(wildcard include/config/BLK_DEV_ZONED) \ + $(wildcard include/config/BLK_DEV_THROTTLING) \ + $(wildcard include/config/BLK_DEBUG_FS) \ + include/linux/sched/clock.h \ + $(wildcard include/config/HAVE_UNSTABLE_SCHED_CLOCK) \ + include/uapi/linux/major.h \ + include/linux/genhd.h \ + $(wildcard include/config/BLOCK_HOLDER_DEPRECATED) \ + $(wildcard include/config/CDROM) \ + include/linux/mempool.h \ + include/linux/bio.h \ + include/uapi/linux/blkzoned.h \ + include/linux/sbitmap.h \ + include/linux/elevator.h \ + include/linux/hashtable.h \ + include/linux/blk-mq.h \ + $(wildcard include/config/FAIL_IO_TIMEOUT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/pagemap.h \ + include/linux/hugetlb_inline.h \ + include/uapi/linux/mempolicy.h \ + include/linux/freezer.h \ + include/uapi/linux/i2c.h \ + include/linux/backlight.h \ + $(wildcard include/config/BACKLIGHT_CLASS_DEVICE) \ + include/linux/poll.h \ + include/uapi/linux/poll.h \ + arch/x86/include/generated/uapi/asm/poll.h \ + include/uapi/asm-generic/poll.h \ + include/uapi/linux/eventpoll.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEAER) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + include/linux/aio.h \ + include/linux/splice.h \ + include/linux/pipe_fs_i.h \ + include/generated/uapi/linux/version.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + $(wildcard include/config/BLOCK_ID) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/linux/cpuset.h \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.cdev_sgdma.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_sgdma.o.cmd new file mode 100644 index 0000000..0367645 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_sgdma.o.cmd @@ -0,0 +1,1428 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.cdev_sgdma.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"cdev_sgdma"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + arch/x86/include/asm/cacheflush.h \ + include/linux/mm.h \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/SYSCTL) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/X86) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + $(wildcard include/config/KASAN_HW_TAGS) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/HIGHMEM) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + $(wildcard include/config/PRINTK) \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/bug.h \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/stringify.h \ + include/linux/instrumentation.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + $(wildcard include/config/STACK_VALIDATION) \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/CFI_CLANG) \ + $(wildcard include/config/MODULES) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + include/linux/once_lite.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/stdarg.h \ + include/linux/init.h \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/JUMP_LABEL) \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/nops.h \ + include/linux/gfp.h \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/spinlock.h \ + $(wildcard include/config/PREEMPTION) \ + include/linux/typecheck.h \ + include/linux/preempt.h \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/align.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/bitops.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + arch/x86/include/asm/preempt.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + include/linux/thread_info.h \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/VM86) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/FRAME_POINTER) \ + $(wildcard include/config/COMPAT) \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + include/uapi/video/edid.h \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + $(wildcard include/config/PARAVIRT) \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PGTABLE_LEVELS) \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/TRACEPOINTS) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/fortify-string.h \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/special_insns.h \ + include/linux/irqflags.h \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/linux/seqlock.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + include/linux/rbtree_types.h \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags-layout.h \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rbtree.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/UPROBES) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + $(wildcard include/config/TREE_SRCU) \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/tsc.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/ioport.h \ + include/linux/overflow.h \ + include/linux/sizes.h \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/refcount.h \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/rhashtable-types.h \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/sysctl.h \ + include/uapi/linux/sysctl.h \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/ratelimit.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + include/asm-generic/cacheflush.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/linux/aio.h \ + include/uapi/linux/aio_abi.h \ + include/linux/kthread.h \ + include/generated/uapi/linux/version.h \ + include/linux/uio.h \ + include/uapi/linux/uio.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include/libxdma_api.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + arch/x86/include/asm/pgtable_areas.h \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + $(wildcard include/config/HYPERV) \ + include/linux/kref.h \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h \ + include/linux/module.h \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/kobject_ns.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/cdev.h \ + include/linux/device.h \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/dma-direction.h \ + include/linux/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ + include/linux/fb.h \ + $(wildcard include/config/GUMSTIX_AM200EPD) \ + $(wildcard include/config/FB_NOTIFY) \ + $(wildcard include/config/FB_DEFERRED_IO) \ + $(wildcard include/config/FB_TILEBLITTING) \ + $(wildcard include/config/FB_BACKLIGHT) \ + $(wildcard include/config/FB_FOREIGN_ENDIAN) \ + $(wildcard include/config/FB_BOTH_ENDIAN) \ + $(wildcard include/config/FB_BIG_ENDIAN) \ + $(wildcard include/config/FB_LITTLE_ENDIAN) \ + include/linux/kgdb.h \ + $(wildcard include/config/HAVE_ARCH_KGDB) \ + $(wildcard include/config/KGDB) \ + $(wildcard include/config/SERIAL_KGDB_NMI) \ + $(wildcard include/config/KGDB_HONOUR_BLOCKLIST) \ + include/linux/kprobes.h \ + $(wildcard include/config/KPROBES_SANITY_TEST) \ + $(wildcard include/config/OPTPROBES) \ + $(wildcard include/config/KPROBES_ON_FTRACE) \ + include/linux/ftrace.h \ + $(wildcard include/config/FUNCTION_TRACER) \ + $(wildcard include/config/DYNAMIC_FTRACE) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_ARGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_REGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/STACK_TRACER) \ + $(wildcard include/config/FUNCTION_PROFILER) \ + $(wildcard include/config/FTRACE_SYSCALLS) \ + include/linux/trace_recursion.h \ + $(wildcard include/config/FTRACE_RECORD_RECURSION) \ + include/linux/trace_clock.h \ + arch/x86/include/asm/trace_clock.h \ + include/linux/kallsyms.h \ + $(wildcard include/config/KALLSYMS_ALL) \ + include/linux/ptrace.h \ + include/linux/pid_namespace.h \ + $(wildcard include/config/PID_NS) \ + include/linux/nsproxy.h \ + include/linux/ns_common.h \ + include/uapi/linux/ptrace.h \ + arch/x86/include/asm/ftrace.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.h \ + include/linux/freelist.h \ + arch/x86/include/asm/kprobes.h \ + include/asm-generic/kprobes.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + arch/x86/include/asm/insn.h \ + arch/x86/include/asm/inat.h \ + arch/x86/include/asm/inat_types.h \ + arch/x86/include/asm/kgdb.h \ + include/uapi/linux/fb.h \ + include/linux/i2c.h \ + $(wildcard include/config/I2C) \ + $(wildcard include/config/I2C_SLAVE) \ + $(wildcard include/config/I2C_BOARDINFO) \ + $(wildcard include/config/I2C_MUX) \ + include/linux/acpi.h \ + $(wildcard include/config/ACPI_DEBUGGER) \ + $(wildcard include/config/LOONGARCH) \ + $(wildcard include/config/ACPI_PROCESSOR_CSTATE) \ + $(wildcard include/config/ACPI_HOTPLUG_CPU) \ + $(wildcard include/config/ACPI_HOTPLUG_IOAPIC) \ + $(wildcard include/config/ACPI_WMI) \ + $(wildcard include/config/ACPI_NUMA) \ + $(wildcard include/config/HIBERNATION) \ + $(wildcard include/config/ACPI_HOTPLUG_MEMORY) \ + $(wildcard include/config/ACPI_CONTAINER) \ + $(wildcard include/config/ACPI_GTDT) \ + $(wildcard include/config/GPIOLIB) \ + $(wildcard include/config/ACPI_TABLE_UPGRADE) \ + $(wildcard include/config/ACPI_WATCHDOG) \ + $(wildcard include/config/ACPI_SPCR_TABLE) \ + $(wildcard include/config/ACPI_GENERIC_GSI) \ + $(wildcard include/config/ACPI_LPIT) \ + $(wildcard include/config/ACPI_PPTT) \ + include/linux/irqdomain.h \ + $(wildcard include/config/IRQ_DOMAIN_HIERARCHY) \ + $(wildcard include/config/GENERIC_IRQ_DEBUGFS) \ + $(wildcard include/config/IRQ_DOMAIN) \ + $(wildcard include/config/IRQ_DOMAIN_NOMAP) \ + include/linux/irqhandler.h \ + include/linux/of.h \ + $(wildcard include/config/OF_DYNAMIC) \ + $(wildcard include/config/SPARC) \ + $(wildcard include/config/OF_PROMTREE) \ + $(wildcard include/config/OF_KOBJ) \ + $(wildcard include/config/OF_NUMA) \ + $(wildcard include/config/OF_OVERLAY) \ + include/linux/mod_devicetable.h \ + include/linux/property.h \ + include/linux/resource_ext.h \ + include/acpi/acpi.h \ + include/acpi/platform/acenv.h \ + include/acpi/platform/acgcc.h \ + include/acpi/platform/aclinux.h \ + $(wildcard include/config/ACPI_REDUCED_HARDWARE_ONLY) \ + $(wildcard include/config/ACPI_DEBUG) \ + include/linux/ctype.h \ + arch/x86/include/asm/acenv.h \ + include/acpi/acnames.h \ + include/acpi/actypes.h \ + include/acpi/acexcep.h \ + include/acpi/actbl.h \ + include/acpi/actbl1.h \ + include/acpi/actbl2.h \ + include/acpi/actbl3.h \ + include/acpi/acrestyp.h \ + include/acpi/platform/acenvex.h \ + include/acpi/platform/aclinuxex.h \ + include/acpi/platform/acgccex.h \ + include/acpi/acoutput.h \ + include/acpi/acpiosxf.h \ + include/acpi/acpixf.h \ + include/acpi/acconfig.h \ + include/acpi/acbuffer.h \ + include/acpi/acpi_bus.h \ + $(wildcard include/config/ACPI_SYSTEM_POWER_STATES_SUPPORT) \ + $(wildcard include/config/ACPI_SLEEP) \ + include/acpi/acpi_drivers.h \ + $(wildcard include/config/ACPI_DOCK) \ + include/acpi/acpi_numa.h \ + $(wildcard include/config/ACPI_HMAT) \ + include/acpi/acpi_io.h \ + include/linux/io.h \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/ACPI_APEI) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/NUMA_EMU) \ + include/linux/regulator/consumer.h \ + $(wildcard include/config/REGULATOR) \ + include/linux/suspend.h \ + $(wildcard include/config/VT) \ + $(wildcard include/config/SUSPEND) \ + $(wildcard include/config/HIBERNATION_SNAPSHOT_DEV) \ + $(wildcard include/config/PM_SLEEP_DEBUG) \ + $(wildcard include/config/PM_AUTOSLEEP) \ + include/linux/swap.h \ + $(wildcard include/config/FRONTSWAP) \ + $(wildcard include/config/MEMCG_SWAP) \ + include/linux/memcontrol.h \ + include/linux/cgroup.h \ + $(wildcard include/config/CGROUP_CPUACCT) \ + $(wildcard include/config/SOCK_CGROUP_DATA) \ + $(wildcard include/config/CGROUP_DATA) \ + $(wildcard include/config/CGROUP_BPF) \ + include/uapi/linux/cgroupstats.h \ + include/uapi/linux/taskstats.h \ + include/linux/seq_file.h \ + include/linux/user_namespace.h \ + $(wildcard include/config/INOTIFY_USER) \ + $(wildcard include/config/FANOTIFY) \ + $(wildcard include/config/PERSISTENT_KEYRINGS) \ + include/linux/kernel_stat.h \ + include/linux/cgroup-defs.h \ + $(wildcard include/config/CGROUP_NET_CLASSID) \ + $(wildcard include/config/CGROUP_NET_PRIO) \ + include/linux/u64_stats_sync.h \ + arch/x86/include/generated/asm/local64.h \ + include/asm-generic/local64.h \ + arch/x86/include/asm/local.h \ + include/linux/bpf-cgroup.h \ + include/linux/bpf.h \ + $(wildcard include/config/BPF_JIT_ALWAYS_ON) \ + $(wildcard include/config/INET) \ + include/uapi/linux/bpf.h \ + $(wildcard include/config/BPF_LIRC_MODE2) \ + $(wildcard include/config/EFFICIENT_UNALIGNED_ACCESS) \ + $(wildcard include/config/IP_ROUTE_CLASSID) \ + $(wildcard include/config/BPF_KPROBE_OVERRIDE) \ + $(wildcard include/config/XFRM) \ + include/uapi/linux/bpf_common.h \ + include/linux/file.h \ + include/linux/sched/mm.h \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/bpfptr.h \ + include/linux/sockptr.h \ + include/linux/bpf_types.h \ + $(wildcard include/config/BPF_LSM) \ + $(wildcard include/config/XDP_SOCKETS) \ + include/linux/psi_types.h \ + include/linux/cgroup_subsys.h \ + $(wildcard include/config/CGROUP_DEVICE) \ + $(wildcard include/config/CGROUP_FREEZER) \ + $(wildcard include/config/CGROUP_PERF) \ + $(wildcard include/config/CGROUP_HUGETLB) \ + $(wildcard include/config/CGROUP_PIDS) \ + $(wildcard include/config/CGROUP_RDMA) \ + $(wildcard include/config/CGROUP_MISC) \ + $(wildcard include/config/CGROUP_DEBUG) \ + include/linux/page_counter.h \ + include/linux/vmpressure.h \ + include/linux/eventfd.h \ + include/linux/writeback.h \ + include/linux/flex_proportions.h \ + include/linux/backing-dev-defs.h \ + $(wildcard include/config/DEBUG_FS) \ + include/linux/blk_types.h \ + $(wildcard include/config/FAIL_MAKE_REQUEST) \ + $(wildcard include/config/BLK_CGROUP_IOCOST) \ + $(wildcard include/config/BLK_INLINE_ENCRYPTION) \ + $(wildcard include/config/BLK_DEV_INTEGRITY) \ + include/linux/bvec.h \ + include/linux/highmem.h \ + include/linux/highmem-internal.h \ + include/linux/blk-cgroup.h \ + $(wildcard include/config/BLK_CGROUP_FC_APPID) \ + include/linux/blkdev.h \ + $(wildcard include/config/BLK_RQ_ALLOC_TIME) \ + $(wildcard include/config/BLK_WBT) \ + $(wildcard include/config/BLK_DEV_ZONED) \ + $(wildcard include/config/BLK_DEV_THROTTLING) \ + $(wildcard include/config/BLK_DEBUG_FS) \ + include/linux/sched/clock.h \ + $(wildcard include/config/HAVE_UNSTABLE_SCHED_CLOCK) \ + include/uapi/linux/major.h \ + include/linux/genhd.h \ + $(wildcard include/config/BLOCK_HOLDER_DEPRECATED) \ + $(wildcard include/config/CDROM) \ + include/linux/mempool.h \ + include/linux/bio.h \ + include/uapi/linux/blkzoned.h \ + include/linux/sbitmap.h \ + include/linux/elevator.h \ + include/linux/hashtable.h \ + include/linux/blk-mq.h \ + $(wildcard include/config/FAIL_IO_TIMEOUT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/pagemap.h \ + include/linux/hugetlb_inline.h \ + include/uapi/linux/mempolicy.h \ + include/linux/freezer.h \ + include/uapi/linux/i2c.h \ + include/linux/backlight.h \ + $(wildcard include/config/BACKLIGHT_CLASS_DEVICE) \ + include/linux/poll.h \ + include/uapi/linux/poll.h \ + arch/x86/include/generated/uapi/asm/poll.h \ + include/uapi/asm-generic/poll.h \ + include/uapi/linux/eventpoll.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEAER) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + include/linux/splice.h \ + include/linux/pipe_fs_i.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + $(wildcard include/config/BLOCK_ID) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/linux/cpuset.h \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.cdev_xvc.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_xvc.o.cmd new file mode 100644 index 0000000..8bad60b --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.cdev_xvc.o.cmd @@ -0,0 +1,1427 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.cdev_xvc.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"cdev_xvc"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/stdarg.h \ + include/linux/align.h \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + $(wildcard include/config/CFI_CLANG) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/linux/typecheck.h \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/once_lite.h \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/JUMP_LABEL) \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/COMPAT) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/UPROBES) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/PREEMPTION) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/rcupdate.h \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + include/linux/irqflags.h \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/asm/processor-flags.h \ + $(wildcard include/config/VM86) \ + arch/x86/include/uapi/asm/processor-flags.h \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/X86) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/segment.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT) \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/PGTABLE_LEVELS) \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + include/linux/bug.h \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/fortify-string.h \ + arch/x86/include/asm/frame.h \ + $(wildcard include/config/FRAME_POINTER) \ + include/linux/preempt.h \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + arch/x86/include/asm/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/TRACEPOINTS) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/special_insns.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + include/linux/rcutree.h \ + include/linux/wait.h \ + include/linux/spinlock.h \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/uapi/linux/wait.h \ + include/linux/refcount.h \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/rhashtable-types.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/tsc.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/seqlock.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/nodemask.h \ + $(wildcard include/config/HIGHMEM) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/mm_types_task.h \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h \ + include/linux/module.h \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/TREE_SRCU) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/generated/bounds.h \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/sysctl.h \ + $(wildcard include/config/SYSCTL) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/cdev.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/device.h \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/ratelimit.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/ioport.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/overflow.h \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/sizes.h \ + include/linux/dma-direction.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + include/linux/mm.h \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + arch/x86/include/asm/pgtable_areas.h \ + include/linux/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ + include/linux/fb.h \ + $(wildcard include/config/GUMSTIX_AM200EPD) \ + $(wildcard include/config/FB_NOTIFY) \ + $(wildcard include/config/FB_DEFERRED_IO) \ + $(wildcard include/config/FB_TILEBLITTING) \ + $(wildcard include/config/FB_BACKLIGHT) \ + $(wildcard include/config/FB_FOREIGN_ENDIAN) \ + $(wildcard include/config/FB_BOTH_ENDIAN) \ + $(wildcard include/config/FB_BIG_ENDIAN) \ + $(wildcard include/config/FB_LITTLE_ENDIAN) \ + include/linux/kgdb.h \ + $(wildcard include/config/HAVE_ARCH_KGDB) \ + $(wildcard include/config/KGDB) \ + $(wildcard include/config/SERIAL_KGDB_NMI) \ + $(wildcard include/config/KGDB_HONOUR_BLOCKLIST) \ + include/linux/kprobes.h \ + $(wildcard include/config/KPROBES_SANITY_TEST) \ + $(wildcard include/config/OPTPROBES) \ + $(wildcard include/config/KPROBES_ON_FTRACE) \ + include/linux/ftrace.h \ + $(wildcard include/config/FUNCTION_TRACER) \ + $(wildcard include/config/DYNAMIC_FTRACE) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_ARGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_REGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/STACK_TRACER) \ + $(wildcard include/config/FUNCTION_PROFILER) \ + $(wildcard include/config/FTRACE_SYSCALLS) \ + include/linux/trace_recursion.h \ + $(wildcard include/config/FTRACE_RECORD_RECURSION) \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + $(wildcard include/config/HYPERV) \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + include/linux/trace_clock.h \ + arch/x86/include/asm/trace_clock.h \ + include/linux/kallsyms.h \ + $(wildcard include/config/KALLSYMS_ALL) \ + include/linux/ptrace.h \ + include/linux/pid_namespace.h \ + $(wildcard include/config/PID_NS) \ + include/linux/nsproxy.h \ + include/linux/ns_common.h \ + include/uapi/linux/ptrace.h \ + arch/x86/include/asm/ftrace.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/linux/uio.h \ + include/uapi/linux/uio.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + include/uapi/linux/aio_abi.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.h \ + include/linux/freelist.h \ + arch/x86/include/asm/kprobes.h \ + include/asm-generic/kprobes.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + arch/x86/include/asm/insn.h \ + arch/x86/include/asm/inat.h \ + arch/x86/include/asm/inat_types.h \ + arch/x86/include/asm/kgdb.h \ + include/uapi/linux/fb.h \ + include/linux/i2c.h \ + $(wildcard include/config/I2C) \ + $(wildcard include/config/I2C_SLAVE) \ + $(wildcard include/config/I2C_BOARDINFO) \ + $(wildcard include/config/I2C_MUX) \ + include/linux/acpi.h \ + $(wildcard include/config/ACPI_DEBUGGER) \ + $(wildcard include/config/LOONGARCH) \ + $(wildcard include/config/ACPI_PROCESSOR_CSTATE) \ + $(wildcard include/config/ACPI_HOTPLUG_CPU) \ + $(wildcard include/config/ACPI_HOTPLUG_IOAPIC) \ + $(wildcard include/config/ACPI_WMI) \ + $(wildcard include/config/ACPI_NUMA) \ + $(wildcard include/config/HIBERNATION) \ + $(wildcard include/config/ACPI_HOTPLUG_MEMORY) \ + $(wildcard include/config/ACPI_CONTAINER) \ + $(wildcard include/config/ACPI_GTDT) \ + $(wildcard include/config/GPIOLIB) \ + $(wildcard include/config/ACPI_TABLE_UPGRADE) \ + $(wildcard include/config/ACPI_WATCHDOG) \ + $(wildcard include/config/ACPI_SPCR_TABLE) \ + $(wildcard include/config/ACPI_GENERIC_GSI) \ + $(wildcard include/config/ACPI_LPIT) \ + $(wildcard include/config/ACPI_PPTT) \ + include/linux/irqdomain.h \ + $(wildcard include/config/IRQ_DOMAIN_HIERARCHY) \ + $(wildcard include/config/GENERIC_IRQ_DEBUGFS) \ + $(wildcard include/config/IRQ_DOMAIN) \ + $(wildcard include/config/IRQ_DOMAIN_NOMAP) \ + include/linux/irqhandler.h \ + include/linux/of.h \ + $(wildcard include/config/OF_DYNAMIC) \ + $(wildcard include/config/SPARC) \ + $(wildcard include/config/OF_PROMTREE) \ + $(wildcard include/config/OF_KOBJ) \ + $(wildcard include/config/OF_NUMA) \ + $(wildcard include/config/OF_OVERLAY) \ + include/linux/mod_devicetable.h \ + include/linux/property.h \ + include/linux/resource_ext.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/acpi/acpi.h \ + include/acpi/platform/acenv.h \ + include/acpi/platform/acgcc.h \ + include/acpi/platform/aclinux.h \ + $(wildcard include/config/ACPI_REDUCED_HARDWARE_ONLY) \ + $(wildcard include/config/ACPI_DEBUG) \ + include/linux/ctype.h \ + arch/x86/include/asm/acenv.h \ + include/acpi/acnames.h \ + include/acpi/actypes.h \ + include/acpi/acexcep.h \ + include/acpi/actbl.h \ + include/acpi/actbl1.h \ + include/acpi/actbl2.h \ + include/acpi/actbl3.h \ + include/acpi/acrestyp.h \ + include/acpi/platform/acenvex.h \ + include/acpi/platform/aclinuxex.h \ + include/acpi/platform/acgccex.h \ + include/acpi/acoutput.h \ + include/acpi/acpiosxf.h \ + include/acpi/acpixf.h \ + include/acpi/acconfig.h \ + include/acpi/acbuffer.h \ + include/acpi/acpi_bus.h \ + $(wildcard include/config/ACPI_SYSTEM_POWER_STATES_SUPPORT) \ + $(wildcard include/config/ACPI_SLEEP) \ + include/acpi/acpi_drivers.h \ + $(wildcard include/config/ACPI_DOCK) \ + include/acpi/acpi_numa.h \ + $(wildcard include/config/ACPI_HMAT) \ + include/acpi/acpi_io.h \ + include/linux/io.h \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/ACPI_APEI) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/NUMA_EMU) \ + include/linux/regulator/consumer.h \ + $(wildcard include/config/REGULATOR) \ + include/linux/suspend.h \ + $(wildcard include/config/VT) \ + $(wildcard include/config/SUSPEND) \ + $(wildcard include/config/HIBERNATION_SNAPSHOT_DEV) \ + $(wildcard include/config/PM_SLEEP_DEBUG) \ + $(wildcard include/config/PM_AUTOSLEEP) \ + include/linux/swap.h \ + $(wildcard include/config/FRONTSWAP) \ + $(wildcard include/config/MEMCG_SWAP) \ + include/linux/memcontrol.h \ + include/linux/cgroup.h \ + $(wildcard include/config/CGROUP_CPUACCT) \ + $(wildcard include/config/SOCK_CGROUP_DATA) \ + $(wildcard include/config/CGROUP_DATA) \ + $(wildcard include/config/CGROUP_BPF) \ + include/uapi/linux/cgroupstats.h \ + include/uapi/linux/taskstats.h \ + include/linux/seq_file.h \ + include/linux/user_namespace.h \ + $(wildcard include/config/INOTIFY_USER) \ + $(wildcard include/config/FANOTIFY) \ + $(wildcard include/config/PERSISTENT_KEYRINGS) \ + include/linux/kernel_stat.h \ + include/linux/cgroup-defs.h \ + $(wildcard include/config/CGROUP_NET_CLASSID) \ + $(wildcard include/config/CGROUP_NET_PRIO) \ + include/linux/u64_stats_sync.h \ + arch/x86/include/generated/asm/local64.h \ + include/asm-generic/local64.h \ + arch/x86/include/asm/local.h \ + include/linux/bpf-cgroup.h \ + include/linux/bpf.h \ + $(wildcard include/config/BPF_JIT_ALWAYS_ON) \ + $(wildcard include/config/INET) \ + include/uapi/linux/bpf.h \ + $(wildcard include/config/BPF_LIRC_MODE2) \ + $(wildcard include/config/EFFICIENT_UNALIGNED_ACCESS) \ + $(wildcard include/config/IP_ROUTE_CLASSID) \ + $(wildcard include/config/BPF_KPROBE_OVERRIDE) \ + $(wildcard include/config/XFRM) \ + include/uapi/linux/bpf_common.h \ + include/linux/file.h \ + include/linux/sched/mm.h \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/bpfptr.h \ + include/linux/sockptr.h \ + include/linux/bpf_types.h \ + $(wildcard include/config/BPF_LSM) \ + $(wildcard include/config/XDP_SOCKETS) \ + include/linux/psi_types.h \ + include/linux/kthread.h \ + include/linux/cgroup_subsys.h \ + $(wildcard include/config/CGROUP_DEVICE) \ + $(wildcard include/config/CGROUP_FREEZER) \ + $(wildcard include/config/CGROUP_PERF) \ + $(wildcard include/config/CGROUP_HUGETLB) \ + $(wildcard include/config/CGROUP_PIDS) \ + $(wildcard include/config/CGROUP_RDMA) \ + $(wildcard include/config/CGROUP_MISC) \ + $(wildcard include/config/CGROUP_DEBUG) \ + include/linux/page_counter.h \ + include/linux/vmpressure.h \ + include/linux/eventfd.h \ + include/linux/writeback.h \ + include/linux/flex_proportions.h \ + include/linux/backing-dev-defs.h \ + $(wildcard include/config/DEBUG_FS) \ + include/linux/blk_types.h \ + $(wildcard include/config/FAIL_MAKE_REQUEST) \ + $(wildcard include/config/BLK_CGROUP_IOCOST) \ + $(wildcard include/config/BLK_INLINE_ENCRYPTION) \ + $(wildcard include/config/BLK_DEV_INTEGRITY) \ + include/linux/bvec.h \ + include/linux/highmem.h \ + arch/x86/include/asm/cacheflush.h \ + include/asm-generic/cacheflush.h \ + include/linux/highmem-internal.h \ + include/linux/blk-cgroup.h \ + $(wildcard include/config/BLK_CGROUP_FC_APPID) \ + include/linux/blkdev.h \ + $(wildcard include/config/BLK_RQ_ALLOC_TIME) \ + $(wildcard include/config/BLK_WBT) \ + $(wildcard include/config/BLK_DEV_ZONED) \ + $(wildcard include/config/BLK_DEV_THROTTLING) \ + $(wildcard include/config/BLK_DEBUG_FS) \ + include/linux/sched/clock.h \ + $(wildcard include/config/HAVE_UNSTABLE_SCHED_CLOCK) \ + include/uapi/linux/major.h \ + include/linux/genhd.h \ + $(wildcard include/config/BLOCK_HOLDER_DEPRECATED) \ + $(wildcard include/config/CDROM) \ + include/linux/mempool.h \ + include/linux/bio.h \ + include/uapi/linux/blkzoned.h \ + include/linux/sbitmap.h \ + include/linux/elevator.h \ + include/linux/hashtable.h \ + include/linux/blk-mq.h \ + $(wildcard include/config/FAIL_IO_TIMEOUT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/pagemap.h \ + include/linux/hugetlb_inline.h \ + include/uapi/linux/mempolicy.h \ + include/linux/freezer.h \ + include/uapi/linux/i2c.h \ + include/linux/backlight.h \ + $(wildcard include/config/BACKLIGHT_CLASS_DEVICE) \ + include/linux/poll.h \ + include/uapi/linux/poll.h \ + arch/x86/include/generated/uapi/asm/poll.h \ + include/uapi/asm-generic/poll.h \ + include/uapi/linux/eventpoll.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEAER) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + include/linux/aio.h \ + include/linux/splice.h \ + include/linux/pipe_fs_i.h \ + include/generated/uapi/linux/version.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + $(wildcard include/config/BLOCK_ID) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/linux/cpuset.h \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.libxdma.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.libxdma.o.cmd new file mode 100644 index 0000000..b4fb20c --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.libxdma.o.cmd @@ -0,0 +1,1154 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.libxdma.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"libxdma"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o := \ + $(wildcard include/config/BLOCK_ID) \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + include/linux/module.h \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/CFI_CLANG) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/TRACEPOINTS) \ + $(wildcard include/config/TREE_SRCU) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/JUMP_LABEL) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + $(wildcard include/config/KPROBES) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + include/linux/stdarg.h \ + include/linux/align.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/linux/typecheck.h \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/once_lite.h \ + include/linux/dynamic_debug.h \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/linux/time64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/VM86) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/X86) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + $(wildcard include/config/PARAVIRT) \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PGTABLE_LEVELS) \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/msr.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + arch/x86/include/asm/cpumask.h \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/fortify-string.h \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + include/linux/bug.h \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + arch/x86/include/asm/frame.h \ + $(wildcard include/config/FRAME_POINTER) \ + arch/x86/include/asm/special_insns.h \ + include/linux/irqflags.h \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + arch/x86/include/asm/tsc.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/spinlock.h \ + $(wildcard include/config/PREEMPTION) \ + include/linux/preempt.h \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + arch/x86/include/asm/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/restart_block.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/COMPAT) \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/osq_lock.h \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/UPROBES) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + include/linux/debug_locks.h \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/generated/bounds.h \ + include/linux/seqlock.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/HIGHMEM) \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/sysctl.h \ + $(wildcard include/config/SYSCTL) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/refcount.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/mm.h \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/ioport.h \ + include/linux/overflow.h \ + include/linux/sizes.h \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/rhashtable-types.h \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/ratelimit.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + arch/x86/include/asm/pgtable_areas.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + include/generated/uapi/linux/version.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/device.h \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/dma-direction.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + $(wildcard include/config/HYPERV) \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEAER) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/linux/mod_devicetable.h \ + include/linux/io.h \ + include/linux/resource_ext.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include/libxdma_api.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/linux/kthread.h \ + include/linux/cpuset.h \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.modules.order.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.modules.order.cmd new file mode 100644 index 0000000..a0a25f5 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.modules.order.cmd @@ -0,0 +1 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/modules.order := { echo /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.ko; :; } | awk '!x[$$0]++' - > /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/modules.order diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.xdma.ko.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.xdma.ko.cmd new file mode 100644 index 0000000..3bab288 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.xdma.ko.cmd @@ -0,0 +1 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.ko := ld -r -m elf_x86_64 -z noexecstack --build-id=sha1 -T scripts/module.lds -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.ko /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.o; true diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.cmd new file mode 100644 index 0000000..05d2b35 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.cmd @@ -0,0 +1 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod := { echo /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o; echo; } > /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.o.cmd new file mode 100644 index 0000000..3b0c734 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.o.cmd @@ -0,0 +1,704 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.xdma.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"xdma.mod"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.o := \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/RETPOLINE) \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + include/linux/module.h \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/CFI_CLANG) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/TRACEPOINTS) \ + $(wildcard include/config/TREE_SRCU) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/JUMP_LABEL) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + $(wildcard include/config/KPROBES) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + include/linux/stdarg.h \ + include/linux/align.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/linux/typecheck.h \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/once_lite.h \ + include/linux/dynamic_debug.h \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/linux/time64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/VM86) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/X86) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + $(wildcard include/config/PARAVIRT) \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PGTABLE_LEVELS) \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/msr.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + arch/x86/include/asm/cpumask.h \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/fortify-string.h \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + include/linux/bug.h \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + arch/x86/include/asm/frame.h \ + $(wildcard include/config/FRAME_POINTER) \ + arch/x86/include/asm/special_insns.h \ + include/linux/irqflags.h \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + arch/x86/include/asm/tsc.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/spinlock.h \ + $(wildcard include/config/PREEMPTION) \ + include/linux/preempt.h \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + arch/x86/include/asm/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/restart_block.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/COMPAT) \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/osq_lock.h \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/UPROBES) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + include/linux/debug_locks.h \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/generated/bounds.h \ + include/linux/seqlock.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/HIGHMEM) \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/sysctl.h \ + $(wildcard include/config/SYSCTL) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/refcount.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/build-salt.h \ + $(wildcard include/config/BUILD_SALT) \ + include/linux/elfnote.h \ + include/linux/elfnote-lto.h \ + $(wildcard include/config/LTO) \ + include/linux/vermagic.h \ + include/generated/utsrelease.h \ + arch/x86/include/asm/vermagic.h \ + $(wildcard include/config/M486SX) \ + $(wildcard include/config/M486) \ + $(wildcard include/config/M586) \ + $(wildcard include/config/M586TSC) \ + $(wildcard include/config/M586MMX) \ + $(wildcard include/config/MCORE2) \ + $(wildcard include/config/M686) \ + $(wildcard include/config/MPENTIUMII) \ + $(wildcard include/config/MPENTIUMIII) \ + $(wildcard include/config/MPENTIUMM) \ + $(wildcard include/config/MPENTIUM4) \ + $(wildcard include/config/MK6) \ + $(wildcard include/config/MK7) \ + $(wildcard include/config/MK8) \ + $(wildcard include/config/MELAN) \ + $(wildcard include/config/MCRUSOE) \ + $(wildcard include/config/MEFFICEON) \ + $(wildcard include/config/MWINCHIPC6) \ + $(wildcard include/config/MWINCHIP3D) \ + $(wildcard include/config/MCYRIXIII) \ + $(wildcard include/config/MVIAC3_2) \ + $(wildcard include/config/MVIAC7) \ + $(wildcard include/config/MGEODEGX1) \ + $(wildcard include/config/MGEODE_LX) \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.xdma.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.xdma.o.cmd new file mode 100644 index 0000000..5320bc4 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.xdma.o.cmd @@ -0,0 +1 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.o := ld -m elf_x86_64 -z noexecstack -r -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.xdma_cdev.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.xdma_cdev.o.cmd new file mode 100644 index 0000000..0f76af6 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.xdma_cdev.o.cmd @@ -0,0 +1,1426 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.xdma_cdev.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"xdma_cdev"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/stdarg.h \ + include/linux/align.h \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/vdso/limits.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + $(wildcard include/config/CFI_CLANG) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/linux/typecheck.h \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/once_lite.h \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/JUMP_LABEL) \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/COMPAT) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/UPROBES) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/PREEMPTION) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/rcupdate.h \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + include/linux/irqflags.h \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/asm/processor-flags.h \ + $(wildcard include/config/VM86) \ + arch/x86/include/uapi/asm/processor-flags.h \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/X86) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/segment.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT) \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/PGTABLE_LEVELS) \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + include/linux/bug.h \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/fortify-string.h \ + arch/x86/include/asm/frame.h \ + $(wildcard include/config/FRAME_POINTER) \ + include/linux/preempt.h \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + arch/x86/include/asm/preempt.h \ + include/linux/thread_info.h \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/TRACEPOINTS) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/special_insns.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + include/linux/rcutree.h \ + include/linux/wait.h \ + include/linux/spinlock.h \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/uapi/linux/wait.h \ + include/linux/refcount.h \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/rhashtable-types.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/tsc.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/seqlock.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/nodemask.h \ + $(wildcard include/config/HIGHMEM) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/mm_types_task.h \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h \ + include/linux/module.h \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/TREE_SRCU) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/generated/bounds.h \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/gfp.h \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/sysctl.h \ + $(wildcard include/config/SYSCTL) \ + include/uapi/linux/sysctl.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/cdev.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/device.h \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/ratelimit.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/ioport.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/overflow.h \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/sizes.h \ + include/linux/dma-direction.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + include/linux/mm.h \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + arch/x86/include/asm/pgtable_areas.h \ + include/linux/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ + include/linux/fb.h \ + $(wildcard include/config/GUMSTIX_AM200EPD) \ + $(wildcard include/config/FB_NOTIFY) \ + $(wildcard include/config/FB_DEFERRED_IO) \ + $(wildcard include/config/FB_TILEBLITTING) \ + $(wildcard include/config/FB_BACKLIGHT) \ + $(wildcard include/config/FB_FOREIGN_ENDIAN) \ + $(wildcard include/config/FB_BOTH_ENDIAN) \ + $(wildcard include/config/FB_BIG_ENDIAN) \ + $(wildcard include/config/FB_LITTLE_ENDIAN) \ + include/linux/kgdb.h \ + $(wildcard include/config/HAVE_ARCH_KGDB) \ + $(wildcard include/config/KGDB) \ + $(wildcard include/config/SERIAL_KGDB_NMI) \ + $(wildcard include/config/KGDB_HONOUR_BLOCKLIST) \ + include/linux/kprobes.h \ + $(wildcard include/config/KPROBES_SANITY_TEST) \ + $(wildcard include/config/OPTPROBES) \ + $(wildcard include/config/KPROBES_ON_FTRACE) \ + include/linux/ftrace.h \ + $(wildcard include/config/FUNCTION_TRACER) \ + $(wildcard include/config/DYNAMIC_FTRACE) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_ARGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_REGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/STACK_TRACER) \ + $(wildcard include/config/FUNCTION_PROFILER) \ + $(wildcard include/config/FTRACE_SYSCALLS) \ + include/linux/trace_recursion.h \ + $(wildcard include/config/FTRACE_RECORD_RECURSION) \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + $(wildcard include/config/HYPERV) \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + include/linux/trace_clock.h \ + arch/x86/include/asm/trace_clock.h \ + include/linux/kallsyms.h \ + $(wildcard include/config/KALLSYMS_ALL) \ + include/linux/ptrace.h \ + include/linux/pid_namespace.h \ + $(wildcard include/config/PID_NS) \ + include/linux/nsproxy.h \ + include/linux/ns_common.h \ + include/uapi/linux/ptrace.h \ + arch/x86/include/asm/ftrace.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/linux/uio.h \ + include/uapi/linux/uio.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + include/uapi/linux/aio_abi.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.h \ + include/linux/freelist.h \ + arch/x86/include/asm/kprobes.h \ + include/asm-generic/kprobes.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + arch/x86/include/asm/insn.h \ + arch/x86/include/asm/inat.h \ + arch/x86/include/asm/inat_types.h \ + arch/x86/include/asm/kgdb.h \ + include/uapi/linux/fb.h \ + include/linux/i2c.h \ + $(wildcard include/config/I2C) \ + $(wildcard include/config/I2C_SLAVE) \ + $(wildcard include/config/I2C_BOARDINFO) \ + $(wildcard include/config/I2C_MUX) \ + include/linux/acpi.h \ + $(wildcard include/config/ACPI_DEBUGGER) \ + $(wildcard include/config/LOONGARCH) \ + $(wildcard include/config/ACPI_PROCESSOR_CSTATE) \ + $(wildcard include/config/ACPI_HOTPLUG_CPU) \ + $(wildcard include/config/ACPI_HOTPLUG_IOAPIC) \ + $(wildcard include/config/ACPI_WMI) \ + $(wildcard include/config/ACPI_NUMA) \ + $(wildcard include/config/HIBERNATION) \ + $(wildcard include/config/ACPI_HOTPLUG_MEMORY) \ + $(wildcard include/config/ACPI_CONTAINER) \ + $(wildcard include/config/ACPI_GTDT) \ + $(wildcard include/config/GPIOLIB) \ + $(wildcard include/config/ACPI_TABLE_UPGRADE) \ + $(wildcard include/config/ACPI_WATCHDOG) \ + $(wildcard include/config/ACPI_SPCR_TABLE) \ + $(wildcard include/config/ACPI_GENERIC_GSI) \ + $(wildcard include/config/ACPI_LPIT) \ + $(wildcard include/config/ACPI_PPTT) \ + include/linux/irqdomain.h \ + $(wildcard include/config/IRQ_DOMAIN_HIERARCHY) \ + $(wildcard include/config/GENERIC_IRQ_DEBUGFS) \ + $(wildcard include/config/IRQ_DOMAIN) \ + $(wildcard include/config/IRQ_DOMAIN_NOMAP) \ + include/linux/irqhandler.h \ + include/linux/of.h \ + $(wildcard include/config/OF_DYNAMIC) \ + $(wildcard include/config/SPARC) \ + $(wildcard include/config/OF_PROMTREE) \ + $(wildcard include/config/OF_KOBJ) \ + $(wildcard include/config/OF_NUMA) \ + $(wildcard include/config/OF_OVERLAY) \ + include/linux/mod_devicetable.h \ + include/linux/property.h \ + include/linux/resource_ext.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/acpi/acpi.h \ + include/acpi/platform/acenv.h \ + include/acpi/platform/acgcc.h \ + include/acpi/platform/aclinux.h \ + $(wildcard include/config/ACPI_REDUCED_HARDWARE_ONLY) \ + $(wildcard include/config/ACPI_DEBUG) \ + include/linux/ctype.h \ + arch/x86/include/asm/acenv.h \ + include/acpi/acnames.h \ + include/acpi/actypes.h \ + include/acpi/acexcep.h \ + include/acpi/actbl.h \ + include/acpi/actbl1.h \ + include/acpi/actbl2.h \ + include/acpi/actbl3.h \ + include/acpi/acrestyp.h \ + include/acpi/platform/acenvex.h \ + include/acpi/platform/aclinuxex.h \ + include/acpi/platform/acgccex.h \ + include/acpi/acoutput.h \ + include/acpi/acpiosxf.h \ + include/acpi/acpixf.h \ + include/acpi/acconfig.h \ + include/acpi/acbuffer.h \ + include/acpi/acpi_bus.h \ + $(wildcard include/config/ACPI_SYSTEM_POWER_STATES_SUPPORT) \ + $(wildcard include/config/ACPI_SLEEP) \ + include/acpi/acpi_drivers.h \ + $(wildcard include/config/ACPI_DOCK) \ + include/acpi/acpi_numa.h \ + $(wildcard include/config/ACPI_HMAT) \ + include/acpi/acpi_io.h \ + include/linux/io.h \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/ACPI_APEI) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/NUMA_EMU) \ + include/linux/regulator/consumer.h \ + $(wildcard include/config/REGULATOR) \ + include/linux/suspend.h \ + $(wildcard include/config/VT) \ + $(wildcard include/config/SUSPEND) \ + $(wildcard include/config/HIBERNATION_SNAPSHOT_DEV) \ + $(wildcard include/config/PM_SLEEP_DEBUG) \ + $(wildcard include/config/PM_AUTOSLEEP) \ + include/linux/swap.h \ + $(wildcard include/config/FRONTSWAP) \ + $(wildcard include/config/MEMCG_SWAP) \ + include/linux/memcontrol.h \ + include/linux/cgroup.h \ + $(wildcard include/config/CGROUP_CPUACCT) \ + $(wildcard include/config/SOCK_CGROUP_DATA) \ + $(wildcard include/config/CGROUP_DATA) \ + $(wildcard include/config/CGROUP_BPF) \ + include/uapi/linux/cgroupstats.h \ + include/uapi/linux/taskstats.h \ + include/linux/seq_file.h \ + include/linux/user_namespace.h \ + $(wildcard include/config/INOTIFY_USER) \ + $(wildcard include/config/FANOTIFY) \ + $(wildcard include/config/PERSISTENT_KEYRINGS) \ + include/linux/kernel_stat.h \ + include/linux/cgroup-defs.h \ + $(wildcard include/config/CGROUP_NET_CLASSID) \ + $(wildcard include/config/CGROUP_NET_PRIO) \ + include/linux/u64_stats_sync.h \ + arch/x86/include/generated/asm/local64.h \ + include/asm-generic/local64.h \ + arch/x86/include/asm/local.h \ + include/linux/bpf-cgroup.h \ + include/linux/bpf.h \ + $(wildcard include/config/BPF_JIT_ALWAYS_ON) \ + $(wildcard include/config/INET) \ + include/uapi/linux/bpf.h \ + $(wildcard include/config/BPF_LIRC_MODE2) \ + $(wildcard include/config/EFFICIENT_UNALIGNED_ACCESS) \ + $(wildcard include/config/IP_ROUTE_CLASSID) \ + $(wildcard include/config/BPF_KPROBE_OVERRIDE) \ + $(wildcard include/config/XFRM) \ + include/uapi/linux/bpf_common.h \ + include/linux/file.h \ + include/linux/sched/mm.h \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/bpfptr.h \ + include/linux/sockptr.h \ + include/linux/bpf_types.h \ + $(wildcard include/config/BPF_LSM) \ + $(wildcard include/config/XDP_SOCKETS) \ + include/linux/psi_types.h \ + include/linux/kthread.h \ + include/linux/cgroup_subsys.h \ + $(wildcard include/config/CGROUP_DEVICE) \ + $(wildcard include/config/CGROUP_FREEZER) \ + $(wildcard include/config/CGROUP_PERF) \ + $(wildcard include/config/CGROUP_HUGETLB) \ + $(wildcard include/config/CGROUP_PIDS) \ + $(wildcard include/config/CGROUP_RDMA) \ + $(wildcard include/config/CGROUP_MISC) \ + $(wildcard include/config/CGROUP_DEBUG) \ + include/linux/page_counter.h \ + include/linux/vmpressure.h \ + include/linux/eventfd.h \ + include/linux/writeback.h \ + include/linux/flex_proportions.h \ + include/linux/backing-dev-defs.h \ + $(wildcard include/config/DEBUG_FS) \ + include/linux/blk_types.h \ + $(wildcard include/config/FAIL_MAKE_REQUEST) \ + $(wildcard include/config/BLK_CGROUP_IOCOST) \ + $(wildcard include/config/BLK_INLINE_ENCRYPTION) \ + $(wildcard include/config/BLK_DEV_INTEGRITY) \ + include/linux/bvec.h \ + include/linux/highmem.h \ + arch/x86/include/asm/cacheflush.h \ + include/asm-generic/cacheflush.h \ + include/linux/highmem-internal.h \ + include/linux/blk-cgroup.h \ + $(wildcard include/config/BLK_CGROUP_FC_APPID) \ + include/linux/blkdev.h \ + $(wildcard include/config/BLK_RQ_ALLOC_TIME) \ + $(wildcard include/config/BLK_WBT) \ + $(wildcard include/config/BLK_DEV_ZONED) \ + $(wildcard include/config/BLK_DEV_THROTTLING) \ + $(wildcard include/config/BLK_DEBUG_FS) \ + include/linux/sched/clock.h \ + $(wildcard include/config/HAVE_UNSTABLE_SCHED_CLOCK) \ + include/uapi/linux/major.h \ + include/linux/genhd.h \ + $(wildcard include/config/BLOCK_HOLDER_DEPRECATED) \ + $(wildcard include/config/CDROM) \ + include/linux/mempool.h \ + include/linux/bio.h \ + include/uapi/linux/blkzoned.h \ + include/linux/sbitmap.h \ + include/linux/elevator.h \ + include/linux/hashtable.h \ + include/linux/blk-mq.h \ + $(wildcard include/config/FAIL_IO_TIMEOUT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/pagemap.h \ + include/linux/hugetlb_inline.h \ + include/uapi/linux/mempolicy.h \ + include/linux/freezer.h \ + include/uapi/linux/i2c.h \ + include/linux/backlight.h \ + $(wildcard include/config/BACKLIGHT_CLASS_DEVICE) \ + include/linux/poll.h \ + include/uapi/linux/poll.h \ + arch/x86/include/generated/uapi/asm/poll.h \ + include/uapi/asm-generic/poll.h \ + include/uapi/linux/eventpoll.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEAER) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + include/linux/aio.h \ + include/linux/splice.h \ + include/linux/pipe_fs_i.h \ + include/generated/uapi/linux/version.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + $(wildcard include/config/BLOCK_ID) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/linux/cpuset.h \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.xdma_mod.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.xdma_mod.o.cmd new file mode 100644 index 0000000..a11ce3a --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.xdma_mod.o.cmd @@ -0,0 +1,1429 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.xdma_mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"xdma_mod"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + include/linux/compiler_types.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + include/linux/aer.h \ + $(wildcard include/config/PCIEAER) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include/libxdma_api.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + $(wildcard include/config/CFI_CLANG) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + include/linux/stdarg.h \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/jump_label.h \ + $(wildcard include/config/JUMP_LABEL) \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + include/linux/stringify.h \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/nops.h \ + include/linux/fortify-string.h \ + include/linux/bug.h \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/MODULES) \ + include/linux/once_lite.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + $(wildcard include/config/PREEMPT_RT) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + include/linux/spinlock_types_raw.h \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/dynamic_debug.h \ + include/linux/mm.h \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/SYSCTL) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/SPARSEMEM) \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/X86) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/KASAN_HW_TAGS) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/HIGHMEM) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/gfp.h \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + $(wildcard include/config/CMA) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/spinlock.h \ + $(wildcard include/config/PREEMPTION) \ + include/linux/typecheck.h \ + include/linux/preempt.h \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/align.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/bitops.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + arch/x86/include/asm/preempt.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + include/linux/thread_info.h \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/VM86) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/FRAME_POINTER) \ + $(wildcard include/config/COMPAT) \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + include/uapi/video/edid.h \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + $(wildcard include/config/PARAVIRT) \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PGTABLE_LEVELS) \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/TRACEPOINTS) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/special_insns.h \ + include/linux/irqflags.h \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/linux/seqlock.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + include/linux/rbtree_types.h \ + include/linux/nodemask.h \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags-layout.h \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/mm_types_task.h \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rbtree.h \ + include/linux/rcupdate.h \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/rcutree.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + $(wildcard include/config/UPROBES) \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + $(wildcard include/config/TREE_SRCU) \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/tsc.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/SCHED_SMT) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/ioport.h \ + include/linux/overflow.h \ + include/linux/sizes.h \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/BLK_CGROUP) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/refcount.h \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/rhashtable-types.h \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/sysctl.h \ + include/uapi/linux/sysctl.h \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/ratelimit.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + arch/x86/include/asm/pgtable_areas.h \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + $(wildcard include/config/HYPERV) \ + include/linux/kref.h \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + $(wildcard include/config/BLOCK_ID) \ + include/generated/uapi/linux/version.h \ + include/linux/module.h \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/kobject_ns.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/device.h \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/energy_model.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/dma-direction.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/linux/mod_devicetable.h \ + include/linux/io.h \ + include/linux/resource_ext.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h \ + include/linux/cdev.h \ + include/linux/delay.h \ + arch/x86/include/asm/delay.h \ + include/asm-generic/delay.h \ + include/linux/fb.h \ + $(wildcard include/config/GUMSTIX_AM200EPD) \ + $(wildcard include/config/FB_NOTIFY) \ + $(wildcard include/config/FB_DEFERRED_IO) \ + $(wildcard include/config/FB_TILEBLITTING) \ + $(wildcard include/config/FB_BACKLIGHT) \ + $(wildcard include/config/FB_FOREIGN_ENDIAN) \ + $(wildcard include/config/FB_BOTH_ENDIAN) \ + $(wildcard include/config/FB_BIG_ENDIAN) \ + $(wildcard include/config/FB_LITTLE_ENDIAN) \ + include/linux/kgdb.h \ + $(wildcard include/config/HAVE_ARCH_KGDB) \ + $(wildcard include/config/KGDB) \ + $(wildcard include/config/SERIAL_KGDB_NMI) \ + $(wildcard include/config/KGDB_HONOUR_BLOCKLIST) \ + include/linux/kprobes.h \ + $(wildcard include/config/KPROBES_SANITY_TEST) \ + $(wildcard include/config/OPTPROBES) \ + $(wildcard include/config/KPROBES_ON_FTRACE) \ + include/linux/ftrace.h \ + $(wildcard include/config/FUNCTION_TRACER) \ + $(wildcard include/config/DYNAMIC_FTRACE) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_ARGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_REGS) \ + $(wildcard include/config/DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS) \ + $(wildcard include/config/STACK_TRACER) \ + $(wildcard include/config/FUNCTION_PROFILER) \ + $(wildcard include/config/FTRACE_SYSCALLS) \ + include/linux/trace_recursion.h \ + $(wildcard include/config/FTRACE_RECORD_RECURSION) \ + include/linux/trace_clock.h \ + arch/x86/include/asm/trace_clock.h \ + include/linux/kallsyms.h \ + $(wildcard include/config/KALLSYMS_ALL) \ + include/linux/ptrace.h \ + include/linux/pid_namespace.h \ + $(wildcard include/config/PID_NS) \ + include/linux/nsproxy.h \ + include/linux/ns_common.h \ + include/uapi/linux/ptrace.h \ + arch/x86/include/asm/ftrace.h \ + include/linux/compat.h \ + $(wildcard include/config/ARCH_HAS_SYSCALL_WRAPPER) \ + $(wildcard include/config/COMPAT_OLD_SIGACTION) \ + $(wildcard include/config/ODD_RT_SIGACTION) \ + include/linux/socket.h \ + arch/x86/include/generated/uapi/asm/socket.h \ + include/uapi/asm-generic/socket.h \ + arch/x86/include/generated/uapi/asm/sockios.h \ + include/uapi/asm-generic/sockios.h \ + include/uapi/linux/sockios.h \ + include/linux/uio.h \ + include/uapi/linux/uio.h \ + include/uapi/linux/socket.h \ + include/uapi/linux/if.h \ + include/uapi/linux/libc-compat.h \ + include/uapi/linux/hdlc/ioctl.h \ + include/uapi/linux/aio_abi.h \ + arch/x86/include/asm/compat.h \ + include/linux/sched/task_stack.h \ + $(wildcard include/config/DEBUG_STACK_USAGE) \ + include/uapi/linux/magic.h \ + arch/x86/include/asm/user32.h \ + include/asm-generic/compat.h \ + $(wildcard include/config/COMPAT_FOR_U64_ALIGNMENT) \ + arch/x86/include/asm/syscall_wrapper.h \ + include/linux/freelist.h \ + arch/x86/include/asm/kprobes.h \ + include/asm-generic/kprobes.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + arch/x86/include/asm/insn.h \ + arch/x86/include/asm/inat.h \ + arch/x86/include/asm/inat_types.h \ + arch/x86/include/asm/kgdb.h \ + include/uapi/linux/fb.h \ + include/linux/i2c.h \ + $(wildcard include/config/I2C) \ + $(wildcard include/config/I2C_SLAVE) \ + $(wildcard include/config/I2C_BOARDINFO) \ + $(wildcard include/config/I2C_MUX) \ + include/linux/acpi.h \ + $(wildcard include/config/ACPI_DEBUGGER) \ + $(wildcard include/config/LOONGARCH) \ + $(wildcard include/config/ACPI_PROCESSOR_CSTATE) \ + $(wildcard include/config/ACPI_HOTPLUG_CPU) \ + $(wildcard include/config/ACPI_HOTPLUG_IOAPIC) \ + $(wildcard include/config/ACPI_WMI) \ + $(wildcard include/config/ACPI_NUMA) \ + $(wildcard include/config/HIBERNATION) \ + $(wildcard include/config/ACPI_HOTPLUG_MEMORY) \ + $(wildcard include/config/ACPI_CONTAINER) \ + $(wildcard include/config/ACPI_GTDT) \ + $(wildcard include/config/GPIOLIB) \ + $(wildcard include/config/ACPI_TABLE_UPGRADE) \ + $(wildcard include/config/ACPI_WATCHDOG) \ + $(wildcard include/config/ACPI_SPCR_TABLE) \ + $(wildcard include/config/ACPI_GENERIC_GSI) \ + $(wildcard include/config/ACPI_LPIT) \ + $(wildcard include/config/ACPI_PPTT) \ + include/linux/irqdomain.h \ + $(wildcard include/config/IRQ_DOMAIN_HIERARCHY) \ + $(wildcard include/config/GENERIC_IRQ_DEBUGFS) \ + $(wildcard include/config/IRQ_DOMAIN) \ + $(wildcard include/config/IRQ_DOMAIN_NOMAP) \ + include/linux/irqhandler.h \ + include/linux/of.h \ + $(wildcard include/config/OF_DYNAMIC) \ + $(wildcard include/config/SPARC) \ + $(wildcard include/config/OF_PROMTREE) \ + $(wildcard include/config/OF_KOBJ) \ + $(wildcard include/config/OF_NUMA) \ + $(wildcard include/config/OF_OVERLAY) \ + include/linux/property.h \ + include/acpi/acpi.h \ + include/acpi/platform/acenv.h \ + include/acpi/platform/acgcc.h \ + include/acpi/platform/aclinux.h \ + $(wildcard include/config/ACPI_REDUCED_HARDWARE_ONLY) \ + $(wildcard include/config/ACPI_DEBUG) \ + include/linux/ctype.h \ + arch/x86/include/asm/acenv.h \ + include/acpi/acnames.h \ + include/acpi/actypes.h \ + include/acpi/acexcep.h \ + include/acpi/actbl.h \ + include/acpi/actbl1.h \ + include/acpi/actbl2.h \ + include/acpi/actbl3.h \ + include/acpi/acrestyp.h \ + include/acpi/platform/acenvex.h \ + include/acpi/platform/aclinuxex.h \ + include/acpi/platform/acgccex.h \ + include/acpi/acoutput.h \ + include/acpi/acpiosxf.h \ + include/acpi/acpixf.h \ + include/acpi/acconfig.h \ + include/acpi/acbuffer.h \ + include/acpi/acpi_bus.h \ + $(wildcard include/config/ACPI_SYSTEM_POWER_STATES_SUPPORT) \ + $(wildcard include/config/ACPI_SLEEP) \ + include/acpi/acpi_drivers.h \ + $(wildcard include/config/ACPI_DOCK) \ + include/acpi/acpi_numa.h \ + $(wildcard include/config/ACPI_HMAT) \ + include/acpi/acpi_io.h \ + arch/x86/include/asm/acpi.h \ + $(wildcard include/config/ACPI_APEI) \ + include/acpi/pdc_intel.h \ + arch/x86/include/asm/numa.h \ + $(wildcard include/config/NUMA_EMU) \ + include/linux/regulator/consumer.h \ + $(wildcard include/config/REGULATOR) \ + include/linux/suspend.h \ + $(wildcard include/config/VT) \ + $(wildcard include/config/SUSPEND) \ + $(wildcard include/config/HIBERNATION_SNAPSHOT_DEV) \ + $(wildcard include/config/PM_SLEEP_DEBUG) \ + $(wildcard include/config/PM_AUTOSLEEP) \ + include/linux/swap.h \ + $(wildcard include/config/FRONTSWAP) \ + $(wildcard include/config/MEMCG_SWAP) \ + include/linux/memcontrol.h \ + include/linux/cgroup.h \ + $(wildcard include/config/CGROUP_CPUACCT) \ + $(wildcard include/config/SOCK_CGROUP_DATA) \ + $(wildcard include/config/CGROUP_DATA) \ + $(wildcard include/config/CGROUP_BPF) \ + include/uapi/linux/cgroupstats.h \ + include/uapi/linux/taskstats.h \ + include/linux/seq_file.h \ + include/linux/user_namespace.h \ + $(wildcard include/config/INOTIFY_USER) \ + $(wildcard include/config/FANOTIFY) \ + $(wildcard include/config/PERSISTENT_KEYRINGS) \ + include/linux/kernel_stat.h \ + include/linux/cgroup-defs.h \ + $(wildcard include/config/CGROUP_NET_CLASSID) \ + $(wildcard include/config/CGROUP_NET_PRIO) \ + include/linux/u64_stats_sync.h \ + arch/x86/include/generated/asm/local64.h \ + include/asm-generic/local64.h \ + arch/x86/include/asm/local.h \ + include/linux/bpf-cgroup.h \ + include/linux/bpf.h \ + $(wildcard include/config/BPF_JIT_ALWAYS_ON) \ + $(wildcard include/config/INET) \ + include/uapi/linux/bpf.h \ + $(wildcard include/config/BPF_LIRC_MODE2) \ + $(wildcard include/config/EFFICIENT_UNALIGNED_ACCESS) \ + $(wildcard include/config/IP_ROUTE_CLASSID) \ + $(wildcard include/config/BPF_KPROBE_OVERRIDE) \ + $(wildcard include/config/XFRM) \ + include/uapi/linux/bpf_common.h \ + include/linux/file.h \ + include/linux/sched/mm.h \ + $(wildcard include/config/ARCH_HAS_MEMBARRIER_CALLBACKS) \ + include/linux/sync_core.h \ + $(wildcard include/config/ARCH_HAS_SYNC_CORE_BEFORE_USERMODE) \ + arch/x86/include/asm/sync_core.h \ + include/linux/bpfptr.h \ + include/linux/sockptr.h \ + include/linux/bpf_types.h \ + $(wildcard include/config/BPF_LSM) \ + $(wildcard include/config/XDP_SOCKETS) \ + include/linux/psi_types.h \ + include/linux/kthread.h \ + include/linux/cgroup_subsys.h \ + $(wildcard include/config/CGROUP_DEVICE) \ + $(wildcard include/config/CGROUP_FREEZER) \ + $(wildcard include/config/CGROUP_PERF) \ + $(wildcard include/config/CGROUP_HUGETLB) \ + $(wildcard include/config/CGROUP_PIDS) \ + $(wildcard include/config/CGROUP_RDMA) \ + $(wildcard include/config/CGROUP_MISC) \ + $(wildcard include/config/CGROUP_DEBUG) \ + include/linux/page_counter.h \ + include/linux/vmpressure.h \ + include/linux/eventfd.h \ + include/linux/writeback.h \ + include/linux/flex_proportions.h \ + include/linux/backing-dev-defs.h \ + $(wildcard include/config/DEBUG_FS) \ + include/linux/blk_types.h \ + $(wildcard include/config/FAIL_MAKE_REQUEST) \ + $(wildcard include/config/BLK_CGROUP_IOCOST) \ + $(wildcard include/config/BLK_INLINE_ENCRYPTION) \ + $(wildcard include/config/BLK_DEV_INTEGRITY) \ + include/linux/bvec.h \ + include/linux/highmem.h \ + arch/x86/include/asm/cacheflush.h \ + include/asm-generic/cacheflush.h \ + include/linux/highmem-internal.h \ + include/linux/blk-cgroup.h \ + $(wildcard include/config/BLK_CGROUP_FC_APPID) \ + include/linux/blkdev.h \ + $(wildcard include/config/BLK_RQ_ALLOC_TIME) \ + $(wildcard include/config/BLK_WBT) \ + $(wildcard include/config/BLK_DEV_ZONED) \ + $(wildcard include/config/BLK_DEV_THROTTLING) \ + $(wildcard include/config/BLK_DEBUG_FS) \ + include/linux/sched/clock.h \ + $(wildcard include/config/HAVE_UNSTABLE_SCHED_CLOCK) \ + include/uapi/linux/major.h \ + include/linux/genhd.h \ + $(wildcard include/config/BLOCK_HOLDER_DEPRECATED) \ + $(wildcard include/config/CDROM) \ + include/linux/mempool.h \ + include/linux/bio.h \ + include/uapi/linux/blkzoned.h \ + include/linux/sbitmap.h \ + include/linux/elevator.h \ + include/linux/hashtable.h \ + include/linux/blk-mq.h \ + $(wildcard include/config/FAIL_IO_TIMEOUT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/pagemap.h \ + include/linux/hugetlb_inline.h \ + include/uapi/linux/mempolicy.h \ + include/linux/freezer.h \ + include/uapi/linux/i2c.h \ + include/linux/backlight.h \ + $(wildcard include/config/BACKLIGHT_CLASS_DEVICE) \ + include/linux/poll.h \ + include/uapi/linux/poll.h \ + arch/x86/include/generated/uapi/asm/poll.h \ + include/uapi/asm-generic/poll.h \ + include/uapi/linux/eventpoll.h \ + include/linux/aio.h \ + include/linux/splice.h \ + include/linux/pipe_fs_i.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/linux/cpuset.h \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/version.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o): diff --git a/host_software/driver/XDMA/linux-kernel/xdma/.xdma_thread.o.cmd b/host_software/driver/XDMA/linux-kernel/xdma/.xdma_thread.o.cmd new file mode 100644 index 0000000..f660431 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/.xdma_thread.o.cmd @@ -0,0 +1,1152 @@ +cmd_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o := gcc -Wp,-MMD,/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/.xdma_thread.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/9/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mfunction-return=thunk-extern -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -g -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/include -fsanitize=bounds -fsanitize=shift -fsanitize=bool -fsanitize=enum -DMODULE -DKBUILD_BASENAME='"xdma_thread"' -DKBUILD_MODNAME='"xdma"' -D__KBUILD_MODNAME=kmod_xdma -c -o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.c + +source_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o := /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.c + +deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o := \ + include/linux/compiler-version.h \ + $(wildcard include/config/CC_VERSION_TEXT) \ + include/linux/kconfig.h \ + $(wildcard include/config/CPU_BIG_ENDIAN) \ + $(wildcard include/config/BOOGER) \ + $(wildcard include/config/FOO) \ + include/linux/compiler_types.h \ + $(wildcard include/config/HAVE_ARCH_COMPILER_H) \ + $(wildcard include/config/CC_HAS_ASM_INLINE) \ + include/linux/compiler_attributes.h \ + include/linux/compiler-gcc.h \ + $(wildcard include/config/RETPOLINE) \ + $(wildcard include/config/ARCH_USE_BUILTIN_BSWAP) \ + $(wildcard include/config/KCOV) \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h \ + include/generated/uapi/linux/version.h \ + include/linux/spinlock.h \ + $(wildcard include/config/SMP) \ + $(wildcard include/config/DEBUG_SPINLOCK) \ + $(wildcard include/config/PREEMPTION) \ + $(wildcard include/config/DEBUG_LOCK_ALLOC) \ + $(wildcard include/config/PREEMPT_RT) \ + include/linux/typecheck.h \ + include/linux/preempt.h \ + $(wildcard include/config/PREEMPT_COUNT) \ + $(wildcard include/config/DEBUG_PREEMPT) \ + $(wildcard include/config/TRACE_PREEMPT_TOGGLE) \ + $(wildcard include/config/PREEMPT_NOTIFIERS) \ + include/linux/linkage.h \ + $(wildcard include/config/ARCH_USE_SYM_ANNOTATIONS) \ + include/linux/compiler_types.h \ + include/linux/stringify.h \ + include/linux/export.h \ + $(wildcard include/config/MODVERSIONS) \ + $(wildcard include/config/MODULE_REL_CRCS) \ + $(wildcard include/config/HAVE_ARCH_PREL32_RELOCATIONS) \ + $(wildcard include/config/MODULES) \ + $(wildcard include/config/TRIM_UNUSED_KSYMS) \ + include/linux/compiler.h \ + $(wildcard include/config/TRACE_BRANCH_PROFILING) \ + $(wildcard include/config/PROFILE_ALL_BRANCHES) \ + $(wildcard include/config/STACK_VALIDATION) \ + $(wildcard include/config/CFI_CLANG) \ + arch/x86/include/generated/asm/rwonce.h \ + include/asm-generic/rwonce.h \ + include/linux/kasan-checks.h \ + $(wildcard include/config/KASAN_GENERIC) \ + $(wildcard include/config/KASAN_SW_TAGS) \ + include/linux/types.h \ + $(wildcard include/config/HAVE_UID16) \ + $(wildcard include/config/UID16) \ + $(wildcard include/config/ARCH_DMA_ADDR_T_64BIT) \ + $(wildcard include/config/PHYS_ADDR_T_64BIT) \ + $(wildcard include/config/64BIT) \ + $(wildcard include/config/ARCH_32BIT_USTAT_F_TINODE) \ + include/uapi/linux/types.h \ + arch/x86/include/generated/uapi/asm/types.h \ + include/uapi/asm-generic/types.h \ + include/asm-generic/int-ll64.h \ + include/uapi/asm-generic/int-ll64.h \ + arch/x86/include/uapi/asm/bitsperlong.h \ + include/asm-generic/bitsperlong.h \ + include/uapi/asm-generic/bitsperlong.h \ + include/uapi/linux/posix_types.h \ + include/linux/stddef.h \ + include/uapi/linux/stddef.h \ + arch/x86/include/asm/posix_types.h \ + $(wildcard include/config/X86_32) \ + arch/x86/include/uapi/asm/posix_types_64.h \ + include/uapi/asm-generic/posix_types.h \ + include/linux/kcsan-checks.h \ + $(wildcard include/config/KCSAN) \ + $(wildcard include/config/KCSAN_IGNORE_ATOMICS) \ + arch/x86/include/asm/linkage.h \ + $(wildcard include/config/X86_64) \ + $(wildcard include/config/X86_ALIGNMENT_16) \ + $(wildcard include/config/RETHUNK) \ + $(wildcard include/config/SLS) \ + include/linux/list.h \ + $(wildcard include/config/DEBUG_LIST) \ + include/linux/poison.h \ + $(wildcard include/config/ILLEGAL_POINTER_VALUE) \ + include/linux/const.h \ + include/vdso/const.h \ + include/uapi/linux/const.h \ + include/linux/kernel.h \ + $(wildcard include/config/PREEMPT_VOLUNTARY) \ + $(wildcard include/config/PREEMPT_DYNAMIC) \ + $(wildcard include/config/PREEMPT_) \ + $(wildcard include/config/DEBUG_ATOMIC_SLEEP) \ + $(wildcard include/config/MMU) \ + $(wildcard include/config/PROVE_LOCKING) \ + $(wildcard include/config/TRACING) \ + $(wildcard include/config/FTRACE_MCOUNT_RECORD) \ + include/linux/stdarg.h \ + include/linux/align.h \ + include/linux/limits.h \ + include/uapi/linux/limits.h \ + include/vdso/limits.h \ + include/linux/bitops.h \ + include/linux/bits.h \ + include/vdso/bits.h \ + include/linux/build_bug.h \ + include/uapi/linux/kernel.h \ + include/uapi/linux/sysinfo.h \ + arch/x86/include/asm/bitops.h \ + $(wildcard include/config/X86_CMOV) \ + arch/x86/include/asm/alternative.h \ + arch/x86/include/asm/asm.h \ + $(wildcard include/config/KPROBES) \ + arch/x86/include/asm/extable_fixup_types.h \ + arch/x86/include/asm/rmwcc.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO) \ + arch/x86/include/asm/barrier.h \ + arch/x86/include/asm/nops.h \ + include/asm-generic/barrier.h \ + include/asm-generic/bitops/find.h \ + $(wildcard include/config/GENERIC_FIND_FIRST_BIT) \ + include/asm-generic/bitops/sched.h \ + arch/x86/include/asm/arch_hweight.h \ + arch/x86/include/asm/cpufeatures.h \ + arch/x86/include/asm/required-features.h \ + $(wildcard include/config/X86_MINIMUM_CPU_FAMILY) \ + $(wildcard include/config/MATH_EMULATION) \ + $(wildcard include/config/X86_PAE) \ + $(wildcard include/config/X86_CMPXCHG64) \ + $(wildcard include/config/X86_USE_3DNOW) \ + $(wildcard include/config/X86_P6_NOP) \ + $(wildcard include/config/MATOM) \ + $(wildcard include/config/PARAVIRT_XXL) \ + arch/x86/include/asm/disabled-features.h \ + $(wildcard include/config/X86_SMAP) \ + $(wildcard include/config/X86_UMIP) \ + $(wildcard include/config/X86_INTEL_MEMORY_PROTECTION_KEYS) \ + $(wildcard include/config/X86_5LEVEL) \ + $(wildcard include/config/PAGE_TABLE_ISOLATION) \ + $(wildcard include/config/CPU_UNRET_ENTRY) \ + $(wildcard include/config/X86_SGX) \ + include/asm-generic/bitops/const_hweight.h \ + include/asm-generic/bitops/instrumented-atomic.h \ + include/linux/instrumented.h \ + include/asm-generic/bitops/instrumented-non-atomic.h \ + $(wildcard include/config/KCSAN_ASSUME_PLAIN_WRITES_ATOMIC) \ + include/asm-generic/bitops/instrumented-lock.h \ + include/asm-generic/bitops/le.h \ + arch/x86/include/uapi/asm/byteorder.h \ + include/linux/byteorder/little_endian.h \ + include/uapi/linux/byteorder/little_endian.h \ + include/linux/swab.h \ + include/uapi/linux/swab.h \ + arch/x86/include/uapi/asm/swab.h \ + include/linux/byteorder/generic.h \ + include/asm-generic/bitops/ext2-atomic-setbit.h \ + include/linux/kstrtox.h \ + include/linux/log2.h \ + $(wildcard include/config/ARCH_HAS_ILOG2_U32) \ + $(wildcard include/config/ARCH_HAS_ILOG2_U64) \ + include/linux/math.h \ + arch/x86/include/asm/div64.h \ + include/asm-generic/div64.h \ + include/linux/minmax.h \ + include/linux/panic.h \ + $(wildcard include/config/PANIC_TIMEOUT) \ + include/linux/printk.h \ + $(wildcard include/config/MESSAGE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_DEFAULT) \ + $(wildcard include/config/CONSOLE_LOGLEVEL_QUIET) \ + $(wildcard include/config/EARLY_PRINTK) \ + $(wildcard include/config/PRINTK) \ + $(wildcard include/config/PRINTK_INDEX) \ + $(wildcard include/config/DYNAMIC_DEBUG) \ + $(wildcard include/config/DYNAMIC_DEBUG_CORE) \ + include/linux/init.h \ + $(wildcard include/config/STRICT_KERNEL_RWX) \ + $(wildcard include/config/STRICT_MODULE_RWX) \ + $(wildcard include/config/LTO_CLANG) \ + include/linux/kern_levels.h \ + include/linux/cache.h \ + $(wildcard include/config/ARCH_HAS_CACHE_LINE_SIZE) \ + arch/x86/include/asm/cache.h \ + $(wildcard include/config/X86_L1_CACHE_SHIFT) \ + $(wildcard include/config/X86_INTERNODE_CACHE_SHIFT) \ + $(wildcard include/config/X86_VSMP) \ + include/linux/ratelimit_types.h \ + include/uapi/linux/param.h \ + arch/x86/include/generated/uapi/asm/param.h \ + include/asm-generic/param.h \ + $(wildcard include/config/HZ) \ + include/uapi/asm-generic/param.h \ + include/linux/spinlock_types.h \ + include/linux/spinlock_types_raw.h \ + arch/x86/include/asm/spinlock_types.h \ + include/asm-generic/qspinlock_types.h \ + $(wildcard include/config/NR_CPUS) \ + include/asm-generic/qrwlock_types.h \ + include/linux/lockdep_types.h \ + $(wildcard include/config/PROVE_RAW_LOCK_NESTING) \ + $(wildcard include/config/PREEMPT_LOCK) \ + $(wildcard include/config/LOCKDEP) \ + $(wildcard include/config/LOCK_STAT) \ + include/linux/rwlock_types.h \ + include/linux/once_lite.h \ + include/linux/dynamic_debug.h \ + $(wildcard include/config/JUMP_LABEL) \ + include/linux/jump_label.h \ + $(wildcard include/config/HAVE_ARCH_JUMP_LABEL_RELATIVE) \ + arch/x86/include/asm/jump_label.h \ + include/linux/static_call_types.h \ + $(wildcard include/config/HAVE_STATIC_CALL) \ + $(wildcard include/config/HAVE_STATIC_CALL_INLINE) \ + arch/x86/include/asm/preempt.h \ + arch/x86/include/asm/percpu.h \ + $(wildcard include/config/X86_64_SMP) \ + include/asm-generic/percpu.h \ + $(wildcard include/config/HAVE_SETUP_PER_CPU_AREA) \ + include/linux/threads.h \ + $(wildcard include/config/BASE_SMALL) \ + include/linux/percpu-defs.h \ + $(wildcard include/config/DEBUG_FORCE_WEAK_PER_CPU) \ + $(wildcard include/config/AMD_MEM_ENCRYPT) \ + include/linux/thread_info.h \ + $(wildcard include/config/THREAD_INFO_IN_TASK) \ + $(wildcard include/config/GENERIC_ENTRY) \ + $(wildcard include/config/HAVE_ARCH_WITHIN_STACK_FRAMES) \ + $(wildcard include/config/HARDENED_USERCOPY) \ + include/linux/bug.h \ + $(wildcard include/config/GENERIC_BUG) \ + $(wildcard include/config/BUG_ON_DATA_CORRUPTION) \ + arch/x86/include/asm/bug.h \ + $(wildcard include/config/DEBUG_BUGVERBOSE) \ + include/linux/instrumentation.h \ + $(wildcard include/config/DEBUG_ENTRY) \ + include/asm-generic/bug.h \ + $(wildcard include/config/BUG) \ + $(wildcard include/config/GENERIC_BUG_RELATIVE_POINTERS) \ + include/linux/restart_block.h \ + include/linux/time64.h \ + include/linux/math64.h \ + $(wildcard include/config/ARCH_SUPPORTS_INT128) \ + include/vdso/math64.h \ + include/vdso/time64.h \ + include/uapi/linux/time.h \ + include/uapi/linux/time_types.h \ + include/linux/errno.h \ + include/uapi/linux/errno.h \ + arch/x86/include/generated/uapi/asm/errno.h \ + include/uapi/asm-generic/errno.h \ + include/uapi/asm-generic/errno-base.h \ + arch/x86/include/asm/current.h \ + arch/x86/include/asm/thread_info.h \ + $(wildcard include/config/VM86) \ + $(wildcard include/config/X86_IOPL_IOPERM) \ + $(wildcard include/config/FRAME_POINTER) \ + $(wildcard include/config/COMPAT) \ + $(wildcard include/config/IA32_EMULATION) \ + arch/x86/include/asm/page.h \ + arch/x86/include/asm/page_types.h \ + $(wildcard include/config/PHYSICAL_START) \ + $(wildcard include/config/PHYSICAL_ALIGN) \ + $(wildcard include/config/DYNAMIC_PHYSICAL_MASK) \ + include/linux/mem_encrypt.h \ + $(wildcard include/config/ARCH_HAS_MEM_ENCRYPT) \ + arch/x86/include/asm/mem_encrypt.h \ + include/linux/cc_platform.h \ + $(wildcard include/config/ARCH_HAS_CC_PLATFORM) \ + arch/x86/include/uapi/asm/bootparam.h \ + include/linux/screen_info.h \ + include/uapi/linux/screen_info.h \ + include/linux/apm_bios.h \ + include/uapi/linux/apm_bios.h \ + include/uapi/linux/ioctl.h \ + arch/x86/include/generated/uapi/asm/ioctl.h \ + include/asm-generic/ioctl.h \ + include/uapi/asm-generic/ioctl.h \ + include/linux/edd.h \ + include/uapi/linux/edd.h \ + arch/x86/include/asm/ist.h \ + arch/x86/include/uapi/asm/ist.h \ + include/video/edid.h \ + $(wildcard include/config/X86) \ + include/uapi/video/edid.h \ + arch/x86/include/asm/page_64_types.h \ + $(wildcard include/config/KASAN) \ + $(wildcard include/config/DYNAMIC_MEMORY_LAYOUT) \ + $(wildcard include/config/RANDOMIZE_BASE) \ + arch/x86/include/asm/kaslr.h \ + $(wildcard include/config/RANDOMIZE_MEMORY) \ + arch/x86/include/asm/page_64.h \ + $(wildcard include/config/DEBUG_VIRTUAL) \ + $(wildcard include/config/FLATMEM) \ + $(wildcard include/config/X86_VSYSCALL_EMULATION) \ + include/linux/range.h \ + include/asm-generic/memory_model.h \ + $(wildcard include/config/SPARSEMEM_VMEMMAP) \ + $(wildcard include/config/SPARSEMEM) \ + include/linux/pfn.h \ + include/asm-generic/getorder.h \ + arch/x86/include/asm/cpufeature.h \ + $(wildcard include/config/X86_FEATURE_NAMES) \ + arch/x86/include/asm/processor.h \ + $(wildcard include/config/X86_VMX_FEATURE_NAMES) \ + $(wildcard include/config/STACKPROTECTOR) \ + $(wildcard include/config/X86_DEBUGCTLMSR) \ + $(wildcard include/config/CPU_SUP_AMD) \ + $(wildcard include/config/XEN) \ + arch/x86/include/asm/processor-flags.h \ + arch/x86/include/uapi/asm/processor-flags.h \ + arch/x86/include/asm/math_emu.h \ + arch/x86/include/asm/ptrace.h \ + $(wildcard include/config/PARAVIRT) \ + arch/x86/include/asm/segment.h \ + $(wildcard include/config/XEN_PV) \ + arch/x86/include/uapi/asm/ptrace.h \ + arch/x86/include/uapi/asm/ptrace-abi.h \ + arch/x86/include/asm/paravirt_types.h \ + $(wildcard include/config/PGTABLE_LEVELS) \ + $(wildcard include/config/PARAVIRT_DEBUG) \ + arch/x86/include/asm/desc_defs.h \ + arch/x86/include/asm/pgtable_types.h \ + $(wildcard include/config/MEM_SOFT_DIRTY) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_WP) \ + $(wildcard include/config/PROC_FS) \ + arch/x86/include/asm/pgtable_64_types.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL_FORCE_MAP) \ + arch/x86/include/asm/sparsemem.h \ + $(wildcard include/config/NUMA_KEEP_MEMINFO) \ + arch/x86/include/asm/nospec-branch.h \ + $(wildcard include/config/CPU_IBPB_ENTRY) \ + include/linux/static_key.h \ + include/linux/objtool.h \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/unwind_hints.h \ + arch/x86/include/asm/orc_types.h \ + arch/x86/include/asm/GEN-for-each-reg.h \ + arch/x86/include/asm/proto.h \ + arch/x86/include/uapi/asm/ldt.h \ + arch/x86/include/uapi/asm/sigcontext.h \ + arch/x86/include/asm/msr.h \ + $(wildcard include/config/TRACEPOINTS) \ + arch/x86/include/asm/msr-index.h \ + arch/x86/include/asm/cpumask.h \ + include/linux/cpumask.h \ + $(wildcard include/config/CPUMASK_OFFSTACK) \ + $(wildcard include/config/HOTPLUG_CPU) \ + $(wildcard include/config/DEBUG_PER_CPU_MAPS) \ + include/linux/bitmap.h \ + include/linux/string.h \ + $(wildcard include/config/BINARY_PRINTF) \ + $(wildcard include/config/FORTIFY_SOURCE) \ + include/uapi/linux/string.h \ + arch/x86/include/asm/string.h \ + arch/x86/include/asm/string_64.h \ + $(wildcard include/config/ARCH_HAS_UACCESS_FLUSHCACHE) \ + include/linux/fortify-string.h \ + include/linux/atomic.h \ + arch/x86/include/asm/atomic.h \ + arch/x86/include/asm/cmpxchg.h \ + arch/x86/include/asm/cmpxchg_64.h \ + arch/x86/include/asm/atomic64_64.h \ + include/linux/atomic/atomic-arch-fallback.h \ + $(wildcard include/config/GENERIC_ATOMIC64) \ + include/linux/atomic/atomic-long.h \ + include/linux/atomic/atomic-instrumented.h \ + arch/x86/include/uapi/asm/msr.h \ + include/linux/tracepoint-defs.h \ + arch/x86/include/asm/paravirt.h \ + $(wildcard include/config/PARAVIRT_SPINLOCKS) \ + arch/x86/include/asm/frame.h \ + arch/x86/include/asm/special_insns.h \ + include/linux/irqflags.h \ + $(wildcard include/config/TRACE_IRQFLAGS) \ + $(wildcard include/config/IRQSOFF_TRACER) \ + $(wildcard include/config/PREEMPT_TRACER) \ + $(wildcard include/config/DEBUG_IRQFLAGS) \ + $(wildcard include/config/TRACE_IRQFLAGS_SUPPORT) \ + arch/x86/include/asm/irqflags.h \ + arch/x86/include/asm/fpu/types.h \ + arch/x86/include/asm/vmxfeatures.h \ + arch/x86/include/asm/vdso/processor.h \ + include/linux/personality.h \ + include/uapi/linux/personality.h \ + include/linux/err.h \ + include/linux/bottom_half.h \ + include/linux/lockdep.h \ + $(wildcard include/config/DEBUG_LOCKING_API_SELFTESTS) \ + include/linux/smp.h \ + $(wildcard include/config/UP_LATE_INIT) \ + include/linux/smp_types.h \ + include/linux/llist.h \ + $(wildcard include/config/ARCH_HAVE_NMI_SAFE_CMPXCHG) \ + arch/x86/include/asm/smp.h \ + $(wildcard include/config/X86_LOCAL_APIC) \ + $(wildcard include/config/DEBUG_NMI_SELFTEST) \ + arch/x86/include/generated/asm/mmiowb.h \ + include/asm-generic/mmiowb.h \ + $(wildcard include/config/MMIOWB) \ + arch/x86/include/asm/spinlock.h \ + arch/x86/include/asm/qspinlock.h \ + include/asm-generic/qspinlock.h \ + arch/x86/include/asm/qrwlock.h \ + include/asm-generic/qrwlock.h \ + include/linux/rwlock.h \ + $(wildcard include/config/PREEMPT) \ + include/linux/spinlock_api_smp.h \ + $(wildcard include/config/INLINE_SPIN_LOCK) \ + $(wildcard include/config/INLINE_SPIN_LOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK) \ + $(wildcard include/config/INLINE_SPIN_TRYLOCK_BH) \ + $(wildcard include/config/UNINLINE_SPIN_UNLOCK) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_BH) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_SPIN_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/GENERIC_LOCKBREAK) \ + include/linux/rwlock_api_smp.h \ + $(wildcard include/config/INLINE_READ_LOCK) \ + $(wildcard include/config/INLINE_WRITE_LOCK) \ + $(wildcard include/config/INLINE_READ_LOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_LOCK_BH) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_WRITE_LOCK_IRQSAVE) \ + $(wildcard include/config/INLINE_READ_TRYLOCK) \ + $(wildcard include/config/INLINE_WRITE_TRYLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK) \ + $(wildcard include/config/INLINE_READ_UNLOCK_BH) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_BH) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQ) \ + $(wildcard include/config/INLINE_READ_UNLOCK_IRQRESTORE) \ + $(wildcard include/config/INLINE_WRITE_UNLOCK_IRQRESTORE) \ + include/linux/kthread.h \ + $(wildcard include/config/BLK_CGROUP) \ + include/linux/sched.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_NATIVE) \ + $(wildcard include/config/SCHED_INFO) \ + $(wildcard include/config/SCHEDSTATS) \ + $(wildcard include/config/FAIR_GROUP_SCHED) \ + $(wildcard include/config/RT_GROUP_SCHED) \ + $(wildcard include/config/RT_MUTEXES) \ + $(wildcard include/config/UCLAMP_TASK) \ + $(wildcard include/config/UCLAMP_BUCKETS_COUNT) \ + $(wildcard include/config/KMAP_LOCAL) \ + $(wildcard include/config/SCHED_CORE) \ + $(wildcard include/config/CGROUP_SCHED) \ + $(wildcard include/config/BLK_DEV_IO_TRACE) \ + $(wildcard include/config/PREEMPT_RCU) \ + $(wildcard include/config/TASKS_RCU) \ + $(wildcard include/config/TASKS_TRACE_RCU) \ + $(wildcard include/config/PSI) \ + $(wildcard include/config/MEMCG) \ + $(wildcard include/config/COMPAT_BRK) \ + $(wildcard include/config/CGROUPS) \ + $(wildcard include/config/PAGE_OWNER) \ + $(wildcard include/config/EVENTFD) \ + $(wildcard include/config/ARCH_HAS_SCALED_CPUTIME) \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING_GEN) \ + $(wildcard include/config/NO_HZ_FULL) \ + $(wildcard include/config/POSIX_CPUTIMERS) \ + $(wildcard include/config/POSIX_CPU_TIMERS_TASK_WORK) \ + $(wildcard include/config/KEYS) \ + $(wildcard include/config/SYSVIPC) \ + $(wildcard include/config/DETECT_HUNG_TASK) \ + $(wildcard include/config/IO_URING) \ + $(wildcard include/config/AUDIT) \ + $(wildcard include/config/AUDITSYSCALL) \ + $(wildcard include/config/DEBUG_MUTEXES) \ + $(wildcard include/config/UBSAN) \ + $(wildcard include/config/UBSAN_TRAP) \ + $(wildcard include/config/BLOCK) \ + $(wildcard include/config/COMPACTION) \ + $(wildcard include/config/TASK_XACCT) \ + $(wildcard include/config/CPUSETS) \ + $(wildcard include/config/X86_CPU_RESCTRL) \ + $(wildcard include/config/FUTEX) \ + $(wildcard include/config/PERF_EVENTS) \ + $(wildcard include/config/NUMA) \ + $(wildcard include/config/NUMA_BALANCING) \ + $(wildcard include/config/RSEQ) \ + $(wildcard include/config/TASK_DELAY_ACCT) \ + $(wildcard include/config/FAULT_INJECTION) \ + $(wildcard include/config/LATENCYTOP) \ + $(wildcard include/config/KUNIT) \ + $(wildcard include/config/FUNCTION_GRAPH_TRACER) \ + $(wildcard include/config/UPROBES) \ + $(wildcard include/config/BCACHE) \ + $(wildcard include/config/VMAP_STACK) \ + $(wildcard include/config/LIVEPATCH) \ + $(wildcard include/config/SECURITY) \ + $(wildcard include/config/BPF_SYSCALL) \ + $(wildcard include/config/GCC_PLUGIN_STACKLEAK) \ + $(wildcard include/config/X86_MCE) \ + $(wildcard include/config/KRETPROBES) \ + $(wildcard include/config/ARCH_HAS_PARANOID_L1D_FLUSH) \ + $(wildcard include/config/ARCH_TASK_STRUCT_ON_STACK) \ + $(wildcard include/config/DEBUG_RSEQ) \ + include/uapi/linux/sched.h \ + include/linux/pid.h \ + include/linux/rculist.h \ + $(wildcard include/config/PROVE_RCU_LIST) \ + include/linux/rcupdate.h \ + $(wildcard include/config/TINY_RCU) \ + $(wildcard include/config/TASKS_RCU_GENERIC) \ + $(wildcard include/config/RCU_STALL_COMMON) \ + $(wildcard include/config/RCU_NOCB_CPU) \ + $(wildcard include/config/TASKS_RUDE_RCU) \ + $(wildcard include/config/TREE_RCU) \ + $(wildcard include/config/DEBUG_OBJECTS_RCU_HEAD) \ + $(wildcard include/config/PROVE_RCU) \ + $(wildcard include/config/ARCH_WEAK_RELEASE_ACQUIRE) \ + include/linux/rcutree.h \ + include/linux/wait.h \ + include/uapi/linux/wait.h \ + include/linux/refcount.h \ + include/linux/sem.h \ + include/uapi/linux/sem.h \ + include/linux/ipc.h \ + include/linux/uidgid.h \ + $(wildcard include/config/MULTIUSER) \ + $(wildcard include/config/USER_NS) \ + include/linux/highuid.h \ + include/linux/rhashtable-types.h \ + include/linux/mutex.h \ + $(wildcard include/config/MUTEX_SPIN_ON_OWNER) \ + include/linux/osq_lock.h \ + include/linux/debug_locks.h \ + include/linux/workqueue.h \ + $(wildcard include/config/DEBUG_OBJECTS_WORK) \ + $(wildcard include/config/FREEZER) \ + $(wildcard include/config/SYSFS) \ + $(wildcard include/config/WQ_WATCHDOG) \ + include/linux/timer.h \ + $(wildcard include/config/DEBUG_OBJECTS_TIMERS) \ + $(wildcard include/config/NO_HZ_COMMON) \ + include/linux/ktime.h \ + include/linux/time.h \ + $(wildcard include/config/POSIX_TIMERS) \ + include/linux/time32.h \ + include/linux/timex.h \ + include/uapi/linux/timex.h \ + arch/x86/include/asm/timex.h \ + $(wildcard include/config/X86_TSC) \ + arch/x86/include/asm/tsc.h \ + include/vdso/time32.h \ + include/vdso/time.h \ + include/linux/jiffies.h \ + include/vdso/jiffies.h \ + include/generated/timeconst.h \ + include/vdso/ktime.h \ + include/linux/timekeeping.h \ + $(wildcard include/config/GENERIC_CMOS_UPDATE) \ + include/linux/clocksource_ids.h \ + include/linux/debugobjects.h \ + $(wildcard include/config/DEBUG_OBJECTS) \ + $(wildcard include/config/DEBUG_OBJECTS_FREE) \ + include/uapi/linux/ipc.h \ + arch/x86/include/generated/uapi/asm/ipcbuf.h \ + include/uapi/asm-generic/ipcbuf.h \ + arch/x86/include/uapi/asm/sembuf.h \ + include/linux/shm.h \ + include/uapi/linux/shm.h \ + include/uapi/asm-generic/hugetlb_encode.h \ + arch/x86/include/uapi/asm/shmbuf.h \ + include/uapi/asm-generic/shmbuf.h \ + arch/x86/include/asm/shmparam.h \ + include/linux/plist.h \ + $(wildcard include/config/DEBUG_PLIST) \ + include/linux/hrtimer.h \ + $(wildcard include/config/HIGH_RES_TIMERS) \ + $(wildcard include/config/TIME_LOW_RES) \ + $(wildcard include/config/TIMERFD) \ + include/linux/hrtimer_defs.h \ + include/linux/rbtree.h \ + include/linux/rbtree_types.h \ + include/linux/percpu.h \ + $(wildcard include/config/NEED_PER_CPU_EMBED_FIRST_CHUNK) \ + $(wildcard include/config/NEED_PER_CPU_PAGE_FIRST_CHUNK) \ + include/linux/mmdebug.h \ + $(wildcard include/config/DEBUG_VM) \ + $(wildcard include/config/DEBUG_VM_PGFLAGS) \ + include/linux/seqlock.h \ + include/linux/ww_mutex.h \ + $(wildcard include/config/DEBUG_RT_MUTEXES) \ + $(wildcard include/config/DEBUG_WW_MUTEX_SLOWPATH) \ + include/linux/rtmutex.h \ + include/linux/timerqueue.h \ + include/linux/seccomp.h \ + $(wildcard include/config/SECCOMP) \ + $(wildcard include/config/HAVE_ARCH_SECCOMP_FILTER) \ + $(wildcard include/config/SECCOMP_FILTER) \ + $(wildcard include/config/CHECKPOINT_RESTORE) \ + $(wildcard include/config/SECCOMP_CACHE_DEBUG) \ + include/uapi/linux/seccomp.h \ + arch/x86/include/asm/seccomp.h \ + arch/x86/include/asm/unistd.h \ + arch/x86/include/uapi/asm/unistd.h \ + arch/x86/include/generated/uapi/asm/unistd_64.h \ + arch/x86/include/generated/asm/unistd_64_x32.h \ + arch/x86/include/generated/asm/unistd_32_ia32.h \ + arch/x86/include/asm/ia32_unistd.h \ + include/asm-generic/seccomp.h \ + include/uapi/linux/unistd.h \ + include/linux/nodemask.h \ + $(wildcard include/config/HIGHMEM) \ + include/linux/numa.h \ + $(wildcard include/config/NODES_SHIFT) \ + include/linux/resource.h \ + include/uapi/linux/resource.h \ + arch/x86/include/generated/uapi/asm/resource.h \ + include/asm-generic/resource.h \ + include/uapi/asm-generic/resource.h \ + include/linux/latencytop.h \ + include/linux/sched/prio.h \ + include/linux/sched/types.h \ + include/linux/signal_types.h \ + $(wildcard include/config/OLD_SIGACTION) \ + include/uapi/linux/signal.h \ + arch/x86/include/asm/signal.h \ + arch/x86/include/uapi/asm/signal.h \ + include/uapi/asm-generic/signal-defs.h \ + arch/x86/include/uapi/asm/siginfo.h \ + include/uapi/asm-generic/siginfo.h \ + include/linux/syscall_user_dispatch.h \ + include/linux/mm_types_task.h \ + $(wildcard include/config/ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH) \ + $(wildcard include/config/SPLIT_PTLOCK_CPUS) \ + $(wildcard include/config/ARCH_ENABLE_SPLIT_PMD_PTLOCK) \ + arch/x86/include/asm/tlbbatch.h \ + include/linux/task_io_accounting.h \ + $(wildcard include/config/TASK_IO_ACCOUNTING) \ + include/linux/posix-timers.h \ + include/linux/alarmtimer.h \ + $(wildcard include/config/RTC_CLASS) \ + include/linux/task_work.h \ + include/uapi/linux/rseq.h \ + include/linux/kcsan.h \ + arch/x86/include/generated/asm/kmap_size.h \ + include/asm-generic/kmap_size.h \ + $(wildcard include/config/DEBUG_KMAP_LOCAL) \ + include/linux/cpuset.h \ + include/linux/sched/topology.h \ + $(wildcard include/config/SCHED_DEBUG) \ + $(wildcard include/config/SCHED_SMT) \ + $(wildcard include/config/SCHED_MC) \ + $(wildcard include/config/ENERGY_MODEL) \ + $(wildcard include/config/CPU_FREQ_GOV_SCHEDUTIL) \ + include/linux/topology.h \ + $(wildcard include/config/USE_PERCPU_NUMA_NODE_ID) \ + $(wildcard include/config/HAVE_MEMORYLESS_NODES) \ + include/linux/arch_topology.h \ + $(wildcard include/config/GENERIC_ARCH_TOPOLOGY) \ + include/linux/mmzone.h \ + $(wildcard include/config/FORCE_MAX_ZONEORDER) \ + $(wildcard include/config/CMA) \ + $(wildcard include/config/MEMORY_ISOLATION) \ + $(wildcard include/config/ZSMALLOC) \ + $(wildcard include/config/SHADOW_CALL_STACK) \ + $(wildcard include/config/SWAP) \ + $(wildcard include/config/TRANSPARENT_HUGEPAGE) \ + $(wildcard include/config/ZONE_DMA) \ + $(wildcard include/config/ZONE_DMA32) \ + $(wildcard include/config/ZONE_DEVICE) \ + $(wildcard include/config/MEMORY_HOTPLUG) \ + $(wildcard include/config/PAGE_EXTENSION) \ + $(wildcard include/config/DEFERRED_STRUCT_PAGE_INIT) \ + $(wildcard include/config/SPARSEMEM_EXTREME) \ + $(wildcard include/config/HAVE_ARCH_PFN_VALID) \ + include/linux/pageblock-flags.h \ + $(wildcard include/config/HUGETLB_PAGE) \ + $(wildcard include/config/HUGETLB_PAGE_SIZE_VARIABLE) \ + include/linux/page-flags-layout.h \ + $(wildcard include/config/KASAN_HW_TAGS) \ + include/generated/bounds.h \ + include/linux/mm_types.h \ + $(wildcard include/config/HAVE_ALIGNED_STRUCT_PAGE) \ + $(wildcard include/config/USERFAULTFD) \ + $(wildcard include/config/HAVE_ARCH_COMPAT_MMAP_BASES) \ + $(wildcard include/config/MEMBARRIER) \ + $(wildcard include/config/AIO) \ + $(wildcard include/config/MMU_NOTIFIER) \ + $(wildcard include/config/IOMMU_SUPPORT) \ + include/linux/auxvec.h \ + include/uapi/linux/auxvec.h \ + arch/x86/include/uapi/asm/auxvec.h \ + include/linux/rwsem.h \ + $(wildcard include/config/RWSEM_SPIN_ON_OWNER) \ + $(wildcard include/config/DEBUG_RWSEMS) \ + include/linux/completion.h \ + include/linux/swait.h \ + include/linux/uprobes.h \ + arch/x86/include/asm/uprobes.h \ + include/linux/notifier.h \ + $(wildcard include/config/TREE_SRCU) \ + include/linux/srcu.h \ + $(wildcard include/config/TINY_SRCU) \ + $(wildcard include/config/SRCU) \ + include/linux/rcu_segcblist.h \ + include/linux/srcutree.h \ + include/linux/rcu_node_tree.h \ + $(wildcard include/config/RCU_FANOUT) \ + $(wildcard include/config/RCU_FANOUT_LEAF) \ + arch/x86/include/asm/mmu.h \ + $(wildcard include/config/MODIFY_LDT_SYSCALL) \ + include/linux/page-flags.h \ + $(wildcard include/config/ARCH_USES_PG_UNCACHED) \ + $(wildcard include/config/MEMORY_FAILURE) \ + $(wildcard include/config/PAGE_IDLE_FLAG) \ + $(wildcard include/config/THP_SWAP) \ + $(wildcard include/config/KSM) \ + include/linux/local_lock.h \ + include/linux/local_lock_internal.h \ + include/linux/memory_hotplug.h \ + $(wildcard include/config/ARCH_HAS_ADD_PAGES) \ + $(wildcard include/config/HAVE_ARCH_NODEDATA_EXTENSION) \ + $(wildcard include/config/MEMORY_HOTREMOVE) \ + arch/x86/include/asm/mmzone.h \ + arch/x86/include/asm/mmzone_64.h \ + arch/x86/include/asm/topology.h \ + $(wildcard include/config/SCHED_MC_PRIO) \ + $(wildcard include/config/ACPI_CPPC_LIB) \ + arch/x86/include/asm/mpspec.h \ + $(wildcard include/config/EISA) \ + $(wildcard include/config/X86_MPPARSE) \ + arch/x86/include/asm/mpspec_def.h \ + arch/x86/include/asm/x86_init.h \ + arch/x86/include/asm/apicdef.h \ + include/asm-generic/topology.h \ + include/linux/sched/idle.h \ + include/linux/sched/sd_flags.h \ + include/linux/sched/task.h \ + $(wildcard include/config/HAVE_EXIT_THREAD) \ + $(wildcard include/config/ARCH_WANTS_DYNAMIC_TASK_STRUCT) \ + $(wildcard include/config/HAVE_ARCH_THREAD_STRUCT_WHITELIST) \ + include/linux/uaccess.h \ + $(wildcard include/config/SET_FS) \ + include/linux/fault-inject-usercopy.h \ + $(wildcard include/config/FAULT_INJECTION_USERCOPY) \ + arch/x86/include/asm/uaccess.h \ + $(wildcard include/config/CC_HAS_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_ASM_GOTO_OUTPUT) \ + $(wildcard include/config/CC_HAS_ASM_GOTO_TIED_OUTPUT) \ + $(wildcard include/config/ARCH_HAS_COPY_MC) \ + $(wildcard include/config/X86_INTEL_USERCOPY) \ + arch/x86/include/asm/smap.h \ + arch/x86/include/asm/extable.h \ + $(wildcard include/config/BPF_JIT) \ + arch/x86/include/asm/uaccess_64.h \ + include/linux/mm.h \ + $(wildcard include/config/SYSCTL) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_BITS) \ + $(wildcard include/config/HAVE_ARCH_MMAP_RND_COMPAT_BITS) \ + $(wildcard include/config/DEBUG_INFO_BTF) \ + $(wildcard include/config/ARCH_USES_HIGH_VMA_FLAGS) \ + $(wildcard include/config/ARCH_HAS_PKEYS) \ + $(wildcard include/config/PPC) \ + $(wildcard include/config/PARISC) \ + $(wildcard include/config/IA64) \ + $(wildcard include/config/SPARC64) \ + $(wildcard include/config/ARM64) \ + $(wildcard include/config/ARM64_MTE) \ + $(wildcard include/config/HAVE_ARCH_USERFAULTFD_MINOR) \ + $(wildcard include/config/STACK_GROWSUP) \ + $(wildcard include/config/SHMEM) \ + $(wildcard include/config/DEV_PAGEMAP_OPS) \ + $(wildcard include/config/DEVICE_PRIVATE) \ + $(wildcard include/config/PCI_P2PDMA) \ + $(wildcard include/config/MIGRATION) \ + $(wildcard include/config/ARCH_HAS_PTE_SPECIAL) \ + $(wildcard include/config/ARCH_HAS_PTE_DEVMAP) \ + $(wildcard include/config/DEBUG_VM_RB) \ + $(wildcard include/config/PAGE_POISONING) \ + $(wildcard include/config/INIT_ON_ALLOC_DEFAULT_ON) \ + $(wildcard include/config/INIT_ON_FREE_DEFAULT_ON) \ + $(wildcard include/config/DEBUG_PAGEALLOC) \ + $(wildcard include/config/HUGETLBFS) \ + $(wildcard include/config/MAPPING_DIRTY_HELPERS) \ + include/linux/gfp.h \ + $(wildcard include/config/PM_SLEEP) \ + $(wildcard include/config/CONTIG_ALLOC) \ + include/linux/mmap_lock.h \ + include/linux/percpu-refcount.h \ + include/linux/bit_spinlock.h \ + include/linux/shrinker.h \ + include/linux/page_ext.h \ + include/linux/stacktrace.h \ + $(wildcard include/config/STACKTRACE) \ + $(wildcard include/config/ARCH_STACKWALK) \ + $(wildcard include/config/HAVE_RELIABLE_STACKTRACE) \ + include/linux/stackdepot.h \ + $(wildcard include/config/STACKDEPOT) \ + include/linux/page_ref.h \ + $(wildcard include/config/DEBUG_PAGE_REF) \ + include/linux/memremap.h \ + include/linux/ioport.h \ + include/linux/overflow.h \ + include/linux/sizes.h \ + include/linux/pgtable.h \ + $(wildcard include/config/HIGHPTE) \ + $(wildcard include/config/GUP_GET_PTE_LOW_HIGH) \ + $(wildcard include/config/HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) \ + $(wildcard include/config/HAVE_ARCH_SOFT_DIRTY) \ + $(wildcard include/config/ARCH_ENABLE_THP_MIGRATION) \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMAP) \ + $(wildcard include/config/X86_ESPFIX64) \ + arch/x86/include/asm/pgtable.h \ + $(wildcard include/config/DEBUG_WX) \ + arch/x86/include/asm/pkru.h \ + arch/x86/include/asm/fpu/api.h \ + $(wildcard include/config/X86_DEBUG_FPU) \ + include/asm-generic/pgtable_uffd.h \ + arch/x86/include/asm/pgtable_64.h \ + arch/x86/include/asm/fixmap.h \ + $(wildcard include/config/PROVIDE_OHCI1394_DMA_INIT) \ + $(wildcard include/config/X86_IO_APIC) \ + $(wildcard include/config/PCI_MMCONFIG) \ + $(wildcard include/config/ACPI_APEI_GHES) \ + $(wildcard include/config/INTEL_TXT) \ + arch/x86/include/uapi/asm/vsyscall.h \ + include/asm-generic/fixmap.h \ + arch/x86/include/asm/pgtable-invert.h \ + include/linux/kasan.h \ + $(wildcard include/config/KASAN_STACK) \ + $(wildcard include/config/KASAN_VMALLOC) \ + $(wildcard include/config/KASAN_INLINE) \ + include/linux/huge_mm.h \ + include/linux/sched/coredump.h \ + $(wildcard include/config/CORE_DUMP_DEFAULT_ELF_HEADERS) \ + include/linux/fs.h \ + $(wildcard include/config/READ_ONLY_THP_FOR_FS) \ + $(wildcard include/config/FS_POSIX_ACL) \ + $(wildcard include/config/CGROUP_WRITEBACK) \ + $(wildcard include/config/IMA) \ + $(wildcard include/config/FILE_LOCKING) \ + $(wildcard include/config/FSNOTIFY) \ + $(wildcard include/config/FS_ENCRYPTION) \ + $(wildcard include/config/FS_VERITY) \ + $(wildcard include/config/EPOLL) \ + $(wildcard include/config/UNICODE) \ + $(wildcard include/config/QUOTA) \ + $(wildcard include/config/BLK_DEV_LOOP) \ + $(wildcard include/config/FS_DAX) \ + include/linux/wait_bit.h \ + include/linux/kdev_t.h \ + include/uapi/linux/kdev_t.h \ + include/linux/dcache.h \ + include/linux/rculist_bl.h \ + include/linux/list_bl.h \ + include/linux/lockref.h \ + $(wildcard include/config/ARCH_USE_CMPXCHG_LOCKREF) \ + include/linux/stringhash.h \ + $(wildcard include/config/DCACHE_WORD_ACCESS) \ + include/linux/hash.h \ + $(wildcard include/config/HAVE_ARCH_HASH) \ + include/linux/path.h \ + include/linux/stat.h \ + arch/x86/include/uapi/asm/stat.h \ + include/uapi/linux/stat.h \ + include/linux/list_lru.h \ + $(wildcard include/config/MEMCG_KMEM) \ + include/linux/radix-tree.h \ + include/linux/xarray.h \ + $(wildcard include/config/XARRAY_MULTI) \ + include/linux/kconfig.h \ + include/linux/capability.h \ + include/uapi/linux/capability.h \ + include/linux/semaphore.h \ + include/linux/fcntl.h \ + $(wildcard include/config/ARCH_32BIT_OFF_T) \ + include/uapi/linux/fcntl.h \ + arch/x86/include/generated/uapi/asm/fcntl.h \ + include/uapi/asm-generic/fcntl.h \ + include/uapi/linux/openat2.h \ + include/linux/migrate_mode.h \ + include/linux/percpu-rwsem.h \ + include/linux/rcuwait.h \ + include/linux/sched/signal.h \ + $(wildcard include/config/SCHED_AUTOGROUP) \ + $(wildcard include/config/BSD_PROCESS_ACCT) \ + $(wildcard include/config/TASKSTATS) \ + include/linux/signal.h \ + $(wildcard include/config/DYNAMIC_SIGFRAME) \ + include/linux/sched/jobctl.h \ + include/linux/cred.h \ + $(wildcard include/config/DEBUG_CREDENTIALS) \ + include/linux/key.h \ + $(wildcard include/config/KEY_NOTIFICATIONS) \ + $(wildcard include/config/NET) \ + include/linux/sysctl.h \ + include/uapi/linux/sysctl.h \ + include/linux/assoc_array.h \ + $(wildcard include/config/ASSOCIATIVE_ARRAY) \ + include/linux/sched/user.h \ + $(wildcard include/config/WATCH_QUEUE) \ + include/linux/percpu_counter.h \ + include/linux/ratelimit.h \ + include/linux/rcu_sync.h \ + include/linux/delayed_call.h \ + include/linux/uuid.h \ + include/uapi/linux/uuid.h \ + include/linux/errseq.h \ + include/linux/ioprio.h \ + include/linux/sched/rt.h \ + include/linux/iocontext.h \ + include/uapi/linux/ioprio.h \ + include/linux/fs_types.h \ + include/linux/mount.h \ + include/linux/mnt_idmapping.h \ + include/uapi/linux/fs.h \ + include/linux/quota.h \ + $(wildcard include/config/QUOTA_NETLINK_INTERFACE) \ + include/uapi/linux/dqblk_xfs.h \ + include/linux/dqblk_v1.h \ + include/linux/dqblk_v2.h \ + include/linux/dqblk_qtree.h \ + include/linux/projid.h \ + include/uapi/linux/quota.h \ + include/linux/nfs_fs_i.h \ + include/linux/vmstat.h \ + $(wildcard include/config/VM_EVENT_COUNTERS) \ + $(wildcard include/config/DEBUG_TLBFLUSH) \ + $(wildcard include/config/DEBUG_VM_VMACACHE) \ + include/linux/vm_event_item.h \ + $(wildcard include/config/MEMORY_BALLOON) \ + $(wildcard include/config/BALLOON_COMPACTION) \ + include/linux/mmu_context.h \ + arch/x86/include/asm/mmu_context.h \ + arch/x86/include/asm/desc.h \ + arch/x86/include/asm/irq_vectors.h \ + $(wildcard include/config/HAVE_KVM) \ + $(wildcard include/config/HYPERV) \ + $(wildcard include/config/PCI_MSI) \ + arch/x86/include/asm/cpu_entry_area.h \ + arch/x86/include/asm/intel_ds.h \ + arch/x86/include/asm/pgtable_areas.h \ + include/linux/pkeys.h \ + arch/x86/include/asm/pkeys.h \ + include/trace/events/tlb.h \ + include/linux/tracepoint.h \ + $(wildcard include/config/HAVE_SYSCALL_TRACEPOINTS) \ + $(wildcard include/config/TRACEPOINT) \ + include/linux/static_call.h \ + include/linux/cpu.h \ + $(wildcard include/config/PM_SLEEP_SMP) \ + $(wildcard include/config/PM_SLEEP_SMP_NONZERO_CPU) \ + $(wildcard include/config/HOTPLUG_SMT) \ + include/linux/node.h \ + $(wildcard include/config/HMEM_REPORTING) \ + $(wildcard include/config/MEMORY_HOTPLUG_SPARSE) \ + include/linux/device.h \ + $(wildcard include/config/GENERIC_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/PINCTRL) \ + $(wildcard include/config/GENERIC_MSI_IRQ) \ + $(wildcard include/config/DMA_OPS) \ + $(wildcard include/config/DMA_DECLARE_COHERENT) \ + $(wildcard include/config/DMA_CMA) \ + $(wildcard include/config/SWIOTLB) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_DEVICE) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU) \ + $(wildcard include/config/ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) \ + $(wildcard include/config/DMA_OPS_BYPASS) \ + $(wildcard include/config/OF) \ + $(wildcard include/config/DEVTMPFS) \ + $(wildcard include/config/SYSFS_DEPRECATED) \ + include/linux/dev_printk.h \ + include/linux/energy_model.h \ + include/linux/kobject.h \ + $(wildcard include/config/UEVENT_HELPER) \ + $(wildcard include/config/DEBUG_KOBJECT_RELEASE) \ + include/linux/sysfs.h \ + include/linux/kernfs.h \ + $(wildcard include/config/KERNFS) \ + include/linux/idr.h \ + include/linux/kobject_ns.h \ + include/linux/kref.h \ + include/linux/sched/cpufreq.h \ + $(wildcard include/config/CPU_FREQ) \ + include/linux/klist.h \ + include/linux/pm.h \ + $(wildcard include/config/VT_CONSOLE_SLEEP) \ + $(wildcard include/config/PM) \ + $(wildcard include/config/PM_CLK) \ + $(wildcard include/config/PM_GENERIC_DOMAINS) \ + include/linux/device/bus.h \ + $(wildcard include/config/ACPI) \ + include/linux/device/class.h \ + include/linux/device/driver.h \ + arch/x86/include/asm/device.h \ + include/linux/pm_wakeup.h \ + include/linux/cpuhotplug.h \ + arch/x86/include/asm/static_call.h \ + arch/x86/include/asm/text-patching.h \ + $(wildcard include/config/UML_X86) \ + include/trace/define_trace.h \ + arch/x86/include/asm/tlbflush.h \ + arch/x86/include/asm/invpcid.h \ + arch/x86/include/asm/pti.h \ + arch/x86/include/asm/debugreg.h \ + arch/x86/include/uapi/asm/debugreg.h \ + include/asm-generic/mmu_context.h \ + /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h \ + $(wildcard include/config/BLOCK_ID) \ + include/linux/module.h \ + $(wildcard include/config/MODULES_TREE_LOOKUP) \ + $(wildcard include/config/STACKTRACE_BUILD_ID) \ + $(wildcard include/config/MODULE_SIG) \ + $(wildcard include/config/KALLSYMS) \ + $(wildcard include/config/BPF_EVENTS) \ + $(wildcard include/config/DEBUG_INFO_BTF_MODULES) \ + $(wildcard include/config/EVENT_TRACING) \ + $(wildcard include/config/MODULE_UNLOAD) \ + $(wildcard include/config/CONSTRUCTORS) \ + $(wildcard include/config/FUNCTION_ERROR_INJECTION) \ + include/linux/buildid.h \ + $(wildcard include/config/CRASH_CORE) \ + include/linux/kmod.h \ + include/linux/umh.h \ + include/linux/elf.h \ + $(wildcard include/config/ARCH_USE_GNU_PROPERTY) \ + $(wildcard include/config/ARCH_HAVE_ELF_PROT) \ + arch/x86/include/asm/elf.h \ + $(wildcard include/config/X86_X32_ABI) \ + arch/x86/include/asm/user.h \ + arch/x86/include/asm/user_64.h \ + arch/x86/include/asm/fsgsbase.h \ + arch/x86/include/asm/vdso.h \ + $(wildcard include/config/X86_X32) \ + include/uapi/linux/elf.h \ + include/uapi/linux/elf-em.h \ + include/linux/moduleparam.h \ + $(wildcard include/config/ALPHA) \ + $(wildcard include/config/PPC64) \ + include/linux/rbtree_latch.h \ + include/linux/error-injection.h \ + include/asm-generic/error-injection.h \ + include/linux/cfi.h \ + $(wildcard include/config/CFI_CLANG_SHADOW) \ + arch/x86/include/asm/module.h \ + $(wildcard include/config/UNWINDER_ORC) \ + include/asm-generic/module.h \ + $(wildcard include/config/HAVE_MOD_ARCH_SPECIFIC) \ + $(wildcard include/config/MODULES_USE_ELF_REL) \ + $(wildcard include/config/MODULES_USE_ELF_RELA) \ + arch/x86/include/asm/orc_types.h \ + include/linux/dma-mapping.h \ + $(wildcard include/config/DMA_API_DEBUG) \ + $(wildcard include/config/HAS_DMA) \ + $(wildcard include/config/NEED_DMA_MAP_STATE) \ + include/linux/dma-direction.h \ + include/linux/scatterlist.h \ + $(wildcard include/config/NEED_SG_DMA_LENGTH) \ + $(wildcard include/config/DEBUG_SG) \ + $(wildcard include/config/SGL_ALLOC) \ + $(wildcard include/config/ARCH_NO_SG_CHAIN) \ + $(wildcard include/config/SG_POOL) \ + arch/x86/include/asm/io.h \ + $(wildcard include/config/MTRR) \ + $(wildcard include/config/X86_PAT) \ + arch/x86/include/generated/asm/early_ioremap.h \ + include/asm-generic/early_ioremap.h \ + $(wildcard include/config/GENERIC_EARLY_IOREMAP) \ + include/asm-generic/iomap.h \ + $(wildcard include/config/HAS_IOPORT_MAP) \ + include/asm-generic/pci_iomap.h \ + $(wildcard include/config/PCI) \ + $(wildcard include/config/NO_GENERIC_PCI_IOPORT_MAP) \ + $(wildcard include/config/GENERIC_PCI_IOMAP) \ + include/asm-generic/io.h \ + $(wildcard include/config/GENERIC_IOMAP) \ + $(wildcard include/config/GENERIC_IOREMAP) \ + $(wildcard include/config/VIRT_TO_BUS) \ + include/linux/logic_pio.h \ + $(wildcard include/config/INDIRECT_PIO) \ + include/linux/fwnode.h \ + include/linux/vmalloc.h \ + $(wildcard include/config/HAVE_ARCH_HUGE_VMALLOC) \ + arch/x86/include/asm/vmalloc.h \ + include/linux/interrupt.h \ + $(wildcard include/config/IRQ_FORCED_THREADING) \ + $(wildcard include/config/GENERIC_IRQ_PROBE) \ + $(wildcard include/config/IRQ_TIMINGS) \ + include/linux/irqreturn.h \ + include/linux/irqnr.h \ + include/uapi/linux/irqnr.h \ + include/linux/hardirq.h \ + include/linux/context_tracking_state.h \ + $(wildcard include/config/CONTEXT_TRACKING) \ + include/linux/ftrace_irq.h \ + $(wildcard include/config/HWLAT_TRACER) \ + $(wildcard include/config/OSNOISE_TRACER) \ + include/linux/vtime.h \ + $(wildcard include/config/VIRT_CPU_ACCOUNTING) \ + $(wildcard include/config/IRQ_TIME_ACCOUNTING) \ + arch/x86/include/asm/hardirq.h \ + $(wildcard include/config/KVM_INTEL) \ + $(wildcard include/config/X86_THERMAL_VECTOR) \ + $(wildcard include/config/X86_MCE_THRESHOLD) \ + $(wildcard include/config/X86_MCE_AMD) \ + $(wildcard include/config/X86_HV_CALLBACK_VECTOR) \ + arch/x86/include/asm/irq.h \ + arch/x86/include/asm/sections.h \ + include/asm-generic/sections.h \ + include/linux/pci.h \ + $(wildcard include/config/PCI_IOV) \ + $(wildcard include/config/PCIEAER) \ + $(wildcard include/config/PCIEPORTBUS) \ + $(wildcard include/config/PCIEASPM) \ + $(wildcard include/config/HOTPLUG_PCI_PCIE) \ + $(wildcard include/config/PCIE_PTM) \ + $(wildcard include/config/PCIE_DPC) \ + $(wildcard include/config/PCI_ATS) \ + $(wildcard include/config/PCI_PRI) \ + $(wildcard include/config/PCI_PASID) \ + $(wildcard include/config/PCI_DOMAINS_GENERIC) \ + $(wildcard include/config/PCI_DOMAINS) \ + $(wildcard include/config/PCI_QUIRKS) \ + $(wildcard include/config/ACPI_MCFG) \ + $(wildcard include/config/HOTPLUG_PCI) \ + $(wildcard include/config/EEH) \ + include/linux/mod_devicetable.h \ + include/linux/io.h \ + include/linux/resource_ext.h \ + include/linux/slab.h \ + $(wildcard include/config/DEBUG_SLAB) \ + $(wildcard include/config/FAILSLAB) \ + $(wildcard include/config/HAVE_HARDENED_USERCOPY_ALLOCATOR) \ + $(wildcard include/config/SLAB) \ + $(wildcard include/config/SLUB) \ + $(wildcard include/config/SLOB) \ + $(wildcard include/config/CC_IS_GCC) \ + $(wildcard include/config/CLANG_VERSION) \ + include/uapi/linux/pci.h \ + include/uapi/linux/pci_regs.h \ + include/linux/pci_ids.h \ + include/linux/dmapool.h \ + arch/x86/include/asm/pci.h \ + $(wildcard include/config/PCI_MSI_IRQ_DOMAIN) \ + $(wildcard include/config/VMD) \ + arch/x86/include/asm/memtype.h \ + include/asm-generic/pci.h \ + include/linux/pci-dma-compat.h \ + +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o: $(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o) + +$(deps_/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o): diff --git a/host_software/driver/xdma/Makefile b/host_software/driver/XDMA/linux-kernel/xdma/Makefile similarity index 51% rename from host_software/driver/xdma/Makefile rename to host_software/driver/XDMA/linux-kernel/xdma/Makefile index e362da3..68c0d77 100644 --- a/host_software/driver/xdma/Makefile +++ b/host_software/driver/XDMA/linux-kernel/xdma/Makefile @@ -1,4 +1,11 @@ SHELL = /bin/bash +# +# optional makefile parameters: +# - DEBUG=<0|1>, enable verbose debug print-out in the driver +# - config_bar_num=, xdma pci config bar number +# - xvc_bar_num=, xvc pci bar # +# - xvc_bar_offset=, xvc register base offset +# ifneq ($(xvc_bar_num),) XVC_FLAGS += -D__XVC_BAR_NUM__=$(xvc_bar_num) endif @@ -9,28 +16,33 @@ endif $(warning XVC_FLAGS: $(XVC_FLAGS).) -#topdir := $(shell cd $(src)/.. && pwd) +topdir := $(shell cd $(src)/.. && pwd) TARGET_MODULE:=xdma -#EXTRA_CFLAGS := -I$(topdir)/include $(XVC_FLAGS) -#EXTRA_CFLAGS += -D__LIBXDMA_DEBUG__ +EXTRA_CFLAGS := -I$(topdir)/include $(XVC_FLAGS) +ifeq ($(DEBUG),1) + EXTRA_CFLAGS += -D__LIBXDMA_DEBUG__ +endif +ifneq ($(config_bar_num),) + EXTRA_CFLAGS += -DXDMA_CONFIG_BAR_NUM=$(config_bar_num) +endif #EXTRA_CFLAGS += -DINTERNAL_TESTING ifneq ($(KERNELRELEASE),) - $(TARGET_MODULE)-objs := libxdma.o xdma_cdev.o cdev_ctrl.o cdev_events.o cdev_sgdma.o cdev_xvc.o cdev_bypass.o xdma_mod.o + $(TARGET_MODULE)-objs := libxdma.o xdma_cdev.o cdev_ctrl.o cdev_events.o cdev_sgdma.o cdev_xvc.o cdev_bypass.o xdma_mod.o xdma_thread.o obj-m := $(TARGET_MODULE).o else BUILDSYSTEM_DIR:=/lib/modules/$(shell uname -r)/build PWD:=$(shell pwd) -all : +all : $(MAKE) -C $(BUILDSYSTEM_DIR) M=$(PWD) modules clean: $(MAKE) -C $(BUILDSYSTEM_DIR) M=$(PWD) clean + @/bin/rm -f *.ko modules.order *.mod.c *.o *.o.ur-safe .*.o.cmd install: all $(MAKE) -C $(BUILDSYSTEM_DIR) M=$(PWD) modules_install endif - diff --git a/host_software/driver/XDMA/linux-kernel/xdma/Module.symvers b/host_software/driver/XDMA/linux-kernel/xdma/Module.symvers new file mode 100644 index 0000000..e69de29 diff --git a/host_software/driver/xdma/cdev_bypass.c b/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.c similarity index 73% rename from host_software/driver/xdma/cdev_bypass.c rename to host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.c index 4b84526..4040ee0 100644 --- a/host_software/driver/xdma/cdev_bypass.c +++ b/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.c @@ -4,16 +4,24 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ #include "libxdma_api.h" #include "xdma_cdev.h" -#define write_register(v,mem,off) iowrite32(v, mem) +#define write_register(v, mem, off) iowrite32(v, mem) static int copy_desc_data(struct xdma_transfer *transfer, char __user *buf, size_t *buf_offset, size_t buf_size) @@ -22,8 +30,15 @@ static int copy_desc_data(struct xdma_transfer *transfer, char __user *buf, int copy_err; int rc = 0; - BUG_ON(!buf); - BUG_ON(!buf_offset); + if (!buf) { + pr_err("Invalid user buffer\n"); + return -EINVAL; + } + + if (!buf_offset) { + pr_err("Invalid user buffer offset\n"); + return -EINVAL; + } /* Fill user buffer with descriptor data */ for (i = 0; i < transfer->desc_num; i++) { @@ -64,7 +79,7 @@ static ssize_t char_bypass_read(struct file *file, char __user *buf, xdev = xcdev->xdev; engine = xcdev->engine; - dbg_sg("In char_bypass_read()\n"); + dbg_sg("In %s()\n", __func__); if (count & 3) { dbg_sg("Buffer size must be a multiple of 4 bytes\n"); @@ -107,7 +122,7 @@ static ssize_t char_bypass_write(struct file *file, const char __user *buf, struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; u32 desc_data; - u32 *bypass_addr; + void __iomem *bypass_addr; size_t buf_offset = 0; int rc = 0; int copy_err; @@ -133,18 +148,21 @@ static ssize_t char_bypass_write(struct file *file, const char __user *buf, return -ENODEV; } - dbg_sg("In char_bypass_write()\n"); + dbg_sg("In %s()\n", __func__); spin_lock(&engine->lock); /* Write descriptor data to the bypass BAR */ - bypass_addr = (u32 *)xdev->bar[xdev->bypass_bar_idx]; - bypass_addr += engine->bypass_offset; + bypass_addr = xdev->bar[xdev->bypass_bar_idx]; + bypass_addr = (void __iomem *)( + (u32 __iomem *)bypass_addr + engine->bypass_offset + ); while (buf_offset < count) { copy_err = copy_from_user(&desc_data, &buf[buf_offset], sizeof(u32)); if (!copy_err) { - write_register(desc_data, bypass_addr, bypass_addr - engine->bypass_offset); + write_register(desc_data, bypass_addr, + bypass_addr - engine->bypass_offset); buf_offset += sizeof(u32); rc = buf_offset; } else { @@ -176,5 +194,5 @@ static const struct file_operations bypass_fops = { void cdev_bypass_init(struct xdma_cdev *xcdev) { - cdev_init(&xcdev->cdev, &bypass_fops); + cdev_init(&xcdev->cdev, &bypass_fops); } diff --git a/host_software/driver/xdma/cdev_ctrl.c b/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.c similarity index 81% rename from host_software/driver/xdma/cdev_ctrl.c rename to host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.c index d4c811b..dbc41ef 100644 --- a/host_software/driver/xdma/cdev_ctrl.c +++ b/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.c @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ @@ -17,6 +24,12 @@ #include "xdma_cdev.h" #include "cdev_ctrl.h" +#if ACCESS_OK_2_ARGS +#define xlx_access_ok(X, Y, Z) access_ok(Y, Z) +#else +#define xlx_access_ok(X, Y, Z) access_ok(X, Y, Z) +#endif + /* * character device file operations for control bus (through control bridge) */ @@ -25,13 +38,13 @@ static ssize_t char_ctrl_read(struct file *fp, char __user *buf, size_t count, { struct xdma_cdev *xcdev = (struct xdma_cdev *)fp->private_data; struct xdma_dev *xdev; - void *reg; + void __iomem *reg; u32 w; int rv; rv = xcdev_check(__func__, xcdev, 0); if (rv < 0) - return rv; + return rv; xdev = xcdev->xdev; /* only 32-bit aligned and 32-bit multiples */ @@ -41,8 +54,8 @@ static ssize_t char_ctrl_read(struct file *fp, char __user *buf, size_t count, reg = xdev->bar[xcdev->bar] + *pos; //w = read_register(reg); w = ioread32(reg); - dbg_sg("char_ctrl_read(@%p, count=%ld, pos=%d) value = 0x%08x\n", reg, - (long)count, (int)*pos, w); + dbg_sg("%s(@%p, count=%ld, pos=%d) value = 0x%08x\n", + __func__, reg, (long)count, (int)*pos, w); rv = copy_to_user(buf, &w, 4); if (rv) dbg_sg("Copy to userspace failed but continuing\n"); @@ -56,13 +69,13 @@ static ssize_t char_ctrl_write(struct file *file, const char __user *buf, { struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; struct xdma_dev *xdev; - void *reg; + void __iomem *reg; u32 w; int rv; rv = xcdev_check(__func__, xcdev, 0); if (rv < 0) - return rv; + return rv; xdev = xcdev->xdev; /* only 32-bit aligned and 32-bit multiples */ @@ -72,12 +85,11 @@ static ssize_t char_ctrl_write(struct file *file, const char __user *buf, /* first address is BAR base plus file position offset */ reg = xdev->bar[xcdev->bar] + *pos; rv = copy_from_user(&w, buf, 4); - if (rv) { + if (rv) pr_info("copy from user failed %d/4, but continuing.\n", rv); - } - dbg_sg("char_ctrl_write(0x%08x @%p, count=%ld, pos=%d)\n", w, reg, - (long)count, (int)*pos); + dbg_sg("%s(0x%08x @%p, count=%ld, pos=%d)\n", + __func__, w, reg, (long)count, (int)*pos); //write_register(w, reg); iowrite32(w, reg); *pos += 4; @@ -122,9 +134,13 @@ long char_ctrl_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) rv = xcdev_check(__func__, xcdev, 0); if (rv < 0) - return rv; - xdev = xcdev->xdev; + return rv; + xdev = xcdev->xdev; + if (!xdev) { + pr_info("cmd %u, xdev NULL.\n", cmd); + return -EINVAL; + } pr_info("cmd 0x%x, xdev 0x%p, pdev 0x%p.\n", cmd, xdev, xdev->pdev); if (_IOC_TYPE(cmd) != XDMA_IOC_MAGIC) { @@ -134,13 +150,12 @@ long char_ctrl_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) } if (_IOC_DIR(cmd) & _IOC_READ) - //result = !access_ok(VERIFY_WRITE, (void __user *)arg, - // _IOC_SIZE(cmd)); - result = !access_ok((void __user *)arg, _IOC_SIZE(cmd)); + result = !xlx_access_ok(VERIFY_WRITE, (void __user *)arg, + _IOC_SIZE(cmd)); else if (_IOC_DIR(cmd) & _IOC_WRITE) - //result = !access_ok(VERIFY_READ, (void __user *)arg, - // _IOC_SIZE(cmd)); - result = !access_ok((void __user *)arg, _IOC_SIZE(cmd)); + result = !xlx_access_ok(VERIFY_READ, (void __user *)arg, + _IOC_SIZE(cmd)); + if (result) { pr_err("bad access %ld.\n", result); return -EFAULT; @@ -148,7 +163,7 @@ long char_ctrl_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) switch (cmd) { case XDMA_IOCINFO: - if (copy_from_user((void *)&ioctl_obj, (void *) arg, + if (copy_from_user((void *)&ioctl_obj, (void __user *) arg, sizeof(struct xdma_ioc_base))) { pr_err("copy_from_user failed.\n"); return -EFAULT; @@ -159,20 +174,11 @@ long char_ctrl_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) ioctl_obj.magic, XDMA_XCL_MAGIC); return -ENOTTY; } - return version_ioctl(xcdev, (void __user *)arg); case XDMA_IOCOFFLINE: - if (!xdev) { - pr_info("cmd %u, xdev NULL.\n", cmd); - return -EINVAL; - } xdma_device_offline(xdev->pdev, xdev); break; case XDMA_IOCONLINE: - if (!xdev) { - pr_info("cmd %u, xdev NULL.\n", cmd); - return -EINVAL; - } xdma_device_online(xdev->pdev, xdev); break; default: @@ -195,7 +201,7 @@ int bridge_mmap(struct file *file, struct vm_area_struct *vma) rv = xcdev_check(__func__, xcdev, 0); if (rv < 0) - return rv; + return rv; xdev = xcdev->xdev; off = vma->vm_pgoff << PAGE_SHIFT; @@ -210,8 +216,7 @@ int bridge_mmap(struct file *file, struct vm_area_struct *vma) dbg_sg("mmap(): cdev->bar = %d\n", xcdev->bar); dbg_sg("mmap(): xdev = 0x%p\n", xdev); dbg_sg("mmap(): pci_dev = 0x%08lx\n", (unsigned long)xdev->pdev); - - dbg_sg("off = 0x%lx\n", off); + dbg_sg("off = 0x%lx, vsize 0x%lu, psize 0x%lu.\n", off, vsize, psize); dbg_sg("start = 0x%llx\n", (unsigned long long)pci_resource_start(xdev->pdev, xcdev->bar)); diff --git a/host_software/driver/xdma/cdev_ctrl.h b/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.h similarity index 67% rename from host_software/driver/xdma/cdev_ctrl.h rename to host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.h index cb8ef6d..61d5cd1 100644 --- a/host_software/driver/xdma/cdev_ctrl.h +++ b/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.h @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #ifndef _XDMA_IOCALLS_POSIX_H_ @@ -53,14 +60,14 @@ struct xdma_ioc_base { }; struct xdma_ioc_info { - struct xdma_ioc_base base; - unsigned short vendor; - unsigned short device; - unsigned short subsystem_vendor; - unsigned short subsystem_device; - unsigned int dma_engine_version; - unsigned int driver_version; - unsigned long long feature_id; + struct xdma_ioc_base base; + unsigned short vendor; + unsigned short device; + unsigned short subsystem_vendor; + unsigned short subsystem_device; + unsigned int dma_engine_version; + unsigned int driver_version; + unsigned long long feature_id; unsigned short domain; unsigned char bus; unsigned char dev; diff --git a/host_software/driver/xdma/cdev_events.c b/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.c similarity index 80% rename from host_software/driver/xdma/cdev_events.c rename to host_software/driver/XDMA/linux-kernel/xdma/cdev_events.c index 3ada7db..4942d96 100644 --- a/host_software/driver/xdma/cdev_events.c +++ b/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.c @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ @@ -28,7 +35,7 @@ static ssize_t char_events_read(struct file *file, char __user *buf, rv = xcdev_check(__func__, xcdev, 0); if (rv < 0) - return rv; + return rv; user_irq = xcdev->user_irq; if (!user_irq) { pr_info("xcdev 0x%p, user_irq NULL.\n", xcdev); @@ -77,7 +84,7 @@ static unsigned int char_events_poll(struct file *file, poll_table *wait) rv = xcdev_check(__func__, xcdev, 0); if (rv < 0) - return rv; + return rv; user_irq = xcdev->user_irq; if (!user_irq) { pr_info("xcdev 0x%p, user_irq NULL.\n", xcdev); diff --git a/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.c b/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.c new file mode 100644 index 0000000..2b13000 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.c @@ -0,0 +1,910 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include +#include +#include +#include +#include +#include +#include +#include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) +#include +#endif +#include "libxdma_api.h" +#include "xdma_cdev.h" +#include "cdev_sgdma.h" +#include "xdma_thread.h" + +/* Module Parameters */ +unsigned int h2c_timeout = 10; +module_param(h2c_timeout, uint, 0644); +MODULE_PARM_DESC(h2c_timeout, "H2C sgdma timeout in seconds, default is 10 sec."); + +unsigned int c2h_timeout = 10; +module_param(c2h_timeout, uint, 0644); +MODULE_PARM_DESC(c2h_timeout, "C2H sgdma timeout in seconds, default is 10 sec."); + +extern struct kmem_cache *cdev_cache; +static void char_sgdma_unmap_user_buf(struct xdma_io_cb *cb, bool write); + + +static void async_io_handler(unsigned long cb_hndl, int err) +{ + struct xdma_cdev *xcdev; + struct xdma_engine *engine; + struct xdma_dev *xdev; + struct xdma_io_cb *cb = (struct xdma_io_cb *)cb_hndl; + struct cdev_async_io *caio = (struct cdev_async_io *)cb->private; + ssize_t numbytes = 0; + ssize_t res, res2; + int lock_stat; + int rv; + + if (caio == NULL) { + pr_err("Invalid work struct\n"); + return; + } + + xcdev = (struct xdma_cdev *)caio->iocb->ki_filp->private_data; + rv = xcdev_check(__func__, xcdev, 1); + if (rv < 0) + return; + + /* Safeguarding for cancel requests */ + lock_stat = spin_trylock(&caio->lock); + if (!lock_stat) { + pr_err("caio lock not acquired\n"); + goto skip_dev_lock; + } + + if (false != caio->cancel) { + pr_err("skipping aio\n"); + goto skip_tran; + } + + engine = xcdev->engine; + xdev = xcdev->xdev; + + if (!err) + numbytes = xdma_xfer_completion((void *)cb, xdev, + engine->channel, cb->write, cb->ep_addr, + &cb->sgt, 0, + cb->write ? h2c_timeout * 1000 : + c2h_timeout * 1000); + + char_sgdma_unmap_user_buf(cb, cb->write); + + caio->res2 |= (err < 0) ? err : 0; + if (caio->res2) + caio->err_cnt++; + + caio->cmpl_cnt++; + caio->res += numbytes; + + if (caio->cmpl_cnt == caio->req_cnt) { + res = caio->res; + res2 = caio->res2; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0) + caio->iocb->ki_complete(caio->iocb, res, res2); +#else + aio_complete(caio->iocb, res, res2); +#endif +skip_tran: + spin_unlock(&caio->lock); + kmem_cache_free(cdev_cache, caio); + kfree(cb); + return; + } + spin_unlock(&caio->lock); + return; + +skip_dev_lock: +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0) + caio->iocb->ki_complete(caio->iocb, numbytes, -EBUSY); +#else + aio_complete(caio->iocb, numbytes, -EBUSY); +#endif + kmem_cache_free(cdev_cache, caio); +} + + +/* + * character device file operations for SG DMA engine + */ +static loff_t char_sgdma_llseek(struct file *file, loff_t off, int whence) +{ + loff_t newpos = 0; + + switch (whence) { + case 0: /* SEEK_SET */ + newpos = off; + break; + case 1: /* SEEK_CUR */ + newpos = file->f_pos + off; + break; + case 2: /* SEEK_END, @TODO should work from end of address space */ + newpos = UINT_MAX + off; + break; + default: /* can't happen */ + return -EINVAL; + } + if (newpos < 0) + return -EINVAL; + file->f_pos = newpos; + dbg_fops("%s: pos=%lld\n", __func__, (signed long long)newpos); + +#if 0 + pr_err("0x%p, off %lld, whence %d -> pos %lld.\n", + file, (signed long long)off, whence, (signed long long)off); +#endif + + return newpos; +} + +/* char_sgdma_read_write() -- Read from or write to the device + * + * @buf userspace buffer + * @count number of bytes in the userspace buffer + * @pos byte-address in device + * @dir_to_device If !0, a write to the device is performed + * + * Iterate over the userspace buffer, taking at most 255 * PAGE_SIZE bytes for + * each DMA transfer. + * + * For each transfer, get the user pages, build a sglist, map, build a + * descriptor table. submit the transfer. wait for the interrupt handler + * to wake us on completion. + */ + +static int check_transfer_align(struct xdma_engine *engine, + const char __user *buf, size_t count, loff_t pos, int sync) +{ + if (!engine) { + pr_err("Invalid DMA engine\n"); + return -EINVAL; + } + + /* AXI ST or AXI MM non-incremental addressing mode? */ + if (engine->non_incr_addr) { + int buf_lsb = (int)((uintptr_t)buf) & (engine->addr_align - 1); + size_t len_lsb = count & ((size_t)engine->len_granularity - 1); + int pos_lsb = (int)pos & (engine->addr_align - 1); + + dbg_tfr("AXI ST or MM non-incremental\n"); + dbg_tfr("buf_lsb = %d, pos_lsb = %d, len_lsb = %ld\n", buf_lsb, + pos_lsb, len_lsb); + + if (buf_lsb != 0) { + dbg_tfr("FAIL: non-aligned buffer address %p\n", buf); + return -EINVAL; + } + + if ((pos_lsb != 0) && (sync)) { + dbg_tfr("FAIL: non-aligned AXI MM FPGA addr 0x%llx\n", + (unsigned long long)pos); + return -EINVAL; + } + + if (len_lsb != 0) { + dbg_tfr("FAIL: len %d is not a multiple of %d\n", + (int)count, + (int)engine->len_granularity); + return -EINVAL; + } + /* AXI MM incremental addressing mode */ + } else { + int buf_lsb = (int)((uintptr_t)buf) & (engine->addr_align - 1); + int pos_lsb = (int)pos & (engine->addr_align - 1); + + if (buf_lsb != pos_lsb) { + dbg_tfr("FAIL: Misalignment error\n"); + dbg_tfr("host addr %p, FPGA addr 0x%llx\n", buf, pos); + return -EINVAL; + } + } + + return 0; +} + +/* + * Map a user memory range into a scatterlist + * inspired by vhost_scsi_map_to_sgl() + * Returns the number of scatterlist entries used or -errno on error. + */ +static inline void xdma_io_cb_release(struct xdma_io_cb *cb) +{ + int i; + + for (i = 0; i < cb->pages_nr; i++) + put_page(cb->pages[i]); + + sg_free_table(&cb->sgt); + kfree(cb->pages); + + memset(cb, 0, sizeof(*cb)); +} + +static void char_sgdma_unmap_user_buf(struct xdma_io_cb *cb, bool write) +{ + int i; + + sg_free_table(&cb->sgt); + + if (!cb->pages || !cb->pages_nr) + return; + + for (i = 0; i < cb->pages_nr; i++) { + if (cb->pages[i]) { + if (!write) + set_page_dirty_lock(cb->pages[i]); + put_page(cb->pages[i]); + } else + break; + } + + if (i != cb->pages_nr) + pr_info("sgl pages %d/%u.\n", i, cb->pages_nr); + + kfree(cb->pages); + cb->pages = NULL; +} + +static int char_sgdma_map_user_buf_to_sgl(struct xdma_io_cb *cb, bool write) +{ + struct sg_table *sgt = &cb->sgt; + unsigned long len = cb->len; + void __user *buf = cb->buf; + struct scatterlist *sg; + unsigned int pages_nr = (((unsigned long)buf + len + PAGE_SIZE - 1) - + ((unsigned long)buf & PAGE_MASK)) + >> PAGE_SHIFT; + int i; + int rv; + + if (pages_nr == 0) + return -EINVAL; + + if (sg_alloc_table(sgt, pages_nr, GFP_KERNEL)) { + pr_err("sgl OOM.\n"); + return -ENOMEM; + } + + cb->pages = kcalloc(pages_nr, sizeof(struct page *), GFP_KERNEL); + if (!cb->pages) { + pr_err("pages OOM.\n"); + rv = -ENOMEM; + goto err_out; + } + + rv = get_user_pages_fast((unsigned long)buf, pages_nr, 1/* write */, + cb->pages); + /* No pages were pinned */ + if (rv < 0) { + pr_err("unable to pin down %u user pages, %d.\n", + pages_nr, rv); + goto err_out; + } + /* Less pages pinned than wanted */ + if (rv != pages_nr) { + pr_err("unable to pin down all %u user pages, %d.\n", + pages_nr, rv); + cb->pages_nr = rv; + rv = -EFAULT; + goto err_out; + } + + for (i = 1; i < pages_nr; i++) { + if (cb->pages[i - 1] == cb->pages[i]) { + pr_err("duplicate pages, %d, %d.\n", + i - 1, i); + rv = -EFAULT; + cb->pages_nr = pages_nr; + goto err_out; + } + } + + sg = sgt->sgl; + for (i = 0; i < pages_nr; i++, sg = sg_next(sg)) { + unsigned int offset = offset_in_page(buf); + unsigned int nbytes = + min_t(unsigned int, PAGE_SIZE - offset, len); + + flush_dcache_page(cb->pages[i]); + sg_set_page(sg, cb->pages[i], nbytes, offset); + + buf += nbytes; + len -= nbytes; + } + + if (len) { + pr_err("Invalid user buffer length. Cannot map to sgl\n"); + return -EINVAL; + } + cb->pages_nr = pages_nr; + return 0; + +err_out: + char_sgdma_unmap_user_buf(cb, write); + + return rv; +} + +static ssize_t char_sgdma_read_write(struct file *file, const char __user *buf, + size_t count, loff_t *pos, bool write) +{ + int rv; + ssize_t res = 0; + struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; + struct xdma_dev *xdev; + struct xdma_engine *engine; + struct xdma_io_cb cb; + + rv = xcdev_check(__func__, xcdev, 1); + if (rv < 0) + return rv; + xdev = xcdev->xdev; + engine = xcdev->engine; + + dbg_tfr("file 0x%p, priv 0x%p, buf 0x%p,%llu, pos %llu, W %d, %s.\n", + file, file->private_data, buf, (u64)count, (u64)*pos, write, + engine->name); + + if ((write && engine->dir != DMA_TO_DEVICE) || + (!write && engine->dir != DMA_FROM_DEVICE)) { + pr_err("r/w mismatch. W %d, dir %d.\n", + write, engine->dir); + return -EINVAL; + } + + rv = check_transfer_align(engine, buf, count, *pos, 1); + if (rv) { + pr_info("Invalid transfer alignment detected\n"); + return rv; + } + + memset(&cb, 0, sizeof(struct xdma_io_cb)); + cb.buf = (char __user *)buf; + cb.len = count; + cb.ep_addr = (u64)*pos; + cb.write = write; + rv = char_sgdma_map_user_buf_to_sgl(&cb, write); + if (rv < 0) + return rv; + + res = xdma_xfer_submit(xdev, engine->channel, write, *pos, &cb.sgt, + 0, write ? h2c_timeout * 1000 : + c2h_timeout * 1000); + + char_sgdma_unmap_user_buf(&cb, write); + + return res; +} + + +static ssize_t char_sgdma_write(struct file *file, const char __user *buf, + size_t count, loff_t *pos) +{ + return char_sgdma_read_write(file, buf, count, pos, 1); +} + +static ssize_t char_sgdma_read(struct file *file, char __user *buf, + size_t count, loff_t *pos) +{ + return char_sgdma_read_write(file, buf, count, pos, 0); +} + +static ssize_t cdev_aio_write(struct kiocb *iocb, const struct iovec *io, + unsigned long count, loff_t pos) +{ + struct xdma_cdev *xcdev = (struct xdma_cdev *) + iocb->ki_filp->private_data; + struct cdev_async_io *caio; + struct xdma_engine *engine; + struct xdma_dev *xdev; + int rv; + unsigned long i; + + if (!xcdev) { + pr_info("file 0x%p, xcdev NULL, %llu, pos %llu, W %d.\n", + iocb->ki_filp, (u64)count, (u64)pos, 1); + return -EINVAL; + } + + engine = xcdev->engine; + xdev = xcdev->xdev; + + if (engine->dir != DMA_TO_DEVICE) { + pr_err("r/w mismatch. WRITE, dir %d.\n", + engine->dir); + return -EINVAL; + } + + caio = kmem_cache_alloc(cdev_cache, GFP_KERNEL); + memset(caio, 0, sizeof(struct cdev_async_io)); + + caio->cb = kzalloc(count * (sizeof(struct xdma_io_cb)), GFP_KERNEL); + + spin_lock_init(&caio->lock); + iocb->private = caio; + caio->iocb = iocb; + caio->write = true; + caio->cancel = false; + caio->req_cnt = count; + + for (i = 0; i < count; i++) { + + memset(&(caio->cb[i]), 0, sizeof(struct xdma_io_cb)); + + caio->cb[i].buf = io[i].iov_base; + caio->cb[i].len = io[i].iov_len; + caio->cb[i].ep_addr = (u64)pos; + caio->cb[i].write = true; + caio->cb[i].private = caio; + caio->cb[i].io_done = async_io_handler; + rv = check_transfer_align(engine, caio->cb[i].buf, + caio->cb[i].len, pos, 1); + if (rv) { + pr_info("Invalid transfer alignment detected\n"); + kmem_cache_free(cdev_cache, caio); + return rv; + } + + rv = char_sgdma_map_user_buf_to_sgl(&caio->cb[i], true); + if (rv < 0) + return rv; + + rv = xdma_xfer_submit_nowait((void *)&caio->cb[i], xdev, + engine->channel, caio->cb[i].write, + caio->cb[i].ep_addr, &caio->cb[i].sgt, + 0, h2c_timeout * 1000); + } + + if (engine->cmplthp) + xdma_kthread_wakeup(engine->cmplthp); + + return -EIOCBQUEUED; +} + +static ssize_t cdev_aio_read(struct kiocb *iocb, const struct iovec *io, + unsigned long count, loff_t pos) +{ + + struct xdma_cdev *xcdev = (struct xdma_cdev *) + iocb->ki_filp->private_data; + struct cdev_async_io *caio; + struct xdma_engine *engine; + struct xdma_dev *xdev; + int rv; + unsigned long i; + + if (!xcdev) { + pr_info("file 0x%p, xcdev NULL, %llu, pos %llu, W %d.\n", + iocb->ki_filp, (u64)count, (u64)pos, 1); + return -EINVAL; + } + + engine = xcdev->engine; + xdev = xcdev->xdev; + + if (engine->dir != DMA_FROM_DEVICE) { + pr_err("r/w mismatch. READ, dir %d.\n", + engine->dir); + return -EINVAL; + } + + caio = kmem_cache_alloc(cdev_cache, GFP_KERNEL); + memset(caio, 0, sizeof(struct cdev_async_io)); + + caio->cb = kzalloc(count * (sizeof(struct xdma_io_cb)), GFP_KERNEL); + + spin_lock_init(&caio->lock); + iocb->private = caio; + caio->iocb = iocb; + caio->write = false; + caio->cancel = false; + caio->req_cnt = count; + + for (i = 0; i < count; i++) { + + memset(&(caio->cb[i]), 0, sizeof(struct xdma_io_cb)); + + caio->cb[i].buf = io[i].iov_base; + caio->cb[i].len = io[i].iov_len; + caio->cb[i].ep_addr = (u64)pos; + caio->cb[i].write = false; + caio->cb[i].private = caio; + caio->cb[i].io_done = async_io_handler; + + rv = check_transfer_align(engine, caio->cb[i].buf, + caio->cb[i].len, pos, 1); + if (rv) { + pr_info("Invalid transfer alignment detected\n"); + kmem_cache_free(cdev_cache, caio); + return rv; + } + + rv = char_sgdma_map_user_buf_to_sgl(&caio->cb[i], true); + if (rv < 0) + return rv; + + rv = xdma_xfer_submit_nowait((void *)&caio->cb[i], xdev, + engine->channel, caio->cb[i].write, + caio->cb[i].ep_addr, &caio->cb[i].sgt, + 0, c2h_timeout * 1000); + } + + if (engine->cmplthp) + xdma_kthread_wakeup(engine->cmplthp); + + return -EIOCBQUEUED; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) +static ssize_t cdev_write_iter(struct kiocb *iocb, struct iov_iter *io) +{ + return cdev_aio_write(iocb, io->iov, io->nr_segs, io->iov_offset); +} + +static ssize_t cdev_read_iter(struct kiocb *iocb, struct iov_iter *io) +{ + return cdev_aio_read(iocb, io->iov, io->nr_segs, io->iov_offset); +} +#endif + +static int ioctl_do_perf_start(struct xdma_engine *engine, unsigned long arg) +{ + int rv; + struct xdma_dev *xdev; + + if (!engine) { + pr_err("Invalid DMA engine\n"); + return -EINVAL; + } + + xdev = engine->xdev; + if (!xdev) { + pr_err("Invalid xdev\n"); + return -EINVAL; + } + + /* performance measurement already running on this engine? */ + if (engine->xdma_perf) { + dbg_perf("IOCTL_XDMA_PERF_START failed!\n"); + dbg_perf("Perf measurement already seems to be running!\n"); + return -EBUSY; + } + engine->xdma_perf = kzalloc(sizeof(struct xdma_performance_ioctl), + GFP_KERNEL); + + if (!engine->xdma_perf) + return -ENOMEM; + + rv = copy_from_user(engine->xdma_perf, + (struct xdma_performance_ioctl __user *)arg, + sizeof(struct xdma_performance_ioctl)); + + if (rv < 0) { + dbg_perf("Failed to copy from user space 0x%lx\n", arg); + return -EINVAL; + } + if (engine->xdma_perf->version != IOCTL_XDMA_PERF_V1) { + dbg_perf("Unsupported IOCTL version %d\n", + engine->xdma_perf->version); + return -EINVAL; + } + + enable_perf(engine); + dbg_perf("transfer_size = %d\n", engine->xdma_perf->transfer_size); + /* initialize wait queue */ +#if HAS_SWAKE_UP + init_swait_queue_head(&engine->xdma_perf_wq); +#else + init_waitqueue_head(&engine->xdma_perf_wq); +#endif + rv = xdma_performance_submit(xdev, engine); + if (rv < 0) + pr_err("Failed to submit dma performance\n"); + return rv; +} + +static int ioctl_do_perf_stop(struct xdma_engine *engine, unsigned long arg) +{ + struct xdma_transfer *transfer = NULL; + int rv; + + if (!engine) { + pr_err("Invalid DMA engine\n"); + return -EINVAL; + } + + dbg_perf("IOCTL_XDMA_PERF_STOP\n"); + + /* no performance measurement running on this engine? */ + if (!engine->xdma_perf) { + dbg_perf("No measurement in progress\n"); + return -EINVAL; + } + + /* stop measurement */ + transfer = engine_cyclic_stop(engine); + if (!transfer) { + pr_err("Failed to stop cyclic transfer\n"); + return -EINVAL; + } + dbg_perf("Waiting for measurement to stop\n"); + + get_perf_stats(engine); + + rv = copy_to_user((void __user *)arg, engine->xdma_perf, + sizeof(struct xdma_performance_ioctl)); + if (rv) { + dbg_perf("Error copying result to user\n"); + return rv; + } + + kfree(transfer); + + kfree(engine->xdma_perf); + engine->xdma_perf = NULL; + + return 0; +} + +static int ioctl_do_perf_get(struct xdma_engine *engine, unsigned long arg) +{ + int rc; + + if (!engine) { + pr_err("Invalid DMA engine\n"); + return -EINVAL; + } + + dbg_perf("IOCTL_XDMA_PERF_GET\n"); + + if (engine->xdma_perf) { + get_perf_stats(engine); + + rc = copy_to_user((void __user *)arg, engine->xdma_perf, + sizeof(struct xdma_performance_ioctl)); + if (rc) { + dbg_perf("Error copying result to user\n"); + return rc; + } + } else { + dbg_perf("engine->xdma_perf == NULL?\n"); + return -EPROTO; + } + + return 0; +} + +static int ioctl_do_addrmode_set(struct xdma_engine *engine, unsigned long arg) +{ + return engine_addrmode_set(engine, arg); +} + +static int ioctl_do_addrmode_get(struct xdma_engine *engine, unsigned long arg) +{ + int rv; + unsigned long src; + + if (!engine) { + pr_err("Invalid DMA engine\n"); + return -EINVAL; + } + src = !!engine->non_incr_addr; + + dbg_perf("IOCTL_XDMA_ADDRMODE_GET\n"); + rv = put_user(src, (int __user *)arg); + + return rv; +} + +static int ioctl_do_align_get(struct xdma_engine *engine, unsigned long arg) +{ + if (!engine) { + pr_err("Invalid DMA engine\n"); + return -EINVAL; + } + + dbg_perf("IOCTL_XDMA_ALIGN_GET\n"); + return put_user(engine->addr_align, (int __user *)arg); +} + + +static int ioctl_do_aperture_dma(struct xdma_engine *engine, unsigned long arg, + bool write) +{ + struct xdma_aperture_ioctl io; + struct xdma_io_cb cb; + ssize_t res; + int rv; + + rv = copy_from_user(&io, (struct xdma_aperture_ioctl __user *)arg, + sizeof(struct xdma_aperture_ioctl)); + if (rv < 0) { + dbg_tfr("%s failed to copy from user space 0x%lx\n", + engine->name, arg); + return -EINVAL; + } + + dbg_tfr("%s, W %d, buf 0x%lx,%lu, ep %llu, aperture %u.\n", + engine->name, write, io.buffer, io.len, io.ep_addr, + io.aperture); + + if ((write && engine->dir != DMA_TO_DEVICE) || + (!write && engine->dir != DMA_FROM_DEVICE)) { + pr_err("r/w mismatch. W %d, dir %d.\n", write, engine->dir); + return -EINVAL; + } + + rv = check_transfer_align(engine, (char *)io.buffer, io.len, + io.ep_addr, 1); + if (rv) { + pr_info("Invalid transfer alignment detected\n"); + return rv; + } + + memset(&cb, 0, sizeof(struct xdma_io_cb)); + cb.buf = (char __user *)io.buffer; + cb.len = io.len; + cb.ep_addr = io.ep_addr; + cb.write = write; + rv = char_sgdma_map_user_buf_to_sgl(&cb, write); + if (rv < 0) + return rv; + + io.error = 0; + res = xdma_xfer_aperture(engine, write, io.ep_addr, io.aperture, + &cb.sgt, 0, write ? h2c_timeout * 1000 : + c2h_timeout * 1000); + + char_sgdma_unmap_user_buf(&cb, write); + if (res < 0) + io.error = res; + else + io.done = res; + + rv = copy_to_user((struct xdma_aperture_ioctl __user *)arg, &io, + sizeof(struct xdma_aperture_ioctl)); + if (rv < 0) { + dbg_tfr("%s failed to copy to user space 0x%lx, %ld\n", + engine->name, arg, res); + return -EINVAL; + } + + return io.error; +} + +static long char_sgdma_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; + struct xdma_dev *xdev; + struct xdma_engine *engine; + + int rv = 0; + + rv = xcdev_check(__func__, xcdev, 1); + if (rv < 0) + return rv; + + xdev = xcdev->xdev; + engine = xcdev->engine; + + switch (cmd) { + case IOCTL_XDMA_PERF_START: + rv = ioctl_do_perf_start(engine, arg); + break; + case IOCTL_XDMA_PERF_STOP: + rv = ioctl_do_perf_stop(engine, arg); + break; + case IOCTL_XDMA_PERF_GET: + rv = ioctl_do_perf_get(engine, arg); + break; + case IOCTL_XDMA_ADDRMODE_SET: + rv = ioctl_do_addrmode_set(engine, arg); + break; + case IOCTL_XDMA_ADDRMODE_GET: + rv = ioctl_do_addrmode_get(engine, arg); + break; + case IOCTL_XDMA_ALIGN_GET: + rv = ioctl_do_align_get(engine, arg); + break; + case IOCTL_XDMA_APERTURE_R: + rv = ioctl_do_aperture_dma(engine, arg, 0); + break; + case IOCTL_XDMA_APERTURE_W: + rv = ioctl_do_aperture_dma(engine, arg, 1); + break; + default: + dbg_perf("Unsupported operation\n"); + rv = -EINVAL; + break; + } + + return rv; +} + +static int char_sgdma_open(struct inode *inode, struct file *file) +{ + struct xdma_cdev *xcdev; + struct xdma_engine *engine; + + char_open(inode, file); + + xcdev = (struct xdma_cdev *)file->private_data; + engine = xcdev->engine; + + if (engine->streaming && engine->dir == DMA_FROM_DEVICE) { + if (engine->device_open == 1) + return -EBUSY; + engine->device_open = 1; + + engine->eop_flush = (file->f_flags & O_TRUNC) ? 1 : 0; + } + + return 0; +} + +static int char_sgdma_close(struct inode *inode, struct file *file) +{ + struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; + struct xdma_engine *engine; + int rv; + + rv = xcdev_check(__func__, xcdev, 1); + if (rv < 0) + return rv; + + engine = xcdev->engine; + + if (engine->streaming && engine->dir == DMA_FROM_DEVICE) + engine->device_open = 0; + + return 0; +} +static const struct file_operations sgdma_fops = { + .owner = THIS_MODULE, + .open = char_sgdma_open, + .release = char_sgdma_close, + .write = char_sgdma_write, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) + .write_iter = cdev_write_iter, +#else + .aio_write = cdev_aio_write, +#endif + .read = char_sgdma_read, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) + .read_iter = cdev_read_iter, +#else + .aio_read = cdev_aio_read, +#endif + .unlocked_ioctl = char_sgdma_ioctl, + .llseek = char_sgdma_llseek, +}; + +void cdev_sgdma_init(struct xdma_cdev *xcdev) +{ + cdev_init(&xcdev->cdev, &sgdma_fops); +} diff --git a/host_software/driver/xdma/cdev_sgdma.h b/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.h similarity index 53% rename from host_software/driver/xdma/cdev_sgdma.h rename to host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.h index 7781fae..6f7ae15 100644 --- a/host_software/driver/xdma/cdev_sgdma.h +++ b/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.h @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #ifndef _XDMA_IOCALLS_POSIX_H_ @@ -30,7 +37,7 @@ * * _IO(type,nr) no arguments * _IOR(type,nr,datatype) read data from driver - * _IOW(type,nr.datatype) write data to driver + * _IOW(type,nr,datatype) write data to driver * _IORW(type,nr,datatype) read/write data * * _IOC_DIR(nr) returns direction @@ -39,19 +46,26 @@ * _IOC_SIZE(nr) returns size */ -struct xdma_performance_ioctl -{ - /* IOCTL_XDMA_IOCTL_Vx */ - uint32_t version; - uint32_t transfer_size; - /* measurement */ - uint32_t stopped; - uint32_t iterations; - uint64_t clock_cycle_count; - uint64_t data_cycle_count; - uint64_t pending_count; +struct xdma_performance_ioctl { + /* IOCTL_XDMA_IOCTL_Vx */ + uint32_t version; + uint32_t transfer_size; + /* measurement */ + uint32_t stopped; + uint32_t iterations; + uint64_t clock_cycle_count; + uint64_t data_cycle_count; + uint64_t pending_count; }; +struct xdma_aperture_ioctl { + uint64_t ep_addr; + unsigned int aperture; + unsigned long buffer; + unsigned long len; + int error; + unsigned long done; +}; /* IOCTL codes */ @@ -62,5 +76,7 @@ struct xdma_performance_ioctl #define IOCTL_XDMA_ADDRMODE_SET _IOW('q', 4, int) #define IOCTL_XDMA_ADDRMODE_GET _IOR('q', 5, int) #define IOCTL_XDMA_ALIGN_GET _IOR('q', 6, int) +#define IOCTL_XDMA_APERTURE_R _IOW('q', 7, struct xdma_aperture_ioctl *) +#define IOCTL_XDMA_APERTURE_W _IOW('q', 8, struct xdma_aperture_ioctl *) #endif /* _XDMA_IOCALLS_POSIX_H_ */ diff --git a/host_software/driver/xdma/cdev_xvc.c b/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.c similarity index 69% rename from host_software/driver/xdma/cdev_xvc.c rename to host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.c index b96f518..df5a5e8 100644 --- a/host_software/driver/xdma/cdev_xvc.c +++ b/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.c @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ @@ -25,30 +32,30 @@ #ifdef __REG_DEBUG__ /* SECTION: Function definitions */ -inline void __write_register(const char *fn, u32 value, void *base, +inline void __write_register(const char *fn, u32 value, void __iomem *base, unsigned int off) { - pr_info("%s: 0x%p, W reg 0x%lx, 0x%x.\n", fn, base, off, value); - iowrite32(value, base + off); + pr_info("%s: 0x%p, W reg 0x%lx, 0x%x.\n", fn, base, off, value); + iowrite32(value, base + off); } -inline u32 __read_register(const char *fn, void *base, unsigned int off) +inline u32 __read_register(const char *fn, void __iomem *base, unsigned int off) { u32 v = ioread32(base + off); - pr_info("%s: 0x%p, R reg 0x%lx, 0x%x.\n", fn, base, off, v); - return v; + pr_info("%s: 0x%p, R reg 0x%lx, 0x%x.\n", fn, base, off, v); + return v; } -#define write_register(v,base,off) __write_register(__func__, v, base, off) -#define read_register(base,off) __read_register(__func__, base, off) +#define write_register(v, base, off) __write_register(__func__, v, base, off) +#define read_register(base, off) __read_register(__func__, base, off) #else -#define write_register(v,base,off) iowrite32(v, (base) + (off)) -#define read_register(base,off) ioread32((base) + (off)) +#define write_register(v, base, off) iowrite32(v, (base) + (off)) +#define read_register(base, off) ioread32((base) + (off)) #endif /* #ifdef __REG_DEBUG__ */ -static int xvc_shift_bits(void *base, u32 tms_bits, u32 tdi_bits, +static int xvc_shift_bits(void __iomem *base, u32 tms_bits, u32 tdi_bits, u32 *tdo_bits) { u32 control; @@ -85,7 +92,7 @@ static int xvc_shift_bits(void *base, u32 tms_bits, u32 tdi_bits, static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { - struct xdma_cdev *xcdev = (struct xdma_cdev *)filp->private_data; + struct xdma_cdev *xcdev = (struct xdma_cdev *)filp->private_data; struct xdma_dev *xdev; struct xvc_ioc xvc_obj; unsigned int opcode; @@ -102,6 +109,7 @@ static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) rv = xcdev_check(__func__, xcdev, 0); if (rv < 0) return rv; + xdev = xcdev->xdev; if (cmd != XDMA_IOCXVC) { @@ -128,7 +136,7 @@ static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) total_bits = xvc_obj.length; total_bytes = (total_bits + 7) >> 3; - buffer = (char *)kmalloc(total_bytes * 3, GFP_KERNEL); + buffer = kmalloc(total_bytes * 3, GFP_KERNEL); if (!buffer) { pr_info("OOM %u, op 0x%x, len %u bits, %u bytes.\n", 3 * total_bytes, opcode, total_bits, total_bytes); @@ -139,12 +147,16 @@ static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) tdi_buf = tms_buf + total_bytes; tdo_buf = tdi_buf + total_bytes; - rv = copy_from_user((void *)tms_buf, xvc_obj.tms_buf, total_bytes); + rv = copy_from_user((void *)tms_buf, + (const char __user *)xvc_obj.tms_buf, + total_bytes); if (rv) { pr_info("copy tmfs_buf failed: %d/%u.\n", rv, total_bytes); goto cleanup; } - rv = copy_from_user((void *)tdi_buf, xvc_obj.tdi_buf, total_bytes); + rv = copy_from_user((void *)tdi_buf, + (const char __user *)xvc_obj.tdi_buf, + total_bytes); if (rv) { pr_info("copy tdi_buf failed: %d/%u.\n", rv, total_bytes); goto cleanup; @@ -155,7 +167,8 @@ static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) iobase = xdev->bar[xcdev->bar] + xcdev->base; /* set length register to 32 initially if more than one - * word-transaction is to be done */ + * word-transaction is to be done + */ if (total_bits >= 32) write_register(0x20, iobase, XVC_BAR_LENGTH_REG); @@ -166,7 +179,7 @@ static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) u32 tms_store = 0; u32 tdi_store = 0; u32 tdo_store = 0; - + if (bits_left < 32) { /* set number of bits to shift out */ write_register(bits_left, iobase, XVC_BAR_LENGTH_REG); @@ -179,33 +192,35 @@ static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) /* Shift data out and copy to output buffer */ rv = xvc_shift_bits(iobase, tms_store, tdi_store, &tdo_store); if (rv < 0) - goto cleanup; + break; memcpy(tdo_buf + bytes, &tdo_store, shift_bytes); } + if (rv < 0) + goto unlock; + /* if testing bar access swap tdi and tdo bufferes to "loopback" */ if (opcode == 0x2) { - char *tmp = tdo_buf; + unsigned char *tmp = tdo_buf; tdo_buf = tdi_buf; tdi_buf = tmp; } - rv = copy_to_user((void *)xvc_obj.tdo_buf, tdo_buf, total_bytes); - if (rv) { + rv = copy_to_user(xvc_obj.tdo_buf, (const void *)tdo_buf, total_bytes); + if (rv) pr_info("copy back tdo_buf failed: %d/%u.\n", rv, total_bytes); - rv = -EFAULT; - goto cleanup; - } - -cleanup: - if (buffer) - kfree(buffer); - wmb(); //! +unlock: +#if HAS_MMIOWB + mmiowb(); +#endif spin_unlock(&xcdev->lock); +cleanup: + kfree(buffer); + return rv; } @@ -213,10 +228,10 @@ static long xvc_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) * character device file operations for the XVC */ static const struct file_operations xvc_fops = { - .owner = THIS_MODULE, - .open = char_open, - .release = char_close, - .unlocked_ioctl = xvc_ioctl, + .owner = THIS_MODULE, + .open = char_open, + .release = char_close, + .unlocked_ioctl = xvc_ioctl, }; void cdev_xvc_init(struct xdma_cdev *xcdev) diff --git a/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.h b/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.h new file mode 100644 index 0000000..a2a543a --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.h @@ -0,0 +1,42 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __XVC_IOCTL_H__ +#define __XVC_IOCTL_H__ + +#include + +/* + * the bar offset can be changed at compile time + */ +#define XVC_BAR_OFFSET_DFLT 0x40000 /* DSA 4.0 */ + +#define XVC_MAGIC 0x58564344 // "XVCD" + +struct xvc_ioc { + unsigned int opcode; + unsigned int length; + const char __user *tms_buf; + const char __user *tdi_buf; + void __user *tdo_buf; +}; + +#define XDMA_IOCXVC _IOWR(XVC_MAGIC, 1, struct xvc_ioc) + +#endif /* __XVC_IOCTL_H__ */ diff --git a/host_software/driver/xdma/libxdma.c b/host_software/driver/XDMA/linux-kernel/xdma/libxdma.c similarity index 58% rename from host_software/driver/xdma/libxdma.c rename to host_software/driver/XDMA/linux-kernel/xdma/libxdma.c index 7a59ef0..4342b79 100644 --- a/host_software/driver/xdma/libxdma.c +++ b/host_software/driver/XDMA/linux-kernel/xdma/libxdma.c @@ -4,13 +4,20 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ -#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ #include #include @@ -23,23 +30,8 @@ #include "libxdma.h" #include "libxdma_api.h" #include "cdev_sgdma.h" +#include "xdma_thread.h" -/* SECTION: Module licensing */ - -#ifdef __LIBXDMA_MOD__ -#include "version.h" -#define DRV_MODULE_NAME "libxdma" -#define DRV_MODULE_DESC "Xilinx XDMA Base Driver" -#define DRV_MODULE_RELDATE "Feb. 2018" - -static char version[] = - DRV_MODULE_DESC " " DRV_MODULE_NAME " v" DRV_MODULE_VERSION "\n"; - -MODULE_AUTHOR("Xilinx, Inc."); -MODULE_DESCRIPTION(DRV_MODULE_DESC); -MODULE_VERSION(DRV_MODULE_VERSION); -MODULE_LICENSE("Dual BSD/GPL"); -#endif /* Module Parameters */ static unsigned int poll_mode; @@ -48,15 +40,55 @@ MODULE_PARM_DESC(poll_mode, "Set 1 for hw polling, default is 0 (interrupts)"); static unsigned int interrupt_mode; module_param(interrupt_mode, uint, 0644); -MODULE_PARM_DESC(interrupt_mode, "0 - MSI-x , 1 - MSI, 2 - Legacy"); +MODULE_PARM_DESC(interrupt_mode, "0 - Auto , 1 - MSI, 2 - Legacy, 3 - MSI-x"); -static unsigned int enable_credit_mp; -module_param(enable_credit_mp, uint, 0644); -MODULE_PARM_DESC(enable_credit_mp, "Set 1 to enable creidt feature, default is 0 (no credit control)"); +static unsigned int enable_st_c2h_credit = 0; +module_param(enable_st_c2h_credit, uint, 0644); +MODULE_PARM_DESC(enable_st_c2h_credit, + "Set 1 to enable ST C2H engine credit feature, default is 0 ( credit control disabled)"); unsigned int desc_blen_max = XDMA_DESC_BLEN_MAX; module_param(desc_blen_max, uint, 0644); -MODULE_PARM_DESC(desc_blen_max, "per descriptor max. buffer length, default is (1 << 28) - 1"); +MODULE_PARM_DESC(desc_blen_max, + "per descriptor max. buffer length, default is (1 << 28) - 1"); + +#define XDMA_PERF_NUM_DESC 128 + +/* Kernel version adaptative code */ +#if HAS_SWAKE_UP_ONE +/* since 4.18, using simple wait queues is not recommended + * except for realtime constraint (see swait.h comments) + * and will likely be removed in future kernel versions + */ +#define xlx_wake_up swake_up_one +#define xlx_wait_event_interruptible_timeout \ + swait_event_interruptible_timeout_exclusive +#define xlx_wait_event_interruptible \ + swait_event_interruptible_exclusive +#elif HAS_SWAKE_UP +#define xlx_wake_up swake_up +#define xlx_wait_event_interruptible_timeout \ + swait_event_interruptible_timeout +#define xlx_wait_event_interruptible \ + swait_event_interruptible +#else +#define xlx_wake_up wake_up_interruptible +/* wait_event_interruptible_timeout() could return prematurely (-ERESTARTSYS) + * if it is interrupted by a signal */ +#define xlx_wait_event_interruptible_timeout(wq, condition, timeout) \ +({\ + int __ret = 0; \ + unsigned long expire = timeout + jiffies; \ + do { \ + __ret = wait_event_interruptible_timeout(wq, condition, \ + timeout); \ + } while ((__ret < 0) && (jiffies < expire)); \ + __ret; \ +}) +#define xlx_wait_event_interruptible \ + wait_event_interruptible +#endif + /* * xdma device management @@ -69,16 +101,23 @@ static LIST_HEAD(xdev_rcu_list); static DEFINE_SPINLOCK(xdev_rcu_lock); #ifndef list_last_entry -#define list_last_entry(ptr, type, member) \ - list_entry((ptr)->prev, type, member) +#define list_last_entry(ptr, type, member) list_entry((ptr)->prev, type, member) #endif -static inline void xdev_list_add(struct xdma_dev *xdev) +static inline int xdev_list_add(struct xdma_dev *xdev) { mutex_lock(&xdev_mutex); - if (list_empty(&xdev_list)) + if (list_empty(&xdev_list)) { xdev->idx = 0; - else { + if (poll_mode) { + int rv = xdma_threads_create(xdev->h2c_channel_max + + xdev->c2h_channel_max); + if (rv < 0) { + mutex_unlock(&xdev_mutex); + return rv; + } + } + } else { struct xdma_dev *last; last = list_last_entry(&xdev_list, struct xdma_dev, list_head); @@ -88,11 +127,13 @@ static inline void xdev_list_add(struct xdma_dev *xdev) mutex_unlock(&xdev_mutex); dbg_init("dev %s, xdev 0x%p, xdma idx %d.\n", - dev_name(&xdev->pdev->dev), xdev, xdev->idx); + dev_name(&xdev->pdev->dev), xdev, xdev->idx); spin_lock(&xdev_rcu_lock); list_add_tail_rcu(&xdev->rcu_node, &xdev_rcu_list); spin_unlock(&xdev_rcu_lock); + + return 0; } #undef list_last_entry @@ -101,6 +142,8 @@ static inline void xdev_list_remove(struct xdma_dev *xdev) { mutex_lock(&xdev_mutex); list_del(&xdev->list_head); + if (poll_mode && list_empty(&xdev_list)) + xdma_threads_destroy(); mutex_unlock(&xdev_mutex); spin_lock(&xdev_rcu_lock); @@ -111,22 +154,21 @@ static inline void xdev_list_remove(struct xdma_dev *xdev) struct xdma_dev *xdev_find_by_pdev(struct pci_dev *pdev) { - struct xdma_dev *xdev, *tmp; - - mutex_lock(&xdev_mutex); - list_for_each_entry_safe(xdev, tmp, &xdev_list, list_head) { - if (xdev->pdev == pdev) { - mutex_unlock(&xdev_mutex); - return xdev; - } - } - mutex_unlock(&xdev_mutex); - return NULL; + struct xdma_dev *xdev, *tmp; + + mutex_lock(&xdev_mutex); + list_for_each_entry_safe(xdev, tmp, &xdev_list, list_head) { + if (xdev->pdev == pdev) { + mutex_unlock(&xdev_mutex); + return xdev; + } + } + mutex_unlock(&xdev_mutex); + return NULL; } -EXPORT_SYMBOL_GPL(xdev_find_by_pdev); static inline int debug_check_dev_hndl(const char *fname, struct pci_dev *pdev, - void *hndl) + void *hndl) { struct xdma_dev *xdev; @@ -135,13 +177,13 @@ static inline int debug_check_dev_hndl(const char *fname, struct pci_dev *pdev, xdev = xdev_find_by_pdev(pdev); if (!xdev) { - pr_info("%s pdev 0x%p, hndl 0x%p, NO match found!\n", - fname, pdev, hndl); + pr_info("%s pdev 0x%p, hndl 0x%p, NO match found!\n", fname, + pdev, hndl); return -EINVAL; } if (xdev != hndl) { - pr_err("%s pdev 0x%p, hndl 0x%p != 0x%p!\n", - fname, pdev, hndl, xdev); + pr_err("%s pdev 0x%p, hndl 0x%p != 0x%p!\n", fname, pdev, hndl, + xdev); return -EINVAL; } @@ -150,14 +192,15 @@ static inline int debug_check_dev_hndl(const char *fname, struct pci_dev *pdev, #ifdef __LIBXDMA_DEBUG__ /* SECTION: Function definitions */ -inline void __write_register(const char *fn, u32 value, void *iomem, unsigned long off) +inline void __write_register(const char *fn, u32 value, void *iomem, + unsigned long off) { pr_err("%s: w reg 0x%lx(0x%p), 0x%x.\n", fn, off, iomem, value); iowrite32(value, iomem); } -#define write_register(v,mem,off) __write_register(__func__, v, mem, off) +#define write_register(v, mem, off) __write_register(__func__, v, mem, off) #else -#define write_register(v,mem,off) iowrite32(v, mem) +#define write_register(v, mem, off) iowrite32(v, mem) #endif inline u32 read_register(void *iomem) @@ -177,8 +220,9 @@ static inline u64 build_u64(u64 hi, u64 lo) static void check_nonzero_interrupt_status(struct xdma_dev *xdev) { - struct interrupt_regs *reg = (struct interrupt_regs *) - (xdev->bar[xdev->config_bar_idx] + XDMA_OFS_INT_CTRL); + struct interrupt_regs *reg = + (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + + XDMA_OFS_INT_CTRL); u32 w; w = read_register(®->user_int_enable); @@ -188,7 +232,7 @@ static void check_nonzero_interrupt_status(struct xdma_dev *xdev) w = read_register(®->channel_int_enable); if (w) - pr_info("%s xdma%d channel_int_enable = 0x%08x\n", + pr_info("%s xdma%d channel_int_enable = 0x%08x\n", dev_name(&xdev->pdev->dev), xdev->idx, w); w = read_register(®->user_int_request); @@ -213,8 +257,9 @@ static void check_nonzero_interrupt_status(struct xdma_dev *xdev) /* channel_interrupts_enable -- Enable interrupts we are interested in */ static void channel_interrupts_enable(struct xdma_dev *xdev, u32 mask) { - struct interrupt_regs *reg = (struct interrupt_regs *) - (xdev->bar[xdev->config_bar_idx] + XDMA_OFS_INT_CTRL); + struct interrupt_regs *reg = + (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + + XDMA_OFS_INT_CTRL); write_register(mask, ®->channel_int_enable_w1s, XDMA_OFS_INT_CTRL); } @@ -222,8 +267,9 @@ static void channel_interrupts_enable(struct xdma_dev *xdev, u32 mask) /* channel_interrupts_disable -- Disable interrupts we not interested in */ static void channel_interrupts_disable(struct xdma_dev *xdev, u32 mask) { - struct interrupt_regs *reg = (struct interrupt_regs *) - (xdev->bar[xdev->config_bar_idx] + XDMA_OFS_INT_CTRL); + struct interrupt_regs *reg = + (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + + XDMA_OFS_INT_CTRL); write_register(mask, ®->channel_int_enable_w1c, XDMA_OFS_INT_CTRL); } @@ -231,8 +277,9 @@ static void channel_interrupts_disable(struct xdma_dev *xdev, u32 mask) /* user_interrupts_enable -- Enable interrupts we are interested in */ static void user_interrupts_enable(struct xdma_dev *xdev, u32 mask) { - struct interrupt_regs *reg = (struct interrupt_regs *) - (xdev->bar[xdev->config_bar_idx] + XDMA_OFS_INT_CTRL); + struct interrupt_regs *reg = + (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + + XDMA_OFS_INT_CTRL); write_register(mask, ®->user_int_enable_w1s, XDMA_OFS_INT_CTRL); } @@ -240,8 +287,9 @@ static void user_interrupts_enable(struct xdma_dev *xdev, u32 mask) /* user_interrupts_disable -- Disable interrupts we not interested in */ static void user_interrupts_disable(struct xdma_dev *xdev, u32 mask) { - struct interrupt_regs *reg = (struct interrupt_regs *) - (xdev->bar[xdev->config_bar_idx] + XDMA_OFS_INT_CTRL); + struct interrupt_regs *reg = + (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + + XDMA_OFS_INT_CTRL); write_register(mask, ®->user_int_enable_w1c, XDMA_OFS_INT_CTRL); } @@ -249,18 +297,19 @@ static void user_interrupts_disable(struct xdma_dev *xdev, u32 mask) /* read_interrupts -- Print the interrupt controller status */ static u32 read_interrupts(struct xdma_dev *xdev) { - struct interrupt_regs *reg = (struct interrupt_regs *) - (xdev->bar[xdev->config_bar_idx] + XDMA_OFS_INT_CTRL); + struct interrupt_regs *reg = + (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + + XDMA_OFS_INT_CTRL); u32 lo; u32 hi; /* extra debugging; inspect complete engine set of registers */ hi = read_register(®->user_int_request); dbg_io("ioread32(0x%p) returned 0x%08x (user_int_request).\n", - ®->user_int_request, hi); + ®->user_int_request, hi); lo = read_register(®->channel_int_request); dbg_io("ioread32(0x%p) returned 0x%08x (channel_int_request)\n", - ®->channel_int_request, lo); + ®->channel_int_request, lo); /* return interrupts: user in upper 16-bits, channel in lower 16-bits */ return build_u32(hi, lo); @@ -272,26 +321,27 @@ void enable_perf(struct xdma_engine *engine) w = XDMA_PERF_CLEAR; write_register(w, &engine->regs->perf_ctrl, - (unsigned long)(&engine->regs->perf_ctrl) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs->perf_ctrl) - + (unsigned long)(&engine->regs)); read_register(&engine->regs->identifier); w = XDMA_PERF_AUTO | XDMA_PERF_RUN; write_register(w, &engine->regs->perf_ctrl, - (unsigned long)(&engine->regs->perf_ctrl) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs->perf_ctrl) - + (unsigned long)(&engine->regs)); read_register(&engine->regs->identifier); dbg_perf("IOCTL_XDMA_PERF_START\n"); - } -EXPORT_SYMBOL_GPL(enable_perf); void get_perf_stats(struct xdma_engine *engine) { u32 hi; u32 lo; - BUG_ON(!engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return; + } if (!engine->xdma_perf) { pr_info("%s perf struct not set up.\n", engine->name); @@ -315,36 +365,38 @@ void get_perf_stats(struct xdma_engine *engine) lo = read_register(&engine->regs->perf_pnd_lo); engine->xdma_perf->pending_count = build_u64(hi, lo); } -EXPORT_SYMBOL_GPL(get_perf_stats); -static void engine_reg_dump(struct xdma_engine *engine) +static int engine_reg_dump(struct xdma_engine *engine) { u32 w; - BUG_ON(!engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } w = read_register(&engine->regs->identifier); - pr_info("%s: ioread32(0x%p) = 0x%08x (id).\n", - engine->name, &engine->regs->identifier, w); + pr_info("%s: ioread32(0x%p) = 0x%08x (id).\n", engine->name, + &engine->regs->identifier, w); w &= BLOCK_ID_MASK; if (w != BLOCK_ID_HEAD) { - pr_info("%s: engine id missing, 0x%08x exp. & 0x%x = 0x%x\n", - engine->name, w, BLOCK_ID_MASK, BLOCK_ID_HEAD); - return; + pr_err("%s: engine id missing, 0x%08x exp. & 0x%x = 0x%x\n", + engine->name, w, BLOCK_ID_MASK, BLOCK_ID_HEAD); + return -EINVAL; } /* extra debugging; inspect complete engine set of registers */ w = read_register(&engine->regs->status); - pr_info("%s: ioread32(0x%p) = 0x%08x (status).\n", - engine->name, &engine->regs->status, w); + pr_info("%s: ioread32(0x%p) = 0x%08x (status).\n", engine->name, + &engine->regs->status, w); w = read_register(&engine->regs->control); - pr_info("%s: ioread32(0x%p) = 0x%08x (control)\n", - engine->name, &engine->regs->control, w); + pr_info("%s: ioread32(0x%p) = 0x%08x (control)\n", engine->name, + &engine->regs->control, w); w = read_register(&engine->sgdma_regs->first_desc_lo); - pr_info("%s: ioread32(0x%p) = 0x%08x (first_desc_lo)\n", - engine->name, &engine->sgdma_regs->first_desc_lo, w); + pr_info("%s: ioread32(0x%p) = 0x%08x (first_desc_lo)\n", engine->name, + &engine->sgdma_regs->first_desc_lo, w); w = read_register(&engine->sgdma_regs->first_desc_hi); - pr_info("%s: ioread32(0x%p) = 0x%08x (first_desc_hi)\n", - engine->name, &engine->sgdma_regs->first_desc_hi, w); + pr_info("%s: ioread32(0x%p) = 0x%08x (first_desc_hi)\n", engine->name, + &engine->sgdma_regs->first_desc_hi, w); w = read_register(&engine->sgdma_regs->first_desc_adjacent); pr_info("%s: ioread32(0x%p) = 0x%08x (first_desc_adjacent).\n", engine->name, &engine->sgdma_regs->first_desc_adjacent, w); @@ -354,15 +406,10 @@ static void engine_reg_dump(struct xdma_engine *engine) w = read_register(&engine->regs->interrupt_enable_mask); pr_info("%s: ioread32(0x%p) = 0x%08x (interrupt_enable_mask)\n", engine->name, &engine->regs->interrupt_enable_mask, w); + + return 0; } -/** - * engine_status_read() - read status of SG DMA engine (optionally reset) - * - * Stores status in engine->status. - * - * @return -1 on failure, status register otherwise - */ static void engine_status_dump(struct xdma_engine *engine) { u32 v = engine->status; @@ -371,7 +418,7 @@ static void engine_status_dump(struct xdma_engine *engine) int len = 0; len = sprintf(buf, "SG engine %s status: 0x%08x: ", engine->name, v); - + if ((v & XDMA_STAT_BUSY)) len += sprintf(buf + len, "BUSY,"); if ((v & XDMA_STAT_DESC_STOPPED)) @@ -379,8 +426,8 @@ static void engine_status_dump(struct xdma_engine *engine) if ((v & XDMA_STAT_DESC_COMPLETED)) len += sprintf(buf + len, "DESC_COMPL,"); - /* common H2C & C2H */ - if ((v & XDMA_STAT_COMMON_ERR_MASK)) { + /* common H2C & C2H */ + if ((v & XDMA_STAT_COMMON_ERR_MASK)) { if ((v & XDMA_STAT_ALIGN_MISMATCH)) len += sprintf(buf + len, "ALIGN_MISMATCH "); if ((v & XDMA_STAT_MAGIC_STOPPED)) @@ -392,7 +439,7 @@ static void engine_status_dump(struct xdma_engine *engine) buf[len - 1] = ','; } - if ((engine->dir == DMA_TO_DEVICE)) { + if (engine->dir == DMA_TO_DEVICE) { /* H2C only */ if ((v & XDMA_STAT_H2C_R_ERR_MASK)) { len += sprintf(buf + len, "R:"); @@ -417,7 +464,7 @@ static void engine_status_dump(struct xdma_engine *engine) len += sprintf(buf + len, "SLAVE_ERR "); buf[len - 1] = ','; } - + } else { /* C2H only */ if ((v & XDMA_STAT_C2H_R_ERR_MASK)) { @@ -430,8 +477,8 @@ static void engine_status_dump(struct xdma_engine *engine) } } - /* common H2C & C2H */ - if ((v & XDMA_STAT_DESC_ERR_MASK)) { + /* common H2C & C2H */ + if ((v & XDMA_STAT_DESC_ERR_MASK)) { len += sprintf(buf + len, "DESC_ERR:"); if ((v & XDMA_STAT_DESC_UNSUPP_REQ)) len += sprintf(buf + len, "UNSUPP_REQ "); @@ -450,38 +497,59 @@ static void engine_status_dump(struct xdma_engine *engine) pr_info("%s\n", buffer); } -static u32 engine_status_read(struct xdma_engine *engine, bool clear, bool dump) +/** + * engine_status_read() - read status of SG DMA engine (optionally reset) + * + * Stores status in engine->status. + * + * @return error value on failure, 0 otherwise + */ +static int engine_status_read(struct xdma_engine *engine, bool clear, bool dump) { - u32 value; + int rv = 0; - BUG_ON(!engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } - if (dump) - engine_reg_dump(engine); + if (dump) { + rv = engine_reg_dump(engine); + if (rv < 0) { + pr_err("Failed to dump register\n"); + return rv; + } + } /* read status register */ if (clear) - value = engine->status = - read_register(&engine->regs->status_rc); + engine->status = read_register(&engine->regs->status_rc); else - value = engine->status = read_register(&engine->regs->status); + engine->status = read_register(&engine->regs->status); if (dump) engine_status_dump(engine); - return value; + return rv; } /** * xdma_engine_stop() - stop an SG DMA engine * */ -static void xdma_engine_stop(struct xdma_engine *engine) +static int xdma_engine_stop(struct xdma_engine *engine) { u32 w; - BUG_ON(!engine); - dbg_tfr("xdma_engine_stop(engine=%p)\n", engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } + dbg_tfr("%s(engine=%p)\n", __func__, engine); + + if (enable_st_c2h_credit && engine->streaming && + engine->dir == DMA_FROM_DEVICE) + write_register(0, &engine->sgdma_regs->credits, 0); w = 0; w |= (u32)XDMA_CTRL_IE_DESC_ALIGN_MISMATCH; @@ -490,31 +558,31 @@ static void xdma_engine_stop(struct xdma_engine *engine) w |= (u32)XDMA_CTRL_IE_DESC_ERROR; if (poll_mode) { - w |= (u32) XDMA_CTRL_POLL_MODE_WB; + w |= (u32)XDMA_CTRL_POLL_MODE_WB; } else { w |= (u32)XDMA_CTRL_IE_DESC_STOPPED; w |= (u32)XDMA_CTRL_IE_DESC_COMPLETED; - - /* Disable IDLE STOPPED for MM */ - if ((engine->streaming && (engine->dir == DMA_FROM_DEVICE)) || - (engine->xdma_perf)) - w |= (u32)XDMA_CTRL_IE_IDLE_STOPPED; } dbg_tfr("Stopping SG DMA %s engine; writing 0x%08x to 0x%p.\n", - engine->name, w, (u32 *)&engine->regs->control); + engine->name, w, (u32 *)&engine->regs->control); write_register(w, &engine->regs->control, (unsigned long)(&engine->regs->control) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs)); /* dummy read of status register to flush all previous writes */ - dbg_tfr("xdma_engine_stop(%s) done\n", engine->name); + dbg_tfr("%s(%s) done\n", __func__, engine->name); + engine->running = 0; + return 0; } -static void engine_start_mode_config(struct xdma_engine *engine) +static int engine_start_mode_config(struct xdma_engine *engine) { u32 w; - BUG_ON(!engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } /* If a perf test is running, enable the engine interrupts */ if (engine->xdma_perf) { @@ -526,9 +594,10 @@ static void engine_start_mode_config(struct xdma_engine *engine) w |= XDMA_CTRL_IE_READ_ERROR; w |= XDMA_CTRL_IE_DESC_ERROR; - write_register(w, &engine->regs->interrupt_enable_mask, + write_register( + w, &engine->regs->interrupt_enable_mask, (unsigned long)(&engine->regs->interrupt_enable_mask) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs)); } /* write control register of SG DMA engine */ @@ -540,30 +609,57 @@ static void engine_start_mode_config(struct xdma_engine *engine) if (poll_mode) { w |= (u32)XDMA_CTRL_POLL_MODE_WB; - } else { + } else { w |= (u32)XDMA_CTRL_IE_DESC_STOPPED; w |= (u32)XDMA_CTRL_IE_DESC_COMPLETED; - - if ((engine->streaming && (engine->dir == DMA_FROM_DEVICE)) || - (engine->xdma_perf)) - w |= (u32)XDMA_CTRL_IE_IDLE_STOPPED; - - /* set non-incremental addressing mode */ - if (engine->non_incr_addr) - w |= (u32)XDMA_CTRL_NON_INCR_ADDR; } + /* set non-incremental addressing mode */ + if (engine->non_incr_addr) + w |= (u32)XDMA_CTRL_NON_INCR_ADDR; + dbg_tfr("iowrite32(0x%08x to 0x%p) (control)\n", w, - (void *)&engine->regs->control); + (void *)&engine->regs->control); + /* start the engine */ write_register(w, &engine->regs->control, - (unsigned long)(&engine->regs->control) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs->control) - + (unsigned long)(&engine->regs)); /* dummy read of status register to flush all previous writes */ w = read_register(&engine->regs->status); dbg_tfr("ioread32(0x%p) = 0x%08x (dummy read flushes writes).\n", - &engine->regs->status, w); + &engine->regs->status, w); + return 0; +} + +/** + * xdma_get_next_adj() + * + * Get the number for adjacent descriptors to set in a descriptor, based on the + * remaining number of descriptors and the lower bits of the address of the + * next descriptor. + * Since the number of descriptors in a page (XDMA_PAGE_SIZE) is 128 and the + * maximum size of a block of adjacent descriptors is 64 (63 max adjacent + * descriptors for any descriptor), align the blocks of adjacent descriptors + * to the block size. + */ +static u32 xdma_get_next_adj(unsigned int remaining, u32 next_lo) +{ + unsigned int next_index; + + dbg_desc("%s: remaining_desc %u, next_lo 0x%x\n",__func__, remaining, + next_lo); + + if (remaining <= 1) + return 0; + + /* shift right 5 times corresponds to a division by + * sizeof(xdma_desc) = 32 + */ + next_index = ((next_lo & (XDMA_PAGE_SIZE - 1)) >> 5) % + XDMA_MAX_ADJ_BLOCK_SIZE; + return min(XDMA_MAX_ADJ_BLOCK_SIZE - next_index - 1, remaining - 1); } /** @@ -585,22 +681,46 @@ static void engine_start_mode_config(struct xdma_engine *engine) static struct xdma_transfer *engine_start(struct xdma_engine *engine) { struct xdma_transfer *transfer; - u32 w; - int extra_adj = 0; + u32 w, next_adj; + int rv; + + if (!engine) { + pr_err("dma engine NULL\n"); + return NULL; + } /* engine must be idle */ - BUG_ON(engine->running); + if (engine->running) { + pr_info("%s engine is not in idle state to start\n", + engine->name); + return NULL; + } + /* engine transfer queue must not be empty */ - BUG_ON(list_empty(&engine->transfer_list)); + if (list_empty(&engine->transfer_list)) { + pr_debug("%s engine transfer queue must not be empty\n", + engine->name); + return NULL; + } /* inspect first transfer queued on the engine */ transfer = list_entry(engine->transfer_list.next, struct xdma_transfer, - entry); - BUG_ON(!transfer); + entry); + if (!transfer) { + pr_debug("%s queued transfer must not be empty\n", + engine->name); + return NULL; + } /* engine is no longer shutdown */ engine->shutdown = ENGINE_SHUTDOWN_NONE; - dbg_tfr("engine_start(%s): transfer=0x%p.\n", engine->name, transfer); + dbg_tfr("%s(%s): transfer=0x%p.\n", __func__, engine->name, transfer); + + /* Add credits for Streaming mode C2H */ + if (enable_st_c2h_credit && engine->streaming && + engine->dir == DMA_FROM_DEVICE) + write_register(engine->desc_used, + &engine->sgdma_regs->credits, 0); /* initialize number of descriptors of dequeued transfers */ engine->desc_dequeued = 0; @@ -608,37 +728,47 @@ static struct xdma_transfer *engine_start(struct xdma_engine *engine) /* write lower 32-bit of bus address of transfer first descriptor */ w = cpu_to_le32(PCI_DMA_L(transfer->desc_bus)); dbg_tfr("iowrite32(0x%08x to 0x%p) (first_desc_lo)\n", w, - (void *)&engine->sgdma_regs->first_desc_lo); + (void *)&engine->sgdma_regs->first_desc_lo); write_register(w, &engine->sgdma_regs->first_desc_lo, - (unsigned long)(&engine->sgdma_regs->first_desc_lo) - - (unsigned long)(&engine->sgdma_regs)); + (unsigned long)(&engine->sgdma_regs->first_desc_lo) - + (unsigned long)(&engine->sgdma_regs)); /* write upper 32-bit of bus address of transfer first descriptor */ w = cpu_to_le32(PCI_DMA_H(transfer->desc_bus)); dbg_tfr("iowrite32(0x%08x to 0x%p) (first_desc_hi)\n", w, - (void *)&engine->sgdma_regs->first_desc_hi); + (void *)&engine->sgdma_regs->first_desc_hi); write_register(w, &engine->sgdma_regs->first_desc_hi, - (unsigned long)(&engine->sgdma_regs->first_desc_hi) - - (unsigned long)(&engine->sgdma_regs)); + (unsigned long)(&engine->sgdma_regs->first_desc_hi) - + (unsigned long)(&engine->sgdma_regs)); - if (transfer->desc_adjacent > 0) { - extra_adj = transfer->desc_adjacent - 1; - if (extra_adj > MAX_EXTRA_ADJ) - extra_adj = MAX_EXTRA_ADJ; - } - dbg_tfr("iowrite32(0x%08x to 0x%p) (first_desc_adjacent)\n", - extra_adj, (void *)&engine->sgdma_regs->first_desc_adjacent); - write_register(extra_adj, &engine->sgdma_regs->first_desc_adjacent, - (unsigned long)(&engine->sgdma_regs->first_desc_adjacent) - + next_adj = xdma_get_next_adj(transfer->desc_adjacent, + cpu_to_le32(PCI_DMA_L(transfer->desc_bus))); + + dbg_tfr("iowrite32(0x%08x to 0x%p) (first_desc_adjacent)\n", next_adj, + (void *)&engine->sgdma_regs->first_desc_adjacent); + + write_register( + next_adj, &engine->sgdma_regs->first_desc_adjacent, + (unsigned long)(&engine->sgdma_regs->first_desc_adjacent) - (unsigned long)(&engine->sgdma_regs)); dbg_tfr("ioread32(0x%p) (dummy read flushes writes).\n", &engine->regs->status); - wmb(); //! - engine_start_mode_config(engine); +#if HAS_MMIOWB + mmiowb(); +#endif - engine_status_read(engine, 0, 0); + rv = engine_start_mode_config(engine); + if (rv < 0) { + pr_err("Failed to start engine mode config\n"); + return NULL; + } + rv = engine_status_read(engine, 0, 0); + if (rv < 0) { + pr_err("Failed to read engine status\n"); + return NULL; + } dbg_tfr("%s engine 0x%p now running\n", engine->name, engine); /* remember the engine is running */ engine->running = 1; @@ -653,21 +783,30 @@ static struct xdma_transfer *engine_start(struct xdma_engine *engine) * @engine pointer to struct xdma_engine * */ -static void engine_service_shutdown(struct xdma_engine *engine) +static int engine_service_shutdown(struct xdma_engine *engine) { + int rv; /* if the engine stopped with RUN still asserted, de-assert RUN now */ dbg_tfr("engine just went idle, resetting RUN_STOP.\n"); - xdma_engine_stop(engine); - engine->running = 0; + rv = xdma_engine_stop(engine); + if (rv < 0) { + pr_err("Failed to stop engine\n"); + return rv; + } /* awake task on engine's shutdown wait queue */ - wake_up_interruptible(&engine->shutdown_wq); + xlx_wake_up(&engine->shutdown_wq); + return 0; } -struct xdma_transfer *engine_transfer_completion(struct xdma_engine *engine, +static struct xdma_transfer *engine_transfer_completion( + struct xdma_engine *engine, struct xdma_transfer *transfer) { - BUG_ON(!engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return NULL; + } if (unlikely(!transfer)) { pr_info("%s: xfer empty.\n", engine->name); @@ -676,20 +815,33 @@ struct xdma_transfer *engine_transfer_completion(struct xdma_engine *engine, /* synchronous I/O? */ /* awake task on transfer's wait queue */ - wake_up_interruptible(&transfer->wq); + xlx_wake_up(&transfer->wq); + + /* Send completion notification for Last transfer */ + if (transfer->cb && transfer->last_in_request) + transfer->cb->io_done((unsigned long)transfer->cb, 0); return transfer; } -struct xdma_transfer *engine_service_transfer_list(struct xdma_engine *engine, - struct xdma_transfer *transfer, u32 *pdesc_completed) +static struct xdma_transfer * +engine_service_transfer_list(struct xdma_engine *engine, + struct xdma_transfer *transfer, + u32 *pdesc_completed) { - BUG_ON(!engine); - BUG_ON(!pdesc_completed); + if (!engine) { + pr_err("dma engine NULL\n"); + return NULL; + } + + if (!pdesc_completed) { + pr_err("%s completed descriptors are null.\n", engine->name); + return NULL; + } if (unlikely(!transfer)) { - pr_info("%s xfer empty, pdesc completed %u.\n", - engine->name, *pdesc_completed); + pr_info("%s xfer empty, pdesc completed %u.\n", engine->name, + *pdesc_completed); return NULL; } @@ -698,11 +850,12 @@ struct xdma_transfer *engine_service_transfer_list(struct xdma_engine *engine, * except for the last (i.e. use > instead of >=). */ while (transfer && (!transfer->cyclic) && - (*pdesc_completed > transfer->desc_num)) { + (*pdesc_completed > transfer->desc_num)) { /* remove this transfer from pdesc_completed */ *pdesc_completed -= transfer->desc_num; dbg_tfr("%s engine completed non-cyclic xfer 0x%p (%d desc)\n", engine->name, transfer, transfer->desc_num); + /* remove completed transfer from list */ list_del(engine->transfer_list.next); /* add to dequeued number of descriptors during this run */ @@ -710,14 +863,16 @@ struct xdma_transfer *engine_service_transfer_list(struct xdma_engine *engine, /* mark transfer as succesfully completed */ transfer->state = TRANSFER_STATE_COMPLETED; - /* Complete transfer - sets transfer to NULL if an async - * transfer has completed */ + /* + * Complete transfer - sets transfer to NULL if an async + * transfer has completed + */ transfer = engine_transfer_completion(engine, transfer); /* if exists, get the next transfer on the list */ if (!list_empty(&engine->transfer_list)) { transfer = list_entry(engine->transfer_list.next, - struct xdma_transfer, entry); + struct xdma_transfer, entry); dbg_tfr("Non-completed transfer %p\n", transfer); } else { /* no further transfers? */ @@ -728,11 +883,11 @@ struct xdma_transfer *engine_service_transfer_list(struct xdma_engine *engine, return transfer; } -static void engine_err_handle(struct xdma_engine *engine, - struct xdma_transfer *transfer, u32 desc_completed) +static int engine_err_handle(struct xdma_engine *engine, + struct xdma_transfer *transfer, u32 desc_completed) { u32 value; - + int rv = 0; /* * The BUSY bit is expected to be clear now but older HW has a race * condition which could cause it to be still set. If it's set, re-read @@ -740,91 +895,138 @@ static void engine_err_handle(struct xdma_engine *engine, */ if (engine->status & XDMA_STAT_BUSY) { value = read_register(&engine->regs->status); - if ((value & XDMA_STAT_BUSY) && printk_ratelimit()) - pr_info("%s has errors but is still BUSY\n", - engine->name); + if ((value & XDMA_STAT_BUSY)) + printk_ratelimited(KERN_INFO + "%s has errors but is still BUSY\n", + engine->name); } - if (printk_ratelimit()) { - pr_info("%s, s 0x%x, aborted xfer 0x%p, cmpl %d/%d\n", + printk_ratelimited(KERN_INFO "%s, s 0x%x, aborted xfer 0x%p, cmpl %d/%d\n", engine->name, engine->status, transfer, desc_completed, transfer->desc_num); - } - + /* mark transfer as failed */ transfer->state = TRANSFER_STATE_FAILED; - xdma_engine_stop(engine); + rv = xdma_engine_stop(engine); + if (rv < 0) + pr_err("Failed to stop engine\n"); + return rv; } -struct xdma_transfer *engine_service_final_transfer(struct xdma_engine *engine, - struct xdma_transfer *transfer, u32 *pdesc_completed) +static struct xdma_transfer * +engine_service_final_transfer(struct xdma_engine *engine, + struct xdma_transfer *transfer, + u32 *pdesc_completed) { - BUG_ON(!engine); - BUG_ON(!pdesc_completed); + if (!engine) { + pr_err("dma engine NULL\n"); + return NULL; + } + + if (!pdesc_completed) { + pr_err("%s completed descriptors are null.\n", engine->name); + return NULL; + } /* inspect the current transfer */ if (unlikely(!transfer)) { - pr_info("%s xfer empty, pdesc completed %u.\n", - engine->name, *pdesc_completed); + pr_info("%s xfer empty, pdesc completed %u.\n", engine->name, + *pdesc_completed); return NULL; - } else { - if (((engine->dir == DMA_FROM_DEVICE) && - (engine->status & XDMA_STAT_C2H_ERR_MASK)) || - ((engine->dir == DMA_TO_DEVICE) && - (engine->status & XDMA_STAT_H2C_ERR_MASK))) { - pr_info("engine %s, status error 0x%x.\n", - engine->name, engine->status); - engine_status_dump(engine); - engine_err_handle(engine, transfer, *pdesc_completed); - goto transfer_del; - } + } - if (engine->status & XDMA_STAT_BUSY) - pr_debug("engine %s is unexpectedly busy - ignoring\n", - engine->name); + if (((engine->dir == DMA_FROM_DEVICE) && + (engine->status & XDMA_STAT_C2H_ERR_MASK)) || + ((engine->dir == DMA_TO_DEVICE) && + (engine->status & XDMA_STAT_H2C_ERR_MASK))) { + pr_info("engine %s, status error 0x%x.\n", engine->name, + engine->status); + engine_status_dump(engine); + engine_err_handle(engine, transfer, *pdesc_completed); + goto transfer_del; + } + + if (engine->status & XDMA_STAT_BUSY) + pr_debug("engine %s is unexpectedly busy - ignoring\n", + engine->name); + + /* the engine stopped on current transfer? */ + if (*pdesc_completed < transfer->desc_num) { + if (engine->eop_flush) { + /* check if eop received */ + struct xdma_result *result = transfer->res_virt; + int i; + int max = *pdesc_completed; + + for (i = 0; i < max; i++) { + if ((result[i].status & RX_STATUS_EOP) != 0) { + transfer->flags |= + XFER_FLAG_ST_C2H_EOP_RCVED; + break; + } + } + + transfer->desc_cmpl += *pdesc_completed; + if (!(transfer->flags & XFER_FLAG_ST_C2H_EOP_RCVED)) { + return NULL; + } + + /* mark transfer as successfully completed */ + engine_service_shutdown(engine); + + transfer->state = TRANSFER_STATE_COMPLETED; + + engine->desc_dequeued += transfer->desc_cmpl; - /* the engine stopped on current transfer? */ - if (*pdesc_completed < transfer->desc_num) { + } else { transfer->state = TRANSFER_STATE_FAILED; pr_info("%s, xfer 0x%p, stopped half-way, %d/%d.\n", engine->name, transfer, *pdesc_completed, transfer->desc_num); - } else { - dbg_tfr("engine %s completed transfer\n", engine->name); - dbg_tfr("Completed transfer ID = 0x%p\n", transfer); - dbg_tfr("*pdesc_completed=%d, transfer->desc_num=%d", - *pdesc_completed, transfer->desc_num); - - if (!transfer->cyclic) { - /* - * if the engine stopped on this transfer, - * it should be the last - */ - WARN_ON(*pdesc_completed > transfer->desc_num); - } - /* mark transfer as succesfully completed */ - transfer->state = TRANSFER_STATE_COMPLETED; + + /* add dequeued number of descriptors during this run */ + engine->desc_dequeued += transfer->desc_num; + transfer->desc_cmpl = *pdesc_completed; } + } else { + dbg_tfr("engine %s completed transfer\n", engine->name); + dbg_tfr("Completed transfer ID = 0x%p\n", transfer); + dbg_tfr("*pdesc_completed=%d, transfer->desc_num=%d", + *pdesc_completed, transfer->desc_num); -transfer_del: - /* remove completed transfer from list */ - list_del(engine->transfer_list.next); - /* add to dequeued number of descriptors during this run */ + if (!transfer->cyclic) { + /* + * if the engine stopped on this transfer, + * it should be the last + */ + WARN_ON(*pdesc_completed > transfer->desc_num); + } + /* mark transfer as successfully completed */ + transfer->state = TRANSFER_STATE_COMPLETED; + transfer->desc_cmpl = transfer->desc_num; + /* add dequeued number of descriptors during this run */ engine->desc_dequeued += transfer->desc_num; + } - /* - * Complete transfer - sets transfer to NULL if an asynchronous - * transfer has completed - */ - transfer = engine_transfer_completion(engine, transfer); - } +transfer_del: + /* remove completed transfer from list */ + list_del(engine->transfer_list.next); + + /* + * Complete transfer - sets transfer to NULL if an asynchronous + * transfer has completed + */ + transfer = engine_transfer_completion(engine, transfer); return transfer; } -static void engine_service_perf(struct xdma_engine *engine, u32 desc_completed) +static int engine_service_perf(struct xdma_engine *engine, u32 desc_completed) { - BUG_ON(!engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } /* performance measurement is running? */ if (engine->xdma_perf) { @@ -832,7 +1034,7 @@ static void engine_service_perf(struct xdma_engine *engine, u32 desc_completed) if (engine->status & XDMA_STAT_DESC_COMPLETED) { engine->xdma_perf->iterations = desc_completed; dbg_perf("transfer->xdma_perf->iterations=%d\n", - engine->xdma_perf->iterations); + engine->xdma_perf->iterations); } /* a descriptor stopped the engine? */ @@ -842,237 +1044,78 @@ static void engine_service_perf(struct xdma_engine *engine, u32 desc_completed) * wake any XDMA_PERF_IOCTL_STOP waiting for * the performance run to finish */ - wake_up_interruptible(&engine->xdma_perf_wq); + xlx_wake_up(&engine->xdma_perf_wq); dbg_perf("transfer->xdma_perf stopped\n"); } } + return 0; } -static void engine_transfer_dequeue(struct xdma_engine *engine) +static int engine_service_resume(struct xdma_engine *engine) { - struct xdma_transfer *transfer; - - BUG_ON(!engine); + struct xdma_transfer *transfer_started; - /* pick first transfer on the queue (was submitted to the engine) */ - transfer = list_entry(engine->transfer_list.next, struct xdma_transfer, - entry); - if (!transfer || transfer != &engine->cyclic_req->xfer) { - pr_info("%s, xfer 0x%p != 0x%p.\n", - engine->name, transfer, &engine->cyclic_req->xfer); - return; + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; } - dbg_tfr("%s engine completed cyclic transfer 0x%p (%d desc).\n", - engine->name, transfer, transfer->desc_num); - /* remove completed transfer from list */ - list_del(engine->transfer_list.next); -} - -static int engine_ring_process(struct xdma_engine *engine) -{ - struct xdma_result *result; - int start; - int eop_count = 0; - - BUG_ON(!engine); - result = engine->cyclic_result; - BUG_ON(!result); - - /* where we start receiving in the ring buffer */ - start = engine->rx_tail; - - /* iterate through all newly received RX result descriptors */ - dbg_tfr("%s, result %d, 0x%x, len 0x%x.\n", - engine->name, engine->rx_tail, result[engine->rx_tail].status, - result[engine->rx_tail].length); - while (result[engine->rx_tail].status && !engine->rx_overrun) { - /* EOP bit set in result? */ - if (result[engine->rx_tail].status & RX_STATUS_EOP){ - eop_count++; - } - - /* increment tail pointer */ - engine->rx_tail = (engine->rx_tail + 1) % CYCLIC_RX_PAGES_MAX; - dbg_tfr("%s, head %d, tail %d, 0x%x, len 0x%x.\n", - engine->name, engine->rx_head, engine->rx_tail, - result[engine->rx_tail].status, - result[engine->rx_tail].length); - - /* overrun? */ - if (engine->rx_tail == engine->rx_head) { - dbg_tfr("%s: overrun\n", engine->name); - /* flag to user space that overrun has occurred */ - engine->rx_overrun = 1; + /* engine stopped? */ + if (!engine->running) { + /* in the case of shutdown, let it finish what's in the Q */ + if (!list_empty(&engine->transfer_list)) { + /* (re)start engine */ + transfer_started = engine_start(engine); + if (!transfer_started) { + pr_err("Failed to start dma engine\n"); + return -EINVAL; + } + dbg_tfr("re-started %s engine with pending xfer 0x%p\n", + engine->name, transfer_started); + /* engine was requested to be shutdown? */ + } else if (engine->shutdown & ENGINE_SHUTDOWN_REQUEST) { + engine->shutdown |= ENGINE_SHUTDOWN_IDLE; + /* awake task on engine's shutdown wait queue */ + xlx_wake_up(&engine->shutdown_wq); + } else { + dbg_tfr("no pending transfers, %s engine stays idle.\n", + engine->name); } + } else if (list_empty(&engine->transfer_list)) { + engine_service_shutdown(engine); } - - return eop_count; + return 0; } -static int engine_service_cyclic_polled(struct xdma_engine *engine) +/** + * engine_service() - service an SG DMA engine + * + * must be called with engine->lock already acquired + * + * @engine pointer to struct xdma_engine + * + */ +static int engine_service(struct xdma_engine *engine, int desc_writeback) { - int eop_count = 0; - int rc = 0; - struct xdma_poll_wb *writeback_data; - u32 sched_limit = 0; - - BUG_ON(!engine); - BUG_ON(engine->magic != MAGIC_ENGINE); - - writeback_data = (struct xdma_poll_wb *)engine->poll_mode_addr_virt; - - while (eop_count == 0) { - if (sched_limit != 0) { - if ((sched_limit % NUM_POLLS_PER_SCHED) == 0) - schedule(); - } - sched_limit++; - - /* Monitor descriptor writeback address for errors */ - if ((writeback_data->completed_desc_count) & WB_ERR_MASK) { - rc = -1; - break; - } + struct xdma_transfer *transfer = NULL; + u32 desc_count = desc_writeback & WB_COUNT_MASK; + u32 err_flag = desc_writeback & WB_ERR_MASK; + int rv = 0; - eop_count = engine_ring_process(engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; } - if (eop_count == 0) { - engine_status_read(engine, 1, 0); - if ((engine->running) && !(engine->status & XDMA_STAT_BUSY)) { - /* transfers on queue? */ - if (!list_empty(&engine->transfer_list)) - engine_transfer_dequeue(engine); - - engine_service_shutdown(engine); + /* Service the engine */ + if (!engine->running) { + dbg_tfr("Engine was not running!!! Clearing status\n"); + rv = engine_status_read(engine, 1, 0); + if (rv < 0) { + pr_err("%s failed to read status\n", engine->name); + return rv; } - } - - return rc; -} - -static int engine_service_cyclic_interrupt(struct xdma_engine *engine) -{ - int eop_count = 0; - struct xdma_transfer *xfer; - - BUG_ON(!engine); - BUG_ON(engine->magic != MAGIC_ENGINE); - - engine_status_read(engine, 1, 0); - - eop_count = engine_ring_process(engine); - /* - * wake any reader on EOP, as one or more packets are now in - * the RX buffer - */ - xfer = &engine->cyclic_req->xfer; - if(enable_credit_mp){ - if (eop_count > 0) { - //engine->eop_found = 1; - } - wake_up_interruptible(&xfer->wq); - }else{ - if (eop_count > 0) { - /* awake task on transfer's wait queue */ - dbg_tfr("wake_up_interruptible() due to %d EOP's\n", eop_count); - engine->eop_found = 1; - wake_up_interruptible(&xfer->wq); - } - } - - /* engine was running but is no longer busy? */ - if ((engine->running) && !(engine->status & XDMA_STAT_BUSY)) { - /* transfers on queue? */ - if (!list_empty(&engine->transfer_list)) - engine_transfer_dequeue(engine); - - engine_service_shutdown(engine); - } - - return 0; -} - -/* must be called with engine->lock already acquired */ -static int engine_service_cyclic(struct xdma_engine *engine) -{ - int rc = 0; - - dbg_tfr("engine_service_cyclic()"); - - BUG_ON(!engine); - BUG_ON(engine->magic != MAGIC_ENGINE); - - if (poll_mode) - rc = engine_service_cyclic_polled(engine); - else - rc = engine_service_cyclic_interrupt(engine); - - return rc; -} - - -static void engine_service_resume(struct xdma_engine *engine) -{ - struct xdma_transfer *transfer_started; - - BUG_ON(!engine); - - /* engine stopped? */ - if (!engine->running) { - /* in the case of shutdown, let it finish what's in the Q */ - if (!list_empty(&engine->transfer_list)) { - /* (re)start engine */ - transfer_started = engine_start(engine); - pr_info("re-started %s engine with pending xfer 0x%p\n", - engine->name, transfer_started); - /* engine was requested to be shutdown? */ - } else if (engine->shutdown & ENGINE_SHUTDOWN_REQUEST) { - engine->shutdown |= ENGINE_SHUTDOWN_IDLE; - /* awake task on engine's shutdown wait queue */ - wake_up_interruptible(&engine->shutdown_wq); - } else { - dbg_tfr("no pending transfers, %s engine stays idle.\n", - engine->name); - } - } else { - /* engine is still running? */ - if (list_empty(&engine->transfer_list)) { - pr_warn("no queued transfers but %s engine running!\n", - engine->name); - WARN_ON(1); - } - } -} - -/** - * engine_service() - service an SG DMA engine - * - * must be called with engine->lock already acquired - * - * @engine pointer to struct xdma_engine - * - */ -static int engine_service(struct xdma_engine *engine, int desc_writeback) -{ - struct xdma_transfer *transfer = NULL; - u32 desc_count = desc_writeback & WB_COUNT_MASK; - u32 err_flag = desc_writeback & WB_ERR_MASK; - int rv = 0; - struct xdma_poll_wb *wb_data; - - BUG_ON(!engine); - - /* If polling detected an error, signal to the caller */ - if (err_flag) - rv = -1; - - /* Service the engine */ - if (!engine->running) { - dbg_tfr("Engine was not running!!! Clearing status\n"); - engine_status_read(engine, 1, 0); - return 0; + return 0; } /* @@ -1080,16 +1123,26 @@ static int engine_service(struct xdma_engine *engine, int desc_writeback) * engine status. For polled mode descriptor completion, this read is * unnecessary and is skipped to reduce latency */ - if ((desc_count == 0) || (err_flag != 0)) - engine_status_read(engine, 1, 0); + if ((desc_count == 0) || (err_flag != 0)) { + rv = engine_status_read(engine, 1, 0); + if (rv < 0) { + pr_err("Failed to read engine status\n"); + return rv; + } + } /* * engine was running but is no longer busy, or writeback occurred, * shut down */ if ((engine->running && !(engine->status & XDMA_STAT_BUSY)) || - (desc_count != 0)) - engine_service_shutdown(engine); + (!engine->eop_flush && desc_count != 0)) { + rv = engine_service_shutdown(engine); + if (rv < 0) { + pr_err("Failed to shutdown engine\n"); + return rv; + } + } /* * If called from the ISR, or if an error occurred, the descriptor @@ -1099,13 +1152,18 @@ static int engine_service(struct xdma_engine *engine, int desc_writeback) */ if (!desc_count) desc_count = read_register(&engine->regs->completed_desc_count); - dbg_tfr("desc_count = %d\n", desc_count); + dbg_tfr("%s wb 0x%x, desc_count %u, err %u, dequeued %u.\n", + engine->name, desc_writeback, desc_count, err_flag, + engine->desc_dequeued); + + if (!desc_count) + goto done; /* transfers on queue? */ if (!list_empty(&engine->transfer_list)) { /* pick first transfer on queue (was submitted to the engine) */ transfer = list_entry(engine->transfer_list.next, - struct xdma_transfer, entry); + struct xdma_transfer, entry); dbg_tfr("head of queue transfer 0x%p has %d descriptors\n", transfer, (int)transfer->desc_num); @@ -1114,7 +1172,11 @@ static int engine_service(struct xdma_engine *engine, int desc_writeback) (int)desc_count, (int)desc_count - engine->desc_dequeued); - engine_service_perf(engine, desc_count); + rv = engine_service_perf(engine, desc_count); + if (rv < 0) { + pr_err("Failed to service descriptors\n"); + return rv; + } } /* account for already dequeued transfers during this engine run */ @@ -1129,16 +1191,16 @@ static int engine_service(struct xdma_engine *engine, int desc_writeback) */ transfer = engine_service_final_transfer(engine, transfer, &desc_count); - /* Before starting engine again, clear the writeback data */ - if (poll_mode) { - wb_data = (struct xdma_poll_wb *)engine->poll_mode_addr_virt; - wb_data->completed_desc_count = 0; - } - /* Restart the engine following the servicing */ - engine_service_resume(engine); + if (!engine->eop_flush) { + rv = engine_service_resume(engine); + if (rv < 0) + pr_err("Failed to resume engine\n"); + } - return 0; +done: + /* If polling detected an error, signal to the caller */ + return err_flag ? -1 : 0; } /* engine_service_work */ @@ -1146,61 +1208,75 @@ static void engine_service_work(struct work_struct *work) { struct xdma_engine *engine; unsigned long flags; + int rv; engine = container_of(work, struct xdma_engine, work); - BUG_ON(engine->magic != MAGIC_ENGINE); + if (engine->magic != MAGIC_ENGINE) { + pr_err("%s has invalid magic number %lx\n", engine->name, + engine->magic); + return; + } /* lock the engine */ spin_lock_irqsave(&engine->lock, flags); - dbg_tfr("engine_service() for %s engine %p\n", - engine->name, engine); - if (engine->cyclic_req) - engine_service_cyclic(engine); - else - engine_service(engine, 0); + dbg_tfr("engine_service() for %s engine %p\n", engine->name, engine); + rv = engine_service(engine, 0); + if (rv < 0) { + pr_err("Failed to service engine\n"); + goto unlock; + } /* re-enable interrupts for this engine */ - if (engine->xdev->msix_enabled){ - write_register(engine->interrupt_enable_mask_value, - &engine->regs->interrupt_enable_mask_w1s, - (unsigned long)(&engine->regs->interrupt_enable_mask_w1s) - - (unsigned long)(&engine->regs)); + if (engine->xdev->msix_enabled) { + write_register( + engine->interrupt_enable_mask_value, + &engine->regs->interrupt_enable_mask_w1s, + (unsigned long)(&engine->regs + ->interrupt_enable_mask_w1s) - + (unsigned long)(&engine->regs)); } else channel_interrupts_enable(engine->xdev, engine->irq_bitmask); - + /* unlock the engine */ +unlock: spin_unlock_irqrestore(&engine->lock, flags); } static u32 engine_service_wb_monitor(struct xdma_engine *engine, - u32 expected_wb) + u32 expected_wb) { struct xdma_poll_wb *wb_data; u32 desc_wb = 0; u32 sched_limit = 0; unsigned long timeout; - BUG_ON(!engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } wb_data = (struct xdma_poll_wb *)engine->poll_mode_addr_virt; /* - * Poll the writeback location for the expected number of - * descriptors / error events This loop is skipped for cyclic mode, - * where the expected_desc_count passed in is zero, since it cannot be - * determined before the function is called - */ + * Poll the writeback location for the expected number of + * descriptors / error events This loop is skipped for cyclic mode, + * where the expected_desc_count passed in is zero, since it cannot be + * determined before the function is called + */ timeout = jiffies + (POLL_TIMEOUT_SECONDS * HZ); while (expected_wb != 0) { desc_wb = wb_data->completed_desc_count; + if (desc_wb) + wb_data->completed_desc_count = 0; + if (desc_wb & WB_ERR_MASK) break; - else if (desc_wb == expected_wb) + else if (desc_wb >= expected_wb) break; - - /* RTO - prevent system from hanging in polled mode */ + + /* prevent system from hanging in polled mode */ if (time_after(jiffies, timeout)) { dbg_tfr("Polling timeout occurred"); dbg_tfr("desc_wb = 0x%08x, expected 0x%08x\n", desc_wb, @@ -1212,9 +1288,9 @@ static u32 engine_service_wb_monitor(struct xdma_engine *engine, } /* - * Define NUM_POLLS_PER_SCHED to limit how much time is spent - * in the scheduler - */ + * Define NUM_POLLS_PER_SCHED to limit how much time is spent + * in the scheduler + */ if (sched_limit != 0) { if ((sched_limit % NUM_POLLS_PER_SCHED) == 0) @@ -1226,40 +1302,38 @@ static u32 engine_service_wb_monitor(struct xdma_engine *engine, return desc_wb; } -static int engine_service_poll(struct xdma_engine *engine, - u32 expected_desc_count) +int engine_service_poll(struct xdma_engine *engine, + u32 expected_desc_count) { - struct xdma_poll_wb *writeback_data; u32 desc_wb = 0; unsigned long flags; int rv = 0; - BUG_ON(!engine); - BUG_ON(engine->magic != MAGIC_ENGINE); - - writeback_data = (struct xdma_poll_wb *)engine->poll_mode_addr_virt; + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } - if ((expected_desc_count & WB_COUNT_MASK) != expected_desc_count) { - dbg_tfr("Queued descriptor count is larger than supported\n"); - return -1; + if (engine->magic != MAGIC_ENGINE) { + pr_err("%s has invalid magic number %lx\n", engine->name, + engine->magic); + return -EINVAL; } /* - * Poll the writeback location for the expected number of - * descriptors / error events This loop is skipped for cyclic mode, - * where the expected_desc_count passed in is zero, since it cannot be - * determined before the function is called - */ + * Poll the writeback location for the expected number of + * descriptors / error events This loop is skipped for cyclic mode, + * where the expected_desc_count passed in is zero, since it cannot be + * determined before the function is called + */ desc_wb = engine_service_wb_monitor(engine, expected_desc_count); + if (!desc_wb) + return 0; spin_lock_irqsave(&engine->lock, flags); dbg_tfr("%s service.\n", engine->name); - if (engine->cyclic_req) { - rv = engine_service_cyclic(engine); - } else { - rv = engine_service(engine, desc_wb); - } + rv = engine_service(engine, desc_wb); spin_unlock_irqrestore(&engine->lock, flags); return rv; @@ -1269,7 +1343,10 @@ static irqreturn_t user_irq_service(int irq, struct xdma_user_irq *user_irq) { unsigned long flags; - BUG_ON(!user_irq); + if (!user_irq) { + pr_err("Invalid user_irq\n"); + return IRQ_NONE; + } if (user_irq->handler) return user_irq->handler(user_irq->user_idx, user_irq->dev); @@ -1298,17 +1375,20 @@ static irqreturn_t xdma_isr(int irq, void *dev_id) struct interrupt_regs *irq_regs; dbg_irq("(irq=%d, dev 0x%p) <<<< ISR.\n", irq, dev_id); - BUG_ON(!dev_id); + if (!dev_id) { + pr_err("Invalid dev_id on irq line %d\n", irq); + return -IRQ_NONE; + } xdev = (struct xdma_dev *)dev_id; if (!xdev) { WARN_ON(!xdev); - dbg_irq("xdma_isr(irq=%d) xdev=%p ??\n", irq, xdev); + dbg_irq("%s(irq=%d) xdev=%p ??\n", __func__, irq, xdev); return IRQ_NONE; } irq_regs = (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + - XDMA_OFS_INT_CTRL); + XDMA_OFS_INT_CTRL); /* read channel interrupt requests */ ch_irq = read_register(&irq_regs->channel_int_request); @@ -1327,8 +1407,8 @@ static irqreturn_t xdma_isr(int irq, void *dev_id) if (user_irq) { int user = 0; - u32 mask = 1; - int max = xdev->h2c_channel_max; + u32 mask = 1; + int max = xdev->user_max; for (; user < max && user_irq; user++, mask <<= 1) { if (user_irq & mask) { @@ -1348,8 +1428,8 @@ static irqreturn_t xdma_isr(int irq, void *dev_id) struct xdma_engine *engine = &xdev->engine_h2c[channel]; /* engine present and its interrupt fired? */ - if((engine->irq_bitmask & mask) && - (engine->magic == MAGIC_ENGINE)) { + if ((engine->irq_bitmask & mask) && + (engine->magic == MAGIC_ENGINE)) { mask &= ~engine->irq_bitmask; dbg_tfr("schedule_work, %s.\n", engine->name); schedule_work(&engine->work); @@ -1367,8 +1447,8 @@ static irqreturn_t xdma_isr(int irq, void *dev_id) struct xdma_engine *engine = &xdev->engine_c2h[channel]; /* engine present and its interrupt fired? */ - if((engine->irq_bitmask & mask) && - (engine->magic == MAGIC_ENGINE)) { + if ((engine->irq_bitmask & mask) && + (engine->magic == MAGIC_ENGINE)) { mask &= ~engine->irq_bitmask; dbg_tfr("schedule_work, %s.\n", engine->name); schedule_work(&engine->work); @@ -1391,10 +1471,13 @@ static irqreturn_t xdma_user_irq(int irq, void *dev_id) dbg_irq("(irq=%d) <<<< INTERRUPT SERVICE ROUTINE\n", irq); - BUG_ON(!dev_id); + if (!dev_id) { + pr_err("Invalid dev_id on irq line %d\n", irq); + return IRQ_NONE; + } user_irq = (struct xdma_user_irq *)dev_id; - return user_irq_service(irq, user_irq); + return user_irq_service(irq, user_irq); } /* @@ -1409,25 +1492,28 @@ static irqreturn_t xdma_channel_irq(int irq, void *dev_id) struct interrupt_regs *irq_regs; dbg_irq("(irq=%d) <<<< INTERRUPT service ROUTINE\n", irq); - BUG_ON(!dev_id); + if (!dev_id) { + pr_err("Invalid dev_id on irq line %d\n", irq); + return IRQ_NONE; + } engine = (struct xdma_engine *)dev_id; xdev = engine->xdev; if (!xdev) { WARN_ON(!xdev); - dbg_irq("xdma_channel_irq(irq=%d) xdev=%p ??\n", irq, xdev); + dbg_irq("%s(irq=%d) xdev=%p ??\n", __func__, irq, xdev); return IRQ_NONE; } irq_regs = (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + - XDMA_OFS_INT_CTRL); + XDMA_OFS_INT_CTRL); /* Disable the interrupt for this engine */ - write_register(engine->interrupt_enable_mask_value, - &engine->regs->interrupt_enable_mask_w1c, - (unsigned long) - (&engine->regs->interrupt_enable_mask_w1c) - + write_register( + engine->interrupt_enable_mask_value, + &engine->regs->interrupt_enable_mask_w1c, + (unsigned long)(&engine->regs->interrupt_enable_mask_w1c) - (unsigned long)(&engine->regs)); /* Dummy read to flush the above write */ read_register(&irq_regs->channel_int_pending); @@ -1435,7 +1521,7 @@ static irqreturn_t xdma_channel_irq(int irq, void *dev_id) schedule_work(&engine->work); /* - * RTO - need to protect access here if multiple MSI-X are used for + * need to protect access here if multiple MSI-X are used for * user interrupts */ xdev->irq_count++; @@ -1509,28 +1595,29 @@ static int is_config_bar(struct xdma_dev *xdev, int idx) int flag = 0; u32 mask = 0xffff0000; /* Compare only XDMA ID's not Version number */ struct interrupt_regs *irq_regs = - (struct interrupt_regs *) (xdev->bar[idx] + XDMA_OFS_INT_CTRL); + (struct interrupt_regs *)(xdev->bar[idx] + XDMA_OFS_INT_CTRL); struct config_regs *cfg_regs = (struct config_regs *)(xdev->bar[idx] + XDMA_OFS_CONFIG); irq_id = read_register(&irq_regs->identifier); cfg_id = read_register(&cfg_regs->identifier); - if (((irq_id & mask)== IRQ_BLOCK_ID) && - ((cfg_id & mask)== CONFIG_BLOCK_ID)) { + if (((irq_id & mask) == IRQ_BLOCK_ID) && + ((cfg_id & mask) == CONFIG_BLOCK_ID)) { dbg_init("BAR %d is the XDMA config BAR\n", idx); flag = 1; } else { dbg_init("BAR %d is NOT the XDMA config BAR: 0x%x, 0x%x.\n", - idx, irq_id, cfg_id); + idx, irq_id, cfg_id); flag = 0; } return flag; } -static void identify_bars(struct xdma_dev *xdev, int *bar_id_list, int num_bars, - int config_bar_pos) +#ifndef XDMA_CONFIG_BAR_NUM +static int identify_bars(struct xdma_dev *xdev, int *bar_id_list, int num_bars, + int config_bar_pos) { /* * The following logic identifies which BARs contain what functionality @@ -1546,11 +1633,18 @@ static void identify_bars(struct xdma_dev *xdev, int *bar_id_list, int num_bars, * correctly with both 32-bit and 64-bit BARs. */ - BUG_ON(!xdev); - BUG_ON(!bar_id_list); + if (!xdev) { + pr_err("Invalid xdev\n"); + return -EINVAL; + } + + if (!bar_id_list) { + pr_err("Invalid bar id list.\n"); + return -EINVAL; + } - dbg_init("xdev 0x%p, bars %d, config at %d.\n", - xdev, num_bars, config_bar_pos); + dbg_init("xdev 0x%p, bars %d, config at %d.\n", xdev, num_bars, + config_bar_pos); switch (num_bars) { case 1: @@ -1586,12 +1680,12 @@ static void identify_bars(struct xdma_dev *xdev, int *bar_id_list, int num_bars, pr_info("Unexpected # BARs (%d), XDMA config BAR only.\n", num_bars); break; - } - pr_info("%d BARs: config %d, user %d, bypass %d.\n", - num_bars, config_bar_pos, xdev->user_bar_idx, - xdev->bypass_bar_idx); + pr_info("%d BARs: config %d, user %d, bypass %d.\n", num_bars, + config_bar_pos, xdev->user_bar_idx, xdev->bypass_bar_idx); + return 0; } +#endif /* map_bars() -- map device regions into kernel virtual address space * @@ -1601,6 +1695,24 @@ static void identify_bars(struct xdma_dev *xdev, int *bar_id_list, int num_bars, static int map_bars(struct xdma_dev *xdev, struct pci_dev *dev) { int rv; + +#ifdef XDMA_CONFIG_BAR_NUM + rv = map_single_bar(xdev, dev, XDMA_CONFIG_BAR_NUM); + if (rv <= 0) { + pr_info("%s, map config bar %d failed, %d.\n", + dev_name(&dev->dev), XDMA_CONFIG_BAR_NUM, rv); + return -EINVAL; + } + + if (is_config_bar(xdev, XDMA_CONFIG_BAR_NUM) == 0) { + pr_info("%s, unable to identify config bar %d.\n", + dev_name(&dev->dev), XDMA_CONFIG_BAR_NUM); + return -EINVAL; + } + xdev->config_bar_idx = XDMA_CONFIG_BAR_NUM; + + return 0; +#else int i; int bar_id_list[XDMA_BAR_NUM]; int bar_id_idx = 0; @@ -1620,7 +1732,6 @@ static int map_bars(struct xdma_dev *xdev, struct pci_dev *dev) /* Try to identify BAR as XDMA control BAR */ if ((bar_len >= XDMA_BAR_SIZE) && (xdev->config_bar_idx < 0)) { - if (is_config_bar(xdev, i)) { xdev->config_bar_idx = i; config_bar_pos = bar_id_idx; @@ -1640,24 +1751,11 @@ static int map_bars(struct xdma_dev *xdev, struct pci_dev *dev) goto fail; } -#ifdef __LIBXDMA_CONFIG_BAR_ONLY__ - /* unmapped all other bars, except XDMA config. bar */ - for (i = 0; i < XDMA_BAR_NUM; i++) { - if (i == xdev->config_bar_idx) - continue; - - /* is this BAR mapped? */ - if (xdev->bar[i]) { - /* unmap BAR */ - pci_iounmap(dev, xdev->bar[i]); - /* mark as unmapped */ - xdev->bar[i] = NULL; - pr_info("unmap non-config bar %d.\n", i); - } + rv = identify_bars(xdev, bar_id_list, bar_id_idx, config_bar_pos); + if (rv < 0) { + pr_err("Failed to identify bars\n"); + return rv; } -#else - identify_bars(xdev, bar_id_list, bar_id_idx, config_bar_pos); -#endif /* successfully mapped all required BAR regions */ return 0; @@ -1666,20 +1764,21 @@ static int map_bars(struct xdma_dev *xdev, struct pci_dev *dev) /* unwind; unmap any BARs that we did map */ unmap_bars(xdev, dev); return rv; +#endif } /* - * MSI-X interrupt: + * MSI-X interrupt: * vectors, followed by vectors */ /* - * RTO - code to detect if MSI/MSI-X capability exists is derived + * code to detect if MSI/MSI-X capability exists is derived * from linux/pci/msi.c - pci_msi_check_device */ #ifndef arch_msi_check_device -int arch_msi_check_device(struct pci_dev *dev, int nvec, int type) +static int arch_msi_check_device(struct pci_dev *dev, int nvec, int type) { return 0; } @@ -1723,17 +1822,24 @@ static int enable_msi_msix(struct xdma_dev *xdev, struct pci_dev *pdev) { int rv = 0; - BUG_ON(!xdev); - BUG_ON(!pdev); + if (!xdev) { + pr_err("Invalid xdev\n"); + return -EINVAL; + } + + if (!pdev) { + pr_err("Invalid pdev\n"); + return -EINVAL; + } - if (!interrupt_mode && msi_msix_capable(pdev, PCI_CAP_ID_MSIX)) { + if ((interrupt_mode == 3 || !interrupt_mode) && msi_msix_capable(pdev, PCI_CAP_ID_MSIX)) { int req_nvec = xdev->c2h_channel_max + xdev->h2c_channel_max + - xdev->user_max; + xdev->user_max; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) +#if KERNEL_VERSION(4, 12, 0) <= LINUX_VERSION_CODE dbg_init("Enabling MSI-X\n"); rv = pci_alloc_irq_vectors(pdev, req_nvec, req_nvec, - PCI_IRQ_MSIX); + PCI_IRQ_MSIX); #else int i; @@ -1748,7 +1854,7 @@ static int enable_msi_msix(struct xdma_dev *xdev, struct pci_dev *pdev) xdev->msix_enabled = 1; - } else if (interrupt_mode == 1 && + } else if ((interrupt_mode == 1 || !interrupt_mode) && msi_msix_capable(pdev, PCI_CAP_ID_MSI)) { /* enable message signalled interrupts */ dbg_init("pci_enable_msi()\n"); @@ -1771,7 +1877,7 @@ static void pci_check_intr_pend(struct pci_dev *pdev) pci_read_config_word(pdev, PCI_STATUS, &v); if (v & PCI_STATUS_INTERRUPT) { pr_info("%s PCI STATUS Interrupt pending 0x%x.\n", - dev_name(&pdev->dev), v); + dev_name(&pdev->dev), v); pci_write_config_word(pdev, PCI_STATUS, PCI_STATUS_INTERRUPT); } } @@ -1797,9 +1903,9 @@ static void pci_keep_intx_enabled(struct pci_dev *pdev) static void prog_irq_msix_user(struct xdma_dev *xdev, bool clear) { /* user */ - struct interrupt_regs *int_regs = (struct interrupt_regs *) - (xdev->bar[xdev->config_bar_idx] + - XDMA_OFS_INT_CTRL); + struct interrupt_regs *int_regs = + (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + + XDMA_OFS_INT_CTRL); u32 i = xdev->c2h_channel_max + xdev->h2c_channel_max; u32 max = i + xdev->user_max; int j; @@ -1814,21 +1920,22 @@ static void prog_irq_msix_user(struct xdma_dev *xdev, bool clear) else for (k = 0; k < 4 && i < max; i++, k++, shift += 8) val |= (i & 0x1f) << shift; - - write_register(val, &int_regs->user_msi_vector[j], + + write_register( + val, &int_regs->user_msi_vector[j], XDMA_OFS_INT_CTRL + - ((unsigned long)&int_regs->user_msi_vector[j] - - (unsigned long)int_regs)); + ((unsigned long)&int_regs->user_msi_vector[j] - + (unsigned long)int_regs)); dbg_init("vector %d, 0x%x.\n", j, val); } } -static void prog_irq_msix_channel(struct xdma_dev *xdev, bool clear) +static void prog_irq_msix_channel(struct xdma_dev *xdev, bool clear) { - struct interrupt_regs *int_regs = (struct interrupt_regs *) - (xdev->bar[xdev->config_bar_idx] + - XDMA_OFS_INT_CTRL); + struct interrupt_regs *int_regs = + (struct interrupt_regs *)(xdev->bar[xdev->config_bar_idx] + + XDMA_OFS_INT_CTRL); u32 max = xdev->c2h_channel_max + xdev->h2c_channel_max; u32 i; int j; @@ -1844,11 +1951,12 @@ static void prog_irq_msix_channel(struct xdma_dev *xdev, bool clear) else for (k = 0; k < 4 && i < max; i++, k++, shift += 8) val |= (i & 0x1f) << shift; - + write_register(val, &int_regs->channel_msi_vector[j], - XDMA_OFS_INT_CTRL + - ((unsigned long)&int_regs->channel_msi_vector[j] - - (unsigned long)int_regs)); + XDMA_OFS_INT_CTRL + + ((unsigned long)&int_regs + ->channel_msi_vector[j] - + (unsigned long)int_regs)); dbg_init("vector %d, 0x%x.\n", j, val); } } @@ -1864,21 +1972,21 @@ static void irq_msix_channel_teardown(struct xdma_dev *xdev) prog_irq_msix_channel(xdev, 1); - engine = xdev->engine_h2c; + engine = xdev->engine_h2c; for (i = 0; i < xdev->h2c_channel_max; i++, j++, engine++) { if (!engine->msix_irq_line) break; dbg_sg("Release IRQ#%d for engine %p\n", engine->msix_irq_line, - engine); + engine); free_irq(engine->msix_irq_line, engine); } - engine = xdev->engine_c2h; + engine = xdev->engine_c2h; for (i = 0; i < xdev->c2h_channel_max; i++, j++, engine++) { if (!engine->msix_irq_line) break; dbg_sg("Release IRQ#%d for engine %p\n", engine->msix_irq_line, - engine); + engine); free_irq(engine->msix_irq_line, engine); } } @@ -1886,18 +1994,23 @@ static void irq_msix_channel_teardown(struct xdma_dev *xdev) static int irq_msix_channel_setup(struct xdma_dev *xdev) { int i; - int j = xdev->h2c_channel_max; + int j; int rv = 0; u32 vector; struct xdma_engine *engine; - BUG_ON(!xdev); + if (!xdev) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } + if (!xdev->msix_enabled) return 0; + j = xdev->h2c_channel_max; engine = xdev->engine_h2c; for (i = 0; i < xdev->h2c_channel_max; i++, engine++) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) +#if KERNEL_VERSION(4, 12, 0) <= LINUX_VERSION_CODE vector = pci_irq_vector(xdev->pdev, i); #else vector = xdev->entry[i].vector; @@ -1915,7 +2028,7 @@ static int irq_msix_channel_setup(struct xdma_dev *xdev) engine = xdev->engine_c2h; for (i = 0; i < xdev->c2h_channel_max; i++, j++, engine++) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) +#if KERNEL_VERSION(4, 12, 0) <= LINUX_VERSION_CODE vector = pci_irq_vector(xdev->pdev, j); #else vector = xdev->entry[j].vector; @@ -1937,17 +2050,22 @@ static int irq_msix_channel_setup(struct xdma_dev *xdev) static void irq_msix_user_teardown(struct xdma_dev *xdev) { int i; - int j = xdev->h2c_channel_max + xdev->c2h_channel_max; + int j; - BUG_ON(!xdev); + if (!xdev) { + pr_err("Invalid xdev\n"); + return; + } if (!xdev->msix_enabled) return; + j = xdev->h2c_channel_max + xdev->c2h_channel_max; + prog_irq_msix_user(xdev, 1); for (i = 0; i < xdev->user_max; i++, j++) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) +#if KERNEL_VERSION(4, 12, 0) <= LINUX_VERSION_CODE u32 vector = pci_irq_vector(xdev->pdev, j); #else u32 vector = xdev->entry[j].vector; @@ -1961,30 +2079,30 @@ static int irq_msix_user_setup(struct xdma_dev *xdev) { int i; int j = xdev->h2c_channel_max + xdev->c2h_channel_max; - int rv = 0; + int rv = 0; /* vectors set in probe_scan_for_msi() */ for (i = 0; i < xdev->user_max; i++, j++) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) +#if KERNEL_VERSION(4, 12, 0) <= LINUX_VERSION_CODE u32 vector = pci_irq_vector(xdev->pdev, j); #else u32 vector = xdev->entry[j].vector; #endif rv = request_irq(vector, xdma_user_irq, 0, xdev->mod_name, - &xdev->user_irq[i]); + &xdev->user_irq[i]); if (rv) { - pr_info("user %d couldn't use IRQ#%d, %d\n", - i, vector, rv); + pr_info("user %d couldn't use IRQ#%d, %d\n", i, vector, + rv); break; } pr_info("%d-USR-%d, IRQ#%d with 0x%p\n", xdev->idx, i, vector, &xdev->user_irq[i]); - } + } /* If any errors occur, free IRQs that were successfully requested */ if (rv) { for (i--, j--; i >= 0; i--, j--) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) +#if KERNEL_VERSION(4, 12, 0) <= LINUX_VERSION_CODE u32 vector = pci_irq_vector(xdev->pdev, j); #else u32 vector = xdev->entry[j].vector; @@ -2018,25 +2136,31 @@ static int irq_legacy_setup(struct xdma_dev *xdev, struct pci_dev *pdev) int rv; pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &val); + if (val == 0) { + dbg_init("Legacy interrupt not supported\n"); + return -EINVAL; + } + dbg_init("Legacy Interrupt register value = %d\n", val); if (val > 1) { val--; - w = (val<<24) | (val<<16) | (val<<8)| val; - /* Program IRQ Block Channel vactor and IRQ Block User vector - * with Legacy interrupt value */ - reg = xdev->bar[xdev->config_bar_idx] + 0x2080; // IRQ user + w = (val << 24) | (val << 16) | (val << 8) | val; + /* Program IRQ Block Channel vector and IRQ Block User vector + * with Legacy interrupt value + */ + reg = xdev->bar[xdev->config_bar_idx] + 0x2080; // IRQ user write_register(w, reg, 0x2080); - write_register(w, reg+0x4, 0x2084); - write_register(w, reg+0x8, 0x2088); - write_register(w, reg+0xC, 0x208C); - reg = xdev->bar[xdev->config_bar_idx] + 0x20A0; // IRQ Block + write_register(w, reg + 0x4, 0x2084); + write_register(w, reg + 0x8, 0x2088); + write_register(w, reg + 0xC, 0x208C); + reg = xdev->bar[xdev->config_bar_idx] + 0x20A0; // IRQ Block write_register(w, reg, 0x20A0); - write_register(w, reg+0x4, 0x20A4); + write_register(w, reg + 0x4, 0x20A4); } xdev->irq_line = (int)pdev->irq; rv = request_irq(pdev->irq, xdma_isr, IRQF_SHARED, xdev->mod_name, - xdev); + xdev); if (rv) dbg_init("Couldn't use IRQ#%d, %d\n", pdev->irq, rv); else @@ -2062,6 +2186,7 @@ static int irq_setup(struct xdma_dev *xdev, struct pci_dev *pdev) if (xdev->msix_enabled) { int rv = irq_msix_channel_setup(xdev); + if (rv) return rv; rv = irq_msix_user_setup(xdev); @@ -2082,19 +2207,23 @@ static void dump_desc(struct xdma_desc *desc_virt) { int j; u32 *p = (u32 *)desc_virt; - static char * const field_name[] = { - "magic|extra_adjacent|control", "bytes", "src_addr_lo", - "src_addr_hi", "dst_addr_lo", "dst_addr_hi", "next_addr", - "next_addr_pad"}; + static char *const field_name[] = { "magic|extra_adjacent|control", + "bytes", + "src_addr_lo", + "src_addr_hi", + "dst_addr_lo", + "dst_addr_hi", + "next_addr", + "next_addr_pad" }; char *dummy; /* remove warning about unused variable when debug printing is off */ dummy = field_name[0]; for (j = 0; j < 8; j += 1) { - pr_info("0x%08lx/0x%02lx: 0x%08x 0x%08x %s\n", - (uintptr_t)p, (uintptr_t)p & 15, (int)*p, - le32_to_cpu(*p), field_name[j]); + pr_info("0x%08lx/0x%02lx: 0x%08x 0x%08x %s\n", (uintptr_t)p, + (uintptr_t)p & 15, (int)*p, le32_to_cpu(*p), + field_name[j]); p++; } pr_info("\n"); @@ -2109,38 +2238,31 @@ static void transfer_dump(struct xdma_transfer *transfer) transfer, transfer->state, transfer->flags, transfer->dir, transfer->len, transfer->last_in_request); - pr_info("transfer 0x%p, desc %d, bus 0x%llx, adj %d.\n", - transfer, transfer->desc_num, (u64)transfer->desc_bus, + pr_info("transfer 0x%p, desc %d, bus 0x%llx, adj %d.\n", transfer, + transfer->desc_num, (u64)transfer->desc_bus, transfer->desc_adjacent); for (i = 0; i < transfer->desc_num; i += 1) dump_desc(desc_virt + i); } #endif /* __LIBXDMA_DEBUG__ */ -/* xdma_desc_alloc() - Allocate cache-coherent array of N descriptors. - * - * Allocates an array of 'number' descriptors in contiguous PCI bus addressable - * memory. Chains the descriptors as a singly-linked list; the descriptor's - * next * pointer specifies the bus address of the next descriptor. +/* transfer_desc_init() - Chains the descriptors as a singly-linked list * + * Each descriptor's next * pointer specifies the bus address + * of the next descriptor. + * Terminates the last descriptor to form a singly-linked list * - * @dev Pointer to pci_dev - * @number Number of descriptors to be allocated - * @desc_bus_p Pointer where to store the first descriptor bus address - * - * @return Virtual address of the first descriptor + * @transfer Pointer to SG DMA transfers + * @count Number of descriptors allocated in continuous PCI bus addressable + * memory * + * @return 0 on success, EINVAL on failure */ -static void transfer_desc_init(struct xdma_transfer *transfer, int count) +static int transfer_desc_init(struct xdma_transfer *transfer, int count) { struct xdma_desc *desc_virt = transfer->desc_virt; dma_addr_t desc_bus = transfer->desc_bus; int i; - int adj = count - 1; - int extra_adj; - u32 temp_control; - - BUG_ON(count > XDMA_TRANSFER_MAX_DESC); /* create singly-linked list for SG DMA controller */ for (i = 0; i < count - 1; i++) { @@ -2152,30 +2274,16 @@ static void transfer_desc_init(struct xdma_transfer *transfer, int count) desc_virt[i].next_hi = cpu_to_le32(PCI_DMA_H(desc_bus)); desc_virt[i].bytes = cpu_to_le32(0); - /* any adjacent descriptors? */ - if (adj > 0) { - extra_adj = adj - 1; - if (extra_adj > MAX_EXTRA_ADJ) - extra_adj = MAX_EXTRA_ADJ; - - adj--; - } else { - extra_adj = 0; - } - - temp_control = DESC_MAGIC | (extra_adj << 8); - - desc_virt[i].control = cpu_to_le32(temp_control); + desc_virt[i].control = cpu_to_le32(DESC_MAGIC); } /* { i = number - 1 } */ /* zero the last descriptor next pointer */ desc_virt[i].next_lo = cpu_to_le32(0); desc_virt[i].next_hi = cpu_to_le32(0); desc_virt[i].bytes = cpu_to_le32(0); + desc_virt[i].control = cpu_to_le32(DESC_MAGIC); - temp_control = DESC_MAGIC; - - desc_virt[i].control = cpu_to_le32(temp_control); + return 0; } /* xdma_desc_link() - Link two descriptors @@ -2187,14 +2295,13 @@ static void transfer_desc_init(struct xdma_transfer *transfer, int count) * @second_bus bus address of second descriptor */ static void xdma_desc_link(struct xdma_desc *first, struct xdma_desc *second, - dma_addr_t second_bus) + dma_addr_t second_bus) { /* * remember reserved control in first descriptor, but zero * extra_adjacent! */ - /* RTO - what's this about? Shouldn't it be 0x0000c0ffUL? */ - u32 control = le32_to_cpu(first->control) & 0x0000f0ffUL; + u32 control = le32_to_cpu(first->control) & 0x00FFC0ffUL; /* second descriptor given? */ if (second) { /* @@ -2218,58 +2325,31 @@ static void xdma_desc_link(struct xdma_desc *first, struct xdma_desc *second, } /* xdma_desc_adjacent -- Set how many descriptors are adjacent to this one */ -static void xdma_desc_adjacent(struct xdma_desc *desc, int next_adjacent) +static void xdma_desc_adjacent(struct xdma_desc *desc, u32 next_adjacent) { - int extra_adj = 0; /* remember reserved and control bits */ u32 control = le32_to_cpu(desc->control) & 0x0000f0ffUL; - u32 max_adj_4k = 0; - - if (next_adjacent > 0) { - extra_adj = next_adjacent - 1; - if (extra_adj > MAX_EXTRA_ADJ){ - extra_adj = MAX_EXTRA_ADJ; - } - max_adj_4k = (0x1000 - ((le32_to_cpu(desc->next_lo))&0xFFF))/32 - 1; - if (extra_adj>max_adj_4k) { - extra_adj = max_adj_4k; - } - if(extra_adj<0){ - printk("Warning: extra_adj<0, converting it to 0\n"); - extra_adj = 0; - } - } /* merge adjacent and control field */ - control |= 0xAD4B0000UL | (extra_adj << 8); + control |= 0xAD4B0000UL | (next_adjacent << 8); /* write control and next_adjacent */ desc->control = cpu_to_le32(control); } /* xdma_desc_control -- Set complete control field of a descriptor. */ -static void xdma_desc_control_set(struct xdma_desc *first, u32 control_field) +static int xdma_desc_control_set(struct xdma_desc *first, u32 control_field) { /* remember magic and adjacent number */ u32 control = le32_to_cpu(first->control) & ~(LS_BYTE_MASK); - BUG_ON(control_field & ~(LS_BYTE_MASK)); + if (control_field & ~(LS_BYTE_MASK)) { + pr_err("Invalid control field\n"); + return -EINVAL; + } /* merge adjacent and control field */ control |= control_field; /* write control and next_adjacent */ first->control = cpu_to_le32(control); -} - -/* xdma_desc_clear -- Clear bits in control field of a descriptor. */ -static void xdma_desc_control_clear(struct xdma_desc *first, u32 clear_mask) -{ - /* remember magic and adjacent number */ - u32 control = le32_to_cpu(first->control); - - BUG_ON(clear_mask & ~(LS_BYTE_MASK)); - - /* merge adjacent and control field */ - control &= (~clear_mask); - /* write control and next_adjacent */ - first->control = cpu_to_le32(control); + return 0; } /* xdma_desc_done - recycle cache-coherent linked list of descriptors. @@ -2279,9 +2359,9 @@ static void xdma_desc_control_clear(struct xdma_desc *first, u32 clear_mask) * @desc_virt Pointer to (i.e. virtual address of) first descriptor in list * @desc_bus Bus address of first descriptor in list */ -static inline void xdma_desc_done(struct xdma_desc *desc_virt) +static inline void xdma_desc_done(struct xdma_desc *desc_virt, int count) { - memset(desc_virt, 0, XDMA_TRANSFER_MAX_DESC * sizeof(struct xdma_desc)); + memset(desc_virt, 0, count * sizeof(struct xdma_desc)); } /* xdma_desc() - Fill a descriptor with the transfer details @@ -2296,7 +2376,7 @@ static inline void xdma_desc_done(struct xdma_desc *desc_virt) * Does not modify the next pointer */ static void xdma_desc_set(struct xdma_desc *desc, dma_addr_t rc_bus_addr, - u64 ep_addr, int len, int dir) + u64 ep_addr, int len, int dir) { /* transfer length */ desc->bytes = cpu_to_le32(len); @@ -2320,28 +2400,41 @@ static void xdma_desc_set(struct xdma_desc *desc, dma_addr_t rc_bus_addr, /* * should hold the engine->lock; */ -static void transfer_abort(struct xdma_engine *engine, - struct xdma_transfer *transfer) +static int transfer_abort(struct xdma_engine *engine, + struct xdma_transfer *transfer) { struct xdma_transfer *head; - BUG_ON(!engine); - BUG_ON(!transfer); - BUG_ON(transfer->desc_num == 0); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } + + if (!transfer) { + pr_err("Invalid DMA transfer\n"); + return -EINVAL; + } + + if (transfer->desc_num == 0) { + pr_err("%s void descriptors in the transfer list\n", + engine->name); + return -EINVAL; + } pr_info("abort transfer 0x%p, desc %d, engine desc queued %d.\n", transfer, transfer->desc_num, engine->desc_dequeued); head = list_entry(engine->transfer_list.next, struct xdma_transfer, - entry); + entry); if (head == transfer) list_del(engine->transfer_list.next); - else + else pr_info("engine %s, transfer 0x%p NOT found, 0x%p.\n", engine->name, transfer, head); if (transfer->state == TRANSFER_STATE_SUBMITTED) transfer->state = TRANSFER_STATE_ABORTED; + return 0; } /* transfer_queue() - Queue a DMA transfer on the engine @@ -2352,23 +2445,39 @@ static void transfer_abort(struct xdma_engine *engine, * Takes and releases the engine spinlock */ static int transfer_queue(struct xdma_engine *engine, - struct xdma_transfer *transfer) + struct xdma_transfer *transfer) { int rv = 0; struct xdma_transfer *transfer_started; struct xdma_dev *xdev; unsigned long flags; - BUG_ON(!engine); - BUG_ON(!engine->xdev); - BUG_ON(!transfer); - BUG_ON(transfer->desc_num == 0); - dbg_tfr("transfer_queue(transfer=0x%p).\n", transfer); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } + + if (!engine->xdev) { + pr_err("Invalid xdev\n"); + return -EINVAL; + } + + if (!transfer) { + pr_err("%s Invalid DMA transfer\n", engine->name); + return -EINVAL; + } + + if (transfer->desc_num == 0) { + pr_err("%s void descriptors in the transfer list\n", + engine->name); + return -EINVAL; + } + dbg_tfr("%s (transfer=0x%p).\n", __func__, transfer); xdev = engine->xdev; if (xdma_device_flag_check(xdev, XDEV_FLAG_OFFLINE)) { - pr_info("dev 0x%p offline, transfer 0x%p not queued.\n", - xdev, transfer); + pr_info("dev 0x%p offline, transfer 0x%p not queued.\n", xdev, + transfer); return -EBUSY; } @@ -2394,9 +2503,12 @@ static int transfer_queue(struct xdma_engine *engine, /* engine is idle? */ if (!engine->running) { /* start engine */ - dbg_tfr("transfer_queue(): starting %s engine.\n", - engine->name); + dbg_tfr("%s(): starting %s engine.\n", __func__, engine->name); transfer_started = engine_start(engine); + if (!transfer_started) { + pr_err("Failed to start dma engine\n"); + goto shutdown; + } dbg_tfr("transfer=0x%p started %s engine with transfer 0x%p.\n", transfer, engine->name, transfer_started); } else { @@ -2419,10 +2531,9 @@ static void engine_alignments(struct xdma_engine *engine) u32 address_bits; w = read_register(&engine->regs->alignments); - dbg_init("engine %p name %s alignments=0x%08x\n", engine, - engine->name, (int)w); + dbg_init("engine %p name %s alignments=0x%08x\n", engine, engine->name, + (int)w); - /* RTO - add some macros to extract these fields */ align_bytes = (w & 0x00ff0000U) >> 16; granularity_bytes = (w & 0x0000ff00U) >> 8; address_bits = (w & 0x000000ffU); @@ -2450,59 +2561,71 @@ static void engine_free_resource(struct xdma_engine *engine) /* Release memory use for descriptor writebacks */ if (engine->poll_mode_addr_virt) { dbg_sg("Releasing memory for descriptor writeback\n"); - dma_free_coherent(&xdev->pdev->dev, - sizeof(struct xdma_poll_wb), - engine->poll_mode_addr_virt, - engine->poll_mode_bus); + dma_free_coherent(&xdev->pdev->dev, sizeof(struct xdma_poll_wb), + engine->poll_mode_addr_virt, + engine->poll_mode_bus); dbg_sg("Released memory for descriptor writeback\n"); engine->poll_mode_addr_virt = NULL; } if (engine->desc) { dbg_init("device %s, engine %s pre-alloc desc 0x%p,0x%llx.\n", - dev_name(&xdev->pdev->dev), engine->name, - engine->desc, engine->desc_bus); + dev_name(&xdev->pdev->dev), engine->name, engine->desc, + engine->desc_bus); dma_free_coherent(&xdev->pdev->dev, - XDMA_TRANSFER_MAX_DESC * sizeof(struct xdma_desc), - engine->desc, engine->desc_bus); + engine->desc_max * sizeof(struct xdma_desc), + engine->desc, engine->desc_bus); engine->desc = NULL; } if (engine->cyclic_result) { - dma_free_coherent(&xdev->pdev->dev, - CYCLIC_RX_PAGES_MAX * sizeof(struct xdma_result), + dma_free_coherent( + &xdev->pdev->dev, + engine->desc_max * sizeof(struct xdma_result), engine->cyclic_result, engine->cyclic_result_bus); engine->cyclic_result = NULL; } } -static void engine_destroy(struct xdma_dev *xdev, struct xdma_engine *engine) +static int engine_destroy(struct xdma_dev *xdev, struct xdma_engine *engine) { - BUG_ON(!xdev); - BUG_ON(!engine); + if (!xdev) { + pr_err("Invalid xdev\n"); + return -EINVAL; + } + + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } dbg_sg("Shutting down engine %s%d", engine->name, engine->channel); /* Disable interrupts to stop processing new events during shutdown */ write_register(0x0, &engine->regs->interrupt_enable_mask, - (unsigned long)(&engine->regs->interrupt_enable_mask) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs->interrupt_enable_mask) - + (unsigned long)(&engine->regs)); - if (enable_credit_mp && engine->streaming && - engine->dir == DMA_FROM_DEVICE) { + if (enable_st_c2h_credit && engine->streaming && + engine->dir == DMA_FROM_DEVICE) { u32 reg_value = (0x1 << engine->channel) << 16; - struct sgdma_common_regs *reg = (struct sgdma_common_regs *) - (xdev->bar[xdev->config_bar_idx] + - (0x6*TARGET_SPACING)); + struct sgdma_common_regs *reg = + (struct sgdma_common_regs + *)(xdev->bar[xdev->config_bar_idx] + + (0x6 * TARGET_SPACING)); write_register(reg_value, ®->credit_mode_enable_w1c, 0); } + if (poll_mode) + xdma_thread_remove_work(engine); + /* Release memory use for descriptor writebacks */ engine_free_resource(engine); memset(engine, 0, sizeof(struct xdma_engine)); /* Decrement the number of engines available */ xdev->engines_num--; + return 0; } /** @@ -2512,43 +2635,49 @@ static void engine_destroy(struct xdma_dev *xdev, struct xdma_engine *engine) */ struct xdma_transfer *engine_cyclic_stop(struct xdma_engine *engine) { + int rv; struct xdma_transfer *transfer = 0; + int size = engine->xdma_perf->transfer_size; /* transfers on queue? */ if (!list_empty(&engine->transfer_list)) { /* pick first transfer on the queue (was submitted to engine) */ transfer = list_entry(engine->transfer_list.next, - struct xdma_transfer, entry); - BUG_ON(!transfer); - - xdma_engine_stop(engine); + struct xdma_transfer, entry); + if (!transfer) { + pr_err("(engine=%s) has void transfer in queue.\n", + engine->name); + return NULL; + } + rv = xdma_engine_stop(engine); + if (rv < 0) { + pr_err("Failed to stop engine\n"); + return NULL; + } if (transfer->cyclic) { if (engine->xdma_perf) dbg_perf("Stopping perf transfer on %s\n", - engine->name); + engine->name); else dbg_perf("Stopping cyclic transfer on %s\n", - engine->name); - /* make sure the handler sees correct transfer state */ - transfer->cyclic = 1; - /* - * set STOP flag and interrupt on completion, on the - * last descriptor - */ - xdma_desc_control_set( - transfer->desc_virt + transfer->desc_num - 1, - XDMA_DESC_COMPLETED | XDMA_DESC_STOPPED); + engine->name); + /* free up the buffer allocated for perf run */ + if (engine->perf_buf_virt) + dma_free_coherent(&engine->xdev->pdev->dev, + size, engine->perf_buf_virt, + engine->perf_buf_bus); + engine->perf_buf_virt = NULL; + list_del(&transfer->entry); } else { dbg_sg("(engine=%p) running transfer is not cyclic\n", - engine); + engine); } } else { dbg_sg("(engine=%p) found not running transfer.\n", engine); } return transfer; } -EXPORT_SYMBOL_GPL(engine_cyclic_stop); static int engine_writeback_setup(struct xdma_engine *engine) { @@ -2556,33 +2685,38 @@ static int engine_writeback_setup(struct xdma_engine *engine) struct xdma_dev *xdev; struct xdma_poll_wb *writeback; - BUG_ON(!engine); + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } + xdev = engine->xdev; - BUG_ON(!xdev); + if (!xdev) { + pr_err("Invalid xdev\n"); + return -EINVAL; + } /* - * RTO - doing the allocation per engine is wasteful since a full page - * is allocated each time - better to allocate one page for the whole - * device during probe() and set per-engine offsets here + * better to allocate one page for the whole device during probe() + * and set per-engine offsets here */ writeback = (struct xdma_poll_wb *)engine->poll_mode_addr_virt; writeback->completed_desc_count = 0; dbg_init("Setting writeback location to 0x%llx for engine %p", - engine->poll_mode_bus, engine); + engine->poll_mode_bus, engine); w = cpu_to_le32(PCI_DMA_L(engine->poll_mode_bus)); - write_register(w, &engine->regs->poll_mode_wb_lo, - (unsigned long)(&engine->regs->poll_mode_wb_lo) - - (unsigned long)(&engine->regs)); + write_register(w, &engine->regs->poll_mode_wb_lo, + (unsigned long)(&engine->regs->poll_mode_wb_lo) - + (unsigned long)(&engine->regs)); w = cpu_to_le32(PCI_DMA_H(engine->poll_mode_bus)); - write_register(w, &engine->regs->poll_mode_wb_hi, - (unsigned long)(&engine->regs->poll_mode_wb_hi) - - (unsigned long)(&engine->regs)); + write_register(w, &engine->regs->poll_mode_wb_hi, + (unsigned long)(&engine->regs->poll_mode_wb_hi) - + (unsigned long)(&engine->regs)); return 0; } - /* engine_create() - Create an SG DMA engine bookkeeping data structure * * An SG DMA engine consists of the resources for a single-direction transfer @@ -2600,8 +2734,8 @@ static int engine_init_regs(struct xdma_engine *engine) int rv = 0; write_register(XDMA_CTRL_NON_INCR_ADDR, &engine->regs->control_w1c, - (unsigned long)(&engine->regs->control_w1c) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs->control_w1c) - + (unsigned long)(&engine->regs)); engine_alignments(engine); @@ -2617,34 +2751,31 @@ static int engine_init_regs(struct xdma_engine *engine) rv = engine_writeback_setup(engine); if (rv) { dbg_init("%s descr writeback setup failed.\n", - engine->name); + engine->name); goto fail_wb; } } else { /* enable the relevant completion interrupts */ reg_value |= XDMA_CTRL_IE_DESC_STOPPED; reg_value |= XDMA_CTRL_IE_DESC_COMPLETED; - - if (engine->streaming && engine->dir == DMA_FROM_DEVICE) - reg_value |= XDMA_CTRL_IE_IDLE_STOPPED; } /* Apply engine configurations */ write_register(reg_value, &engine->regs->interrupt_enable_mask, - (unsigned long)(&engine->regs->interrupt_enable_mask) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs->interrupt_enable_mask) - + (unsigned long)(&engine->regs)); engine->interrupt_enable_mask_value = reg_value; /* only enable credit mode for AXI-ST C2H */ - if (enable_credit_mp && engine->streaming && - engine->dir == DMA_FROM_DEVICE) { - + if (enable_st_c2h_credit && engine->streaming && + engine->dir == DMA_FROM_DEVICE) { struct xdma_dev *xdev = engine->xdev; u32 reg_value = (0x1 << engine->channel) << 16; - struct sgdma_common_regs *reg = (struct sgdma_common_regs *) - (xdev->bar[xdev->config_bar_idx] + - (0x6*TARGET_SPACING)); + struct sgdma_common_regs *reg = + (struct sgdma_common_regs + *)(xdev->bar[xdev->config_bar_idx] + + (0x6 * TARGET_SPACING)); write_register(reg_value, ®->credit_mode_enable_w1s, 0); } @@ -2660,8 +2791,9 @@ static int engine_alloc_resource(struct xdma_engine *engine) struct xdma_dev *xdev = engine->xdev; engine->desc = dma_alloc_coherent(&xdev->pdev->dev, - XDMA_TRANSFER_MAX_DESC * sizeof(struct xdma_desc), - &engine->desc_bus, GFP_KERNEL); + engine->desc_max * + sizeof(struct xdma_desc), + &engine->desc_bus, GFP_KERNEL); if (!engine->desc) { pr_warn("dev %s, %s pre-alloc desc OOM.\n", dev_name(&xdev->pdev->dev), engine->name); @@ -2669,24 +2801,25 @@ static int engine_alloc_resource(struct xdma_engine *engine) } if (poll_mode) { - engine->poll_mode_addr_virt = dma_alloc_coherent( - &xdev->pdev->dev, - sizeof(struct xdma_poll_wb), - &engine->poll_mode_bus, GFP_KERNEL); + engine->poll_mode_addr_virt = + dma_alloc_coherent(&xdev->pdev->dev, + sizeof(struct xdma_poll_wb), + &engine->poll_mode_bus, GFP_KERNEL); if (!engine->poll_mode_addr_virt) { - pr_warn("%s, %s poll pre-alloc writeback OOM.\n", + pr_warn("%s, %s poll pre-alloc writeback OOM.\n", dev_name(&xdev->pdev->dev), engine->name); goto err_out; } } if (engine->streaming && engine->dir == DMA_FROM_DEVICE) { - engine->cyclic_result = dma_alloc_coherent(&xdev->pdev->dev, - CYCLIC_RX_PAGES_MAX * sizeof(struct xdma_result), + engine->cyclic_result = dma_alloc_coherent( + &xdev->pdev->dev, + engine->desc_max * sizeof(struct xdma_result), &engine->cyclic_result_bus, GFP_KERNEL); if (!engine->cyclic_result) { - pr_warn("%s, %s pre-alloc result OOM.\n", + pr_warn("%s, %s pre-alloc result OOM.\n", dev_name(&xdev->pdev->dev), engine->name); goto err_out; } @@ -2700,7 +2833,7 @@ static int engine_alloc_resource(struct xdma_engine *engine) } static int engine_init(struct xdma_engine *engine, struct xdma_dev *xdev, - int offset, enum dma_data_direction dir, int channel) + int offset, enum dma_data_direction dir, int channel) { int rv; u32 val; @@ -2722,19 +2855,25 @@ static int engine_init(struct xdma_engine *engine, struct xdma_dev *xdev, /* register address */ engine->regs = (xdev->bar[xdev->config_bar_idx] + offset); engine->sgdma_regs = xdev->bar[xdev->config_bar_idx] + offset + - SGDMA_OFFSET_FROM_CHANNEL; + SGDMA_OFFSET_FROM_CHANNEL; val = read_register(&engine->regs->identifier); - if (val & 0x8000U) + if (val & 0x8000U) engine->streaming = 1; /* remember SG DMA direction */ engine->dir = dir; - sprintf(engine->name, "%d-%s%d-%s", xdev->idx, + snprintf(engine->name, sizeof(engine->name), "%d-%s%d-%s", xdev->idx, (dir == DMA_TO_DEVICE) ? "H2C" : "C2H", channel, engine->streaming ? "ST" : "MM"); + if (enable_st_c2h_credit && engine->streaming && + engine->dir == DMA_FROM_DEVICE) + engine->desc_max = XDMA_ENGINE_CREDIT_XFER_MAX_DESC; + else + engine->desc_max = XDMA_ENGINE_XFER_MAX_DESC; + dbg_init("engine %p name %s irq_bitmask=0x%08x\n", engine, engine->name, - (int)engine->irq_bitmask); + (int)engine->irq_bitmask); /* initialize the deferred work for transfer completion */ INIT_WORK(&engine->work, engine_service_work); @@ -2753,95 +2892,143 @@ static int engine_init(struct xdma_engine *engine, struct xdma_dev *xdev, if (rv) return rv; + if (poll_mode) + xdma_thread_add_work(engine); + return 0; } /* transfer_destroy() - free transfer */ static void transfer_destroy(struct xdma_dev *xdev, struct xdma_transfer *xfer) { - /* free descriptors */ - xdma_desc_done(xfer->desc_virt); + /* free descriptors */ + xdma_desc_done(xfer->desc_virt, xfer->desc_num); if (xfer->last_in_request && (xfer->flags & XFER_FLAG_NEED_UNMAP)) { - struct sg_table *sgt = xfer->sgt; + struct sg_table *sgt = xfer->sgt; if (sgt->nents) { pci_unmap_sg(xdev->pdev, sgt->sgl, sgt->nents, - xfer->dir); + xfer->dir); sgt->nents = 0; } } } static int transfer_build(struct xdma_engine *engine, - struct xdma_request_cb *req, unsigned int desc_max) + struct xdma_request_cb *req, struct xdma_transfer *xfer, + unsigned int desc_max) { - struct xdma_transfer *xfer = &req->xfer; struct sw_desc *sdesc = &(req->sdesc[req->sw_desc_idx]); int i = 0; int j = 0; + dma_addr_t bus = xfer->res_bus; for (; i < desc_max; i++, j++, sdesc++) { dbg_desc("sw desc %d/%u: 0x%llx, 0x%x, ep 0x%llx.\n", - i + req->sw_desc_idx, req->sw_desc_cnt, - sdesc->addr, sdesc->len, req->ep_addr); + i + req->sw_desc_idx, req->sw_desc_cnt, sdesc->addr, + sdesc->len, req->ep_addr); /* fill in descriptor entry j with transfer details */ xdma_desc_set(xfer->desc_virt + j, sdesc->addr, req->ep_addr, - sdesc->len, xfer->dir); + sdesc->len, xfer->dir); xfer->len += sdesc->len; /* for non-inc-add mode don't increment ep_addr */ if (!engine->non_incr_addr) req->ep_addr += sdesc->len; + + if (engine->streaming && engine->dir == DMA_FROM_DEVICE) { + memset(xfer->res_virt + j, 0, + sizeof(struct xdma_result)); + xfer->desc_virt[j].src_addr_lo = + cpu_to_le32(PCI_DMA_L(bus)); + xfer->desc_virt[j].src_addr_hi = + cpu_to_le32(PCI_DMA_H(bus)); + bus += sizeof(struct xdma_result); + } + } - req->sw_desc_idx += desc_max; + req->sw_desc_idx += desc_max; return 0; } -static int transfer_init(struct xdma_engine *engine, struct xdma_request_cb *req) + +static int transfer_init(struct xdma_engine *engine, + struct xdma_request_cb *req, struct xdma_transfer *xfer) { - struct xdma_transfer *xfer = &req->xfer; unsigned int desc_max = min_t(unsigned int, req->sw_desc_cnt - req->sw_desc_idx, - XDMA_TRANSFER_MAX_DESC); + engine->desc_max); int i = 0; int last = 0; u32 control; + unsigned long flags; memset(xfer, 0, sizeof(*xfer)); + /* lock the engine state */ + spin_lock_irqsave(&engine->lock, flags); /* initialize wait queue */ +#if HAS_SWAKE_UP + init_swait_queue_head(&xfer->wq); +#else init_waitqueue_head(&xfer->wq); +#endif /* remember direction of transfer */ xfer->dir = engine->dir; + xfer->desc_virt = engine->desc + engine->desc_idx; + xfer->res_virt = engine->cyclic_result + engine->desc_idx; + xfer->desc_bus = engine->desc_bus + + (sizeof(struct xdma_desc) * engine->desc_idx); + xfer->res_bus = engine->cyclic_result_bus + + (sizeof(struct xdma_result) * engine->desc_idx); + xfer->desc_index = engine->desc_idx; - xfer->desc_virt = engine->desc; - xfer->desc_bus = engine->desc_bus; + /* Need to handle desc_used >= engine->desc_max */ + + if ((engine->desc_idx + desc_max) >= engine->desc_max) + desc_max = engine->desc_max - engine->desc_idx; transfer_desc_init(xfer, desc_max); - - dbg_sg("transfer->desc_bus = 0x%llx.\n", (u64)xfer->desc_bus); - transfer_build(engine, req, desc_max); + dbg_sg("xfer= %p transfer->desc_bus = 0x%llx.\n", + xfer, (u64)xfer->desc_bus); + transfer_build(engine, req, xfer, desc_max); + + xfer->desc_adjacent = desc_max; /* terminate last descriptor */ last = desc_max - 1; - xdma_desc_link(xfer->desc_virt + last, 0, 0); /* stop engine, EOP for AXI ST, req IRQ on last descriptor */ control = XDMA_DESC_STOPPED; control |= XDMA_DESC_EOP; control |= XDMA_DESC_COMPLETED; xdma_desc_control_set(xfer->desc_virt + last, control); - xfer->desc_num = xfer->desc_adjacent = desc_max; + if (engine->eop_flush) { + for (i = 0; i < last; i++) + xdma_desc_control_set(xfer->desc_virt + i, + XDMA_DESC_COMPLETED); + xfer->desc_cmpl_th = 1; + } else + xfer->desc_cmpl_th = desc_max; + + xfer->desc_num = desc_max; + engine->desc_idx = (engine->desc_idx + desc_max) % engine->desc_max; + engine->desc_used += desc_max; - dbg_sg("transfer 0x%p has %d descriptors\n", xfer, xfer->desc_num); /* fill in adjacent numbers */ - for (i = 0; i < xfer->desc_num; i++) - xdma_desc_adjacent(xfer->desc_virt + i, xfer->desc_num - i - 1); + for (i = 0; i < xfer->desc_num; i++) { + u32 next_adj = xdma_get_next_adj(xfer->desc_num - i - 1, + (xfer->desc_virt + i)->next_lo); + + dbg_desc("set next adj at index %d to %u\n", i, next_adj); + xdma_desc_adjacent(xfer->desc_virt + i, next_adj); + } + spin_unlock_irqrestore(&engine->lock, flags); return 0; } @@ -2851,13 +3038,13 @@ static void sgt_dump(struct sg_table *sgt) int i; struct scatterlist *sg = sgt->sgl; - pr_info("sgt 0x%p, sgl 0x%p, nents %u/%u.\n", - sgt, sgt->sgl, sgt->nents, sgt->orig_nents); + pr_info("sgt 0x%p, sgl 0x%p, nents %u/%u.\n", sgt, sgt->sgl, sgt->nents, + sgt->orig_nents); for (i = 0; i < sgt->orig_nents; i++, sg = sg_next(sg)) - pr_info("%d, 0x%p, pg 0x%p,%u+%u, dma 0x%llx,%u.\n", - i, sg, sg_page(sg), sg->offset, sg->length, - sg_dma_address(sg), sg_dma_len(sg)); + pr_info("%d, 0x%p, pg 0x%p,%u+%u, dma 0x%llx,%u.\n", i, sg, + sg_page(sg), sg->offset, sg->length, sg_dma_address(sg), + sg_dma_len(sg)); } static void xdma_request_cb_dump(struct xdma_request_cb *req) @@ -2868,9 +3055,8 @@ static void xdma_request_cb_dump(struct xdma_request_cb *req) req, req->total_len, req->ep_addr, req->sw_desc_cnt, req->sgt); sgt_dump(req->sgt); for (i = 0; i < req->sw_desc_cnt; i++) - pr_info("%d/%u, 0x%llx, %u.\n", - i, req->sw_desc_cnt, req->sdesc[i].addr, - req->sdesc[i].len); + pr_info("%d/%u, 0x%llx, %u.\n", i, req->sw_desc_cnt, + req->sdesc[i].addr, req->sdesc[i].len); } #endif @@ -2883,11 +3069,11 @@ static void xdma_request_free(struct xdma_request_cb *req) kfree(req); } -static struct xdma_request_cb * xdma_request_alloc(unsigned int sdesc_nr) +static struct xdma_request_cb *xdma_request_alloc(unsigned int sdesc_nr) { struct xdma_request_cb *req; unsigned int size = sizeof(struct xdma_request_cb) + - sdesc_nr * sizeof(struct sw_desc); + sdesc_nr * sizeof(struct sw_desc); req = kzalloc(size, GFP_KERNEL); if (!req) { @@ -2903,8 +3089,8 @@ static struct xdma_request_cb * xdma_request_alloc(unsigned int sdesc_nr) return req; } -static struct xdma_request_cb * xdma_init_request(struct sg_table *sgt, - u64 ep_addr) +static struct xdma_request_cb *xdma_init_request(struct sg_table *sgt, + u64 ep_addr) { struct xdma_request_cb *req; struct scatterlist *sg = sgt->sgl; @@ -2912,26 +3098,26 @@ static struct xdma_request_cb * xdma_init_request(struct sg_table *sgt, int extra = 0; int i, j = 0; - for (i = 0; i < max; i++, sg = sg_next(sg)) { + for (i = 0; i < max; i++, sg = sg_next(sg)) { unsigned int len = sg_dma_len(sg); if (unlikely(len > desc_blen_max)) extra += (len + desc_blen_max - 1) / desc_blen_max; } -//pr_info("ep 0x%llx, desc %u+%u.\n", ep_addr, max, extra); + dbg_tfr("ep 0x%llx, desc %u+%u.\n", ep_addr, max, extra); max += extra; req = xdma_request_alloc(max); if (!req) return NULL; - req->sgt = sgt; + req->sgt = sgt; req->ep_addr = ep_addr; - for (i = 0, sg = sgt->sgl; i < sgt->nents; i++, sg = sg_next(sg)) { + for (i = 0, sg = sgt->sgl; i < sgt->nents; i++, sg = sg_next(sg)) { unsigned int tlen = sg_dma_len(sg); - dma_addr_t addr = sg_dma_address(sg); + dma_addr_t addr = sg_dma_address(sg); req->total_len += tlen; while (tlen) { @@ -2939,7 +3125,7 @@ static struct xdma_request_cb * xdma_init_request(struct sg_table *sgt, if (tlen > desc_blen_max) { req->sdesc[j].len = desc_blen_max; addr += desc_blen_max; - tlen -= desc_blen_max; + tlen -= desc_blen_max; } else { req->sdesc[j].len = tlen; tlen = 0; @@ -2947,8 +3133,13 @@ static struct xdma_request_cb * xdma_init_request(struct sg_table *sgt, j++; } } - BUG_ON(j > max); + if (j > max) { + pr_err("Cannot transfer more than supported length %d\n", + desc_blen_max); + xdma_request_free(req); + return NULL; + } req->sw_desc_cnt = j; #ifdef __LIBXDMA_DEBUG__ xdma_request_cb_dump(req); @@ -2956,12 +3147,310 @@ static struct xdma_request_cb * xdma_init_request(struct sg_table *sgt, return req; } +ssize_t xdma_xfer_aperture(struct xdma_engine *engine, bool write, u64 ep_addr, + unsigned int aperture, struct sg_table *sgt, + bool dma_mapped, int timeout_ms) +{ + struct xdma_dev *xdev; + struct xdma_request_cb *req = NULL; + struct scatterlist *sg; + enum dma_data_direction dir = write ? DMA_TO_DEVICE : DMA_FROM_DEVICE; + unsigned int maxlen = min_t(unsigned int, aperture, desc_blen_max); + unsigned int sg_max; + unsigned int tlen = 0; + u64 ep_addr_max = ep_addr + aperture - 1; + ssize_t done = 0; + int i, rv = 0; + + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } + + if (engine->magic != MAGIC_ENGINE) { + pr_err("%s has invalid magic number %lx\n", engine->name, + engine->magic); + return -EINVAL; + } + + xdev = engine->xdev; + if (xdma_device_flag_check(xdev, XDEV_FLAG_OFFLINE)) { + pr_info("xdev 0x%p, offline.\n", xdev); + return -EBUSY; + } + + /* check the direction */ + if (engine->dir != dir) { + pr_info("0x%p, %s, W %d, 0x%x/0x%x mismatch.\n", engine, + engine->name, write, engine->dir, dir); + return -EINVAL; + } + + if (engine->streaming) { + pr_info("%s aperture not supported in ST.\n", engine->name); + return -EINVAL; + } + + if (!dma_mapped) { + sgt->nents = pci_map_sg(xdev->pdev, sgt->sgl, sgt->orig_nents, + dir); + if (!sgt->nents) { + pr_info("map sgl failed, sgt 0x%p.\n", sgt); + return -EIO; + } + } else if (!sgt->nents) { + pr_err("sg table has invalid number of entries 0x%p.\n", sgt); + return -EIO; + } + sg_max = sgt->nents; + + req = kzalloc(sizeof(struct xdma_request_cb), GFP_KERNEL); + if (!req) { + rv = -ENOMEM; + goto unmap_sgl; + } + memset(req, 0, sizeof(struct xdma_request_cb)); + req->sgt = sgt; + req->ep_addr = ep_addr; + req->aperture = aperture; + req->sg = sgt->sgl; + + for (i = 0, sg = sgt->sgl; i < sgt->nents; i++, sg = sg_next(sg)) + tlen += sg_dma_len(sg); + req->total_len = tlen; + + dbg_tfr("%s, aperture: sg cnt %u.\n", engine->name, sgt->nents); + + mutex_lock(&engine->desc_lock); + + while (req->offset < req->total_len) { + unsigned long flags; + struct xdma_transfer *xfer = &req->tfer[0]; + unsigned int sg_offset = req->sg_offset; + unsigned int desc_idx, desc_max, desc_cnt = 0; + struct xdma_desc *desc_virt; + dma_addr_t desc_bus; + + /* initialize transfer */ + memset(xfer, 0, sizeof(struct xdma_transfer)); +#if HAS_SWAKE_UP + init_swait_queue_head(&xfer->wq); +#else + init_waitqueue_head(&xfer->wq); +#endif + xfer->dir = engine->dir; + if (!dma_mapped) + xfer->flags = XFER_FLAG_NEED_UNMAP; + + spin_lock_irqsave(&engine->lock, flags); + + desc_idx = engine->desc_idx; + desc_max = engine->desc_max; + + xfer->desc_virt = desc_virt = engine->desc + desc_idx; + xfer->res_virt = engine->cyclic_result + desc_idx; + xfer->desc_bus = desc_bus = engine->desc_bus + + (sizeof(struct xdma_desc) * desc_idx); + xfer->res_bus = engine->cyclic_result_bus + + (sizeof(struct xdma_result) * desc_idx); + xfer->desc_index = desc_idx; + + /* build transfer */ + sg = req->sg; + ep_addr = req->ep_addr + (req->offset & (aperture - 1)); + i = req->sg_idx; + + for (sg = req->sg; i < sg_max && desc_idx < desc_max; + i++, sg = sg_next(sg)) { + dma_addr_t addr = sg_dma_address(sg); + + tlen = sg_dma_len(sg); + if (sg_offset) { + tlen -= sg_offset; + addr += sg_offset; + } + + while (tlen) { + unsigned int len = min_t(unsigned int, tlen, + maxlen); + + if (ep_addr > ep_addr_max) + ep_addr = req->ep_addr; + + if ((ep_addr + len) > ep_addr_max) + len = ep_addr_max - ep_addr + 1; + + xdma_desc_set(engine->desc + desc_idx, addr, + ep_addr, len, dir); + + dbg_desc("sg %d -> desc %u: ep 0x%llx, 0x%llx + %u \n", + i, desc_idx, ep_addr, addr, len); + + sg_offset += len; + req->offset += len; + xfer->len += len; + ep_addr += len; + addr += len; + tlen -= len; + + desc_idx++; + desc_cnt++; + if (desc_idx == desc_max) + break; + } + + if (!tlen) + sg_offset = 0; + else + break; + } + + req->sg_offset = sg_offset; + req->sg_idx = i; + + xfer->desc_adjacent = desc_cnt; + xfer->desc_num = desc_cnt; + engine->desc_used += desc_cnt; + + /* create the desc linked list */ + for (i = 0; i < (desc_cnt - 1); i++, desc_virt++) { + desc_bus += sizeof(struct xdma_desc); + /* singly-linked list uses bus addresses */ + desc_virt->next_lo = cpu_to_le32(PCI_DMA_L(desc_bus)); + desc_virt->next_hi = cpu_to_le32(PCI_DMA_H(desc_bus)); + desc_virt->control = cpu_to_le32(DESC_MAGIC); + } + /* terminate the last descriptor next pointer */ + desc_virt->next_lo = cpu_to_le32(0); + desc_virt->next_hi = cpu_to_le32(0); + desc_virt->control = cpu_to_le32(DESC_MAGIC | + XDMA_DESC_STOPPED | XDMA_DESC_EOP | + XDMA_DESC_COMPLETED); + + xfer->desc_cmpl_th = desc_cnt; + + /* fill in adjacent numbers */ + for (i = 0; i < desc_cnt; i++) { + u32 next_adj = xdma_get_next_adj(desc_cnt - i - 1, + (xfer->desc_virt + i)->next_lo); + + dbg_desc("set next adj at idx %d to %u\n", i, next_adj); + xdma_desc_adjacent(xfer->desc_virt + i, next_adj); + } + + engine->desc_idx = (engine->desc_idx + desc_cnt) % desc_max; + spin_unlock_irqrestore(&engine->lock, flags); + + /* last transfer for the given request? */ + if (req->offset == req->total_len) { + xfer->last_in_request = 1; + xfer->sgt = sgt; + } + + dbg_tfr("xfer %u,%u/%u, ep 0x%llx/0x%x, done %ld, sg %u/%u, desc %u.\n", + xfer->len, req->offset, req->total_len, req->ep_addr, + req->aperture, done, req->sg_idx, sg_max, desc_cnt); + + rv = transfer_queue(engine, xfer); + if (rv < 0) { + mutex_unlock(&engine->desc_lock); + pr_info("unable to submit %s, %d.\n", engine->name, rv); + goto unmap_sgl; + } + + if (engine->cmplthp) + xdma_kthread_wakeup(engine->cmplthp); + + if (timeout_ms > 0) + xlx_wait_event_interruptible_timeout(xfer->wq, + (xfer->state != TRANSFER_STATE_SUBMITTED), + msecs_to_jiffies(timeout_ms)); + else + xlx_wait_event_interruptible(xfer->wq, + (xfer->state != TRANSFER_STATE_SUBMITTED)); + + spin_lock_irqsave(&engine->lock, flags); + + switch (xfer->state) { + case TRANSFER_STATE_COMPLETED: + spin_unlock_irqrestore(&engine->lock, flags); + + rv = 0; + dbg_tfr("transfer %p, %u, ep 0x%llx compl, +%lu.\n", + xfer, xfer->len, req->ep_addr - xfer->len, + done); + + done += xfer->len; + + break; + case TRANSFER_STATE_FAILED: + pr_info("xfer 0x%p,%u, failed, ep 0x%llx.\n", xfer, + xfer->len, req->ep_addr - xfer->len); + spin_unlock_irqrestore(&engine->lock, flags); + +#ifdef __LIBXDMA_DEBUG__ + transfer_dump(xfer); + sgt_dump(sgt); +#endif + rv = -EIO; + break; + default: + /* transfer can still be in-flight */ + pr_info("xfer 0x%p,%u, s 0x%x timed out, ep 0x%llx.\n", + xfer, xfer->len, xfer->state, req->ep_addr); + rv = engine_status_read(engine, 0, 1); + if (rv < 0) { + pr_err("Failed to read engine status\n"); + } else if (rv == 0) { + //engine_status_dump(engine); + rv = transfer_abort(engine, xfer); + if (rv < 0) { + pr_err("Failed to stop engine\n"); + } else if (rv == 0) { + rv = xdma_engine_stop(engine); + if (rv < 0) + pr_err("Failed to stop engine\n"); + } + } + spin_unlock_irqrestore(&engine->lock, flags); + +#ifdef __LIBXDMA_DEBUG__ + transfer_dump(xfer); + sgt_dump(sgt); +#endif + rv = -ERESTARTSYS; + break; + } + + engine->desc_used -= xfer->desc_num; + transfer_destroy(xdev, xfer); + + if (rv < 0) { + mutex_unlock(&engine->desc_lock); + goto unmap_sgl; + } + } /* while (sg) */ + mutex_unlock(&engine->desc_lock); + +unmap_sgl: + if (!dma_mapped && sgt->nents) { + pci_unmap_sg(xdev->pdev, sgt->sgl, sgt->orig_nents, dir); + sgt->nents = 0; + } + + if (req) + xdma_request_free(req); + + /* as long as some data is processed, return the count */ + return done ? done : rv; +} + ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, - struct sg_table *sgt, bool dma_mapped, int timeout_ms) + struct sg_table *sgt, bool dma_mapped, int timeout_ms) { struct xdma_dev *xdev = (struct xdma_dev *)dev_hndl; struct xdma_engine *engine; - int rv = 0; + int rv = 0, tfer_idx = 0, i; ssize_t done = 0; struct scatterlist *sg = sgt->sgl; int nents; @@ -2976,25 +3465,30 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, if (write == 1) { if (channel >= xdev->h2c_channel_max) { - pr_warn("H2C channel %d >= %d.\n", - channel, xdev->h2c_channel_max); + pr_err("H2C channel %d >= %d.\n", channel, + xdev->h2c_channel_max); return -EINVAL; } engine = &xdev->engine_h2c[channel]; } else if (write == 0) { if (channel >= xdev->c2h_channel_max) { - pr_warn("C2H channel %d >= %d.\n", - channel, xdev->c2h_channel_max); + pr_err("C2H channel %d >= %d.\n", channel, + xdev->c2h_channel_max); return -EINVAL; } engine = &xdev->engine_c2h[channel]; - } else { - pr_warn("write %d, exp. 0|1.\n", write); + } + + if (!engine) { + pr_err("dma engine NULL\n"); return -EINVAL; } - BUG_ON(!engine); - BUG_ON(engine->magic != MAGIC_ENGINE); + if (engine->magic != MAGIC_ENGINE) { + pr_err("%s has invalid magic number %lx\n", engine->name, + engine->magic); + return -EINVAL; + } xdev = engine->xdev; if (xdma_device_flag_check(xdev, XDEV_FLAG_OFFLINE)) { @@ -3004,8 +3498,8 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, /* check the direction */ if (engine->dir != dir) { - pr_info("0x%p, %s, %d, W %d, 0x%x/0x%x mismatch.\n", - engine, engine->name, channel, write, engine->dir, dir); + pr_info("0x%p, %s, %d, W %d, 0x%x/0x%x mismatch.\n", engine, + engine->name, channel, write, engine->dir, dir); return -EINVAL; } @@ -3017,7 +3511,11 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, } sgt->nents = nents; } else { - BUG_ON(!sgt->nents); + if (!sgt->nents) { + pr_err("sg table has invalid number of entries 0x%p.\n", + sgt); + return -EIO; + } } req = xdma_init_request(sgt, ep_addr); @@ -3026,25 +3524,24 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, goto unmap_sgl; } - dbg_tfr("%s, len %u sg cnt %u.\n", - engine->name, req->total_len, req->sw_desc_cnt); + dbg_tfr("%s, len %u sg cnt %u.\n", engine->name, req->total_len, + req->sw_desc_cnt); sg = sgt->sgl; nents = req->sw_desc_cnt; + mutex_lock(&engine->desc_lock); + while (nents) { unsigned long flags; struct xdma_transfer *xfer; - /* one transfer at a time */ - spin_lock(&engine->desc_lock); - - /* build transfer */ - rv = transfer_init(engine, req); + /* build transfer */ + rv = transfer_init(engine, req, &req->tfer[0]); if (rv < 0) { - spin_unlock(&engine->desc_lock); + mutex_unlock(&engine->desc_lock); goto unmap_sgl; } - xfer = &req->xfer; + xfer = &req->tfer[0]; if (!dma_mapped) xfer->flags = XFER_FLAG_NEED_UNMAP; @@ -3056,9 +3553,8 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, xfer->sgt = sgt; } - dbg_tfr("xfer, %u, ep 0x%llx, done %lu, sg %u/%u.\n", - xfer->len, req->ep_addr, done, req->sw_desc_idx, - req->sw_desc_cnt); + dbg_tfr("xfer, %u, ep 0x%llx, done %lu, sg %u/%u.\n", xfer->len, + req->ep_addr, done, req->sw_desc_idx, req->sw_desc_cnt); #ifdef __LIBXDMA_DEBUG__ transfer_dump(xfer); @@ -3066,45 +3562,51 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, rv = transfer_queue(engine, xfer); if (rv < 0) { - spin_unlock(&engine->desc_lock); + mutex_unlock(&engine->desc_lock); pr_info("unable to submit %s, %d.\n", engine->name, rv); goto unmap_sgl; } - /* - * When polling, determine how many descriptors have been queued * on the engine to determine the writeback value expected - */ - if (poll_mode) { - unsigned int desc_count; - - spin_lock_irqsave(&engine->lock, flags); - desc_count = xfer->desc_num; - spin_unlock_irqrestore(&engine->lock, flags); - - dbg_tfr("%s poll desc_count=%d\n", - engine->name, desc_count); - rv = engine_service_poll(engine, desc_count); + if (engine->cmplthp) + xdma_kthread_wakeup(engine->cmplthp); - } else { - rv = wait_event_interruptible_timeout(xfer->wq, - (xfer->state != TRANSFER_STATE_SUBMITTED), + if (timeout_ms > 0) + xlx_wait_event_interruptible_timeout(xfer->wq, + (xfer->state != TRANSFER_STATE_SUBMITTED), msecs_to_jiffies(timeout_ms)); - } + else + xlx_wait_event_interruptible(xfer->wq, + (xfer->state != TRANSFER_STATE_SUBMITTED)); spin_lock_irqsave(&engine->lock, flags); - switch(xfer->state) { + switch (xfer->state) { case TRANSFER_STATE_COMPLETED: spin_unlock_irqrestore(&engine->lock, flags); - dbg_tfr("transfer %p, %u, ep 0x%llx compl, +%lu.\n", - xfer, xfer->len, req->ep_addr - xfer->len, done); - done += xfer->len; rv = 0; + dbg_tfr("transfer %p, %u, ep 0x%llx compl, +%lu.\n", + xfer, xfer->len, req->ep_addr - xfer->len, + done); + + /* For C2H streaming use writeback results */ + if (engine->streaming && + engine->dir == DMA_FROM_DEVICE) { + struct xdma_result *result = xfer->res_virt; + + for (i = 0; i < xfer->desc_cmpl; i++) + done += result[i].length; + + /* finish the whole request */ + if (engine->eop_flush) + nents = 0; + } else + done += xfer->len; + break; case TRANSFER_STATE_FAILED: - pr_info("xfer 0x%p,%u, failed, ep 0x%llx.\n", - xfer, xfer->len, req->ep_addr - xfer->len); + pr_info("xfer 0x%p,%u, failed, ep 0x%llx.\n", xfer, + xfer->len, req->ep_addr - xfer->len); spin_unlock_irqrestore(&engine->lock, flags); #ifdef __LIBXDMA_DEBUG__ @@ -3116,12 +3618,21 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, default: /* transfer can still be in-flight */ pr_info("xfer 0x%p,%u, s 0x%x timed out, ep 0x%llx.\n", - xfer, xfer->len, xfer->state, req->ep_addr); - engine_status_read(engine, 0, 1); - //engine_status_dump(engine); - transfer_abort(engine, xfer); - - xdma_engine_stop(engine); + xfer, xfer->len, xfer->state, req->ep_addr); + rv = engine_status_read(engine, 0, 1); + if (rv < 0) { + pr_err("Failed to read engine status\n"); + } else if (rv == 0) { + //engine_status_dump(engine); + rv = transfer_abort(engine, xfer); + if (rv < 0) { + pr_err("Failed to stop engine\n"); + } else if (rv == 0) { + rv = xdma_engine_stop(engine); + if (rv < 0) + pr_err("Failed to stop engine\n"); + } + } spin_unlock_irqrestore(&engine->lock, flags); #ifdef __LIBXDMA_DEBUG__ @@ -3132,12 +3643,20 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, break; } + engine->desc_used -= xfer->desc_num; transfer_destroy(xdev, xfer); - spin_unlock(&engine->desc_lock); - if (rv < 0) + /* use multiple transfers per request if we could not fit + * all data within single descriptor chain. + */ + tfer_idx++; + + if (rv < 0) { + mutex_unlock(&engine->desc_lock); goto unmap_sgl; + } } /* while (sg) */ + mutex_unlock(&engine->desc_lock); unmap_sgl: if (!dma_mapped && sgt->nents) { @@ -3148,39 +3667,333 @@ ssize_t xdma_xfer_submit(void *dev_hndl, int channel, bool write, u64 ep_addr, if (req) xdma_request_free(req); - if (rv < 0) - return rv; - - return done; + /* as long as some data is processed, return the count */ + return done ? done : rv; } -EXPORT_SYMBOL_GPL(xdma_xfer_submit); -int xdma_performance_submit(struct xdma_dev *xdev, struct xdma_engine *engine) +ssize_t xdma_xfer_completion(void *cb_hndl, void *dev_hndl, int channel, + bool write, u64 ep_addr, struct sg_table *sgt, + bool dma_mapped, int timeout_ms) { - u8 *buffer_virt; - u32 max_consistent_size = 128 * 32 * 1024; /* 1024 pages, 4MB */ - dma_addr_t buffer_bus; /* bus address */ - struct xdma_transfer *transfer; - u64 ep_addr = 0; - int num_desc_in_a_loop = 128; - int size_in_desc = engine->xdma_perf->transfer_size; - int size = size_in_desc * num_desc_in_a_loop; - int i; - BUG_ON(size_in_desc > max_consistent_size); + struct xdma_dev *xdev = (struct xdma_dev *)dev_hndl; + struct xdma_io_cb *cb = (struct xdma_io_cb *)cb_hndl; + struct xdma_engine *engine; + int rv = 0, tfer_idx = 0; + ssize_t done = 0; + int nents; + enum dma_data_direction dir = write ? DMA_TO_DEVICE : DMA_FROM_DEVICE; + struct xdma_request_cb *req = NULL; + struct xdma_transfer *xfer; + int i; + struct xdma_result *result; - if (size > max_consistent_size) { - size = max_consistent_size; - num_desc_in_a_loop = size / size_in_desc; - } + if (write == 1) { + if (channel >= xdev->h2c_channel_max) { + pr_warn("H2C channel %d >= %d.\n", + channel, xdev->h2c_channel_max); + return -EINVAL; + } + engine = &xdev->engine_h2c[channel]; + } else if (write == 0) { + if (channel >= xdev->c2h_channel_max) { + pr_warn("C2H channel %d >= %d.\n", + channel, xdev->c2h_channel_max); + return -EINVAL; + } + engine = &xdev->engine_c2h[channel]; + } else { + pr_warn("write %d, exp. 0|1.\n", write); + return -EINVAL; + } + + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } + + if (engine->magic != MAGIC_ENGINE) { + pr_err("%s has invalid magic number %lx\n", engine->name, + engine->magic); + return -EINVAL; + } + + xdev = engine->xdev; + req = cb->req; + + nents = req->sw_desc_cnt; + while (nents) { + xfer = &req->tfer[tfer_idx]; + nents -= xfer->desc_num; + switch (xfer->state) { + case TRANSFER_STATE_COMPLETED: + dbg_tfr("transfer %p, %u, ep 0x%llx compl, +%lu.\n", + xfer, xfer->len, req->ep_addr - xfer->len, + done); + + result = xfer->res_virt; + /* For C2H streaming use writeback results */ + if (engine->streaming && + engine->dir == DMA_FROM_DEVICE) { + for (i = 0; i < xfer->desc_num; i++) + done += result[i].length; + } else + done += xfer->len; + + rv = 0; + break; + case TRANSFER_STATE_FAILED: + pr_info("xfer 0x%p,%u, failed, ep 0x%llx.\n", + xfer, xfer->len, req->ep_addr - xfer->len); + +#ifdef __LIBXDMA_DEBUG__ + transfer_dump(xfer); + sgt_dump(sgt); +#endif + rv = -EIO; + break; + default: + /* transfer can still be in-flight */ + pr_info("xfer 0x%p,%u, s 0x%x timed out, ep 0x%llx.\n", + xfer, xfer->len, xfer->state, req->ep_addr); + engine_status_read(engine, 0, 1); + engine_status_dump(engine); + transfer_abort(engine, xfer); + + xdma_engine_stop(engine); + +#ifdef __LIBXDMA_DEBUG__ + transfer_dump(xfer); + sgt_dump(sgt); +#endif + rv = -ERESTARTSYS; + break; + } + + transfer_destroy(xdev, xfer); + engine->desc_used -= xfer->desc_num; + + tfer_idx++; + + if (rv < 0) + goto unmap_sgl; + } /* while (sg) */ + +unmap_sgl: + if (!dma_mapped && sgt->nents) { + pci_unmap_sg(xdev->pdev, sgt->sgl, sgt->orig_nents, dir); + sgt->nents = 0; + } + + if (req) + xdma_request_free(req); + + return done; + +} + +ssize_t xdma_xfer_submit_nowait(void *cb_hndl, void *dev_hndl, int channel, + bool write, u64 ep_addr, struct sg_table *sgt, + bool dma_mapped, int timeout_ms) +{ + struct xdma_dev *xdev = (struct xdma_dev *)dev_hndl; + struct xdma_engine *engine; + struct xdma_io_cb *cb = (struct xdma_io_cb *)cb_hndl; + int rv = 0, tfer_idx = 0; + struct scatterlist *sg = sgt->sgl; + int nents; + enum dma_data_direction dir = write ? DMA_TO_DEVICE : DMA_FROM_DEVICE; + struct xdma_request_cb *req = NULL; + + if (!dev_hndl) + return -EINVAL; + + if (debug_check_dev_hndl(__func__, xdev->pdev, dev_hndl) < 0) + return -EINVAL; + + if (write == 1) { + if (channel >= xdev->h2c_channel_max) { + pr_warn("H2C channel %d >= %d.\n", + channel, xdev->h2c_channel_max); + return -EINVAL; + } + engine = &xdev->engine_h2c[channel]; + } else if (write == 0) { + if (channel >= xdev->c2h_channel_max) { + pr_warn("C2H channel %d >= %d.\n", + channel, xdev->c2h_channel_max); + return -EINVAL; + } + engine = &xdev->engine_c2h[channel]; + } else { + pr_warn("write %d, exp. 0|1.\n", write); + return -EINVAL; + } + + if (!engine) { + pr_err("dma engine NULL\n"); + return -EINVAL; + } + + if (engine->magic != MAGIC_ENGINE) { + pr_err("%s has invalid magic number %lx\n", + engine->name, engine->magic); + return -EINVAL; + } + + xdev = engine->xdev; + if (xdma_device_flag_check(xdev, XDEV_FLAG_OFFLINE)) { + pr_info("xdev 0x%p, offline.\n", xdev); + return -EBUSY; + } + + /* check the direction */ + if (engine->dir != dir) { + pr_info("0x%p, %s, %d, W %d, 0x%x/0x%x mismatch.\n", + engine, engine->name, channel, write, engine->dir, dir); + return -EINVAL; + } + + if (!dma_mapped) { + nents = pci_map_sg(xdev->pdev, sg, sgt->orig_nents, dir); + if (!nents) { + pr_info("map sgl failed, sgt 0x%p.\n", sgt); + return -EIO; + } + sgt->nents = nents; + } else { + if (!sgt->nents) { + pr_err("sg table has invalid number of entries 0x%p.\n", + sgt); + return -EIO; + } + } - buffer_virt = dma_alloc_coherent(&xdev->pdev->dev, size, - &buffer_bus, GFP_KERNEL); + req = xdma_init_request(sgt, ep_addr); + if (!req) { + rv = -ENOMEM; + goto unmap_sgl; + } + + //used when doing completion. + req->cb = cb; + cb->req = req; + dbg_tfr("%s, len %u sg cnt %u.\n", + engine->name, req->total_len, req->sw_desc_cnt); + + sg = sgt->sgl; + nents = req->sw_desc_cnt; + while (nents) { + + struct xdma_transfer *xfer; + + /* one transfer at a time */ + xfer = &req->tfer[tfer_idx]; + /* build transfer */ + rv = transfer_init(engine, req, xfer); + if (rv < 0) { + pr_info("transfer_init failed\n"); + + if (!dma_mapped && sgt->nents) { + pci_unmap_sg(xdev->pdev, sgt->sgl, + sgt->orig_nents, dir); + sgt->nents = 0; + } + + /* Transfer failed return BUSY */ + if (cb->io_done) + cb->io_done((unsigned long)cb, -EBUSY); + + goto rel_req; + } + + xfer->cb = cb; + + if (!dma_mapped) + xfer->flags = XFER_FLAG_NEED_UNMAP; + + /* last transfer for the given request? */ + nents -= xfer->desc_num; + if (!nents) { + xfer->last_in_request = 1; + xfer->sgt = sgt; + } + + dbg_tfr("xfer %p, len %u, ep 0x%llx, sg %u/%u. nents = %d\n", + xfer, xfer->len, req->ep_addr, req->sw_desc_idx, + req->sw_desc_cnt, nents); + +#ifdef __LIBXDMA_DEBUG__ + transfer_dump(xfer); +#endif + + rv = transfer_queue(engine, xfer); + if (rv < 0) { + pr_info("unable to submit %s, %d.\n", engine->name, rv); + goto unmap_sgl; + } + + /* use multiple transfers per request if we could not fit all + * data within single descriptor chain. + */ + tfer_idx++; + } + + return -EIOCBQUEUED; + +unmap_sgl: + if (!dma_mapped && sgt->nents) { + pci_unmap_sg(xdev->pdev, sgt->sgl, sgt->orig_nents, dir); + sgt->nents = 0; + } + +rel_req: + if (req) + xdma_request_free(req); + + return rv; +} + +int xdma_performance_submit(struct xdma_dev *xdev, struct xdma_engine *engine) +{ + u32 max_consistent_size = XDMA_PERF_NUM_DESC * 32 * 1024; /* 4MB */ + struct xdma_transfer *transfer; + u64 ep_addr = 0; + int num_desc_in_a_loop = XDMA_PERF_NUM_DESC; + int size_in_desc = engine->xdma_perf->transfer_size; + int size = size_in_desc * num_desc_in_a_loop; + int i; + int rv = -ENOMEM; + unsigned char free_desc = 0; + + if (size_in_desc > max_consistent_size) { + pr_err("%s max consistent size %d is more than supported %d\n", + engine->name, size_in_desc, max_consistent_size); + return -EINVAL; + } + + if (size > max_consistent_size) { + size = max_consistent_size; + num_desc_in_a_loop = size / size_in_desc; + } + + engine->perf_buf_virt = dma_alloc_coherent(&xdev->pdev->dev, + size_in_desc, + &engine->perf_buf_bus, + GFP_KERNEL); + if (!engine->perf_buf_virt) { + pr_err("dev %s, %s DMA allocation OOM.\n", + dev_name(&xdev->pdev->dev), engine->name); + return rv; + } /* allocate transfer data structure */ transfer = kzalloc(sizeof(struct xdma_transfer), GFP_KERNEL); - BUG_ON(!transfer); - + if (!transfer) { + pr_err("dev %s, %s transfer request OOM.\n", + dev_name(&xdev->pdev->dev), engine->name); + goto err_engine_transfer; + } /* 0 = write engine (to_dev=0) , 1 = read engine (to_dev=1) */ transfer->dir = engine->dir; /* set number of descriptors */ @@ -3188,51 +4001,89 @@ int xdma_performance_submit(struct xdma_dev *xdev, struct xdma_engine *engine) /* allocate descriptor list */ if (!engine->desc) { - engine->desc = dma_alloc_coherent(&xdev->pdev->dev, + engine->desc = dma_alloc_coherent( + &xdev->pdev->dev, num_desc_in_a_loop * sizeof(struct xdma_desc), &engine->desc_bus, GFP_KERNEL); - BUG_ON(!engine->desc); + if (!engine->desc) { + pr_err("%s DMA memory allocation for descriptors failed\n", + engine->name); + goto err_engine_desc; + } dbg_init("device %s, engine %s pre-alloc desc 0x%p,0x%llx.\n", - dev_name(&xdev->pdev->dev), engine->name, - engine->desc, engine->desc_bus); + dev_name(&xdev->pdev->dev), engine->name, engine->desc, + engine->desc_bus); + free_desc = 1; } transfer->desc_virt = engine->desc; transfer->desc_bus = engine->desc_bus; - transfer_desc_init(transfer, transfer->desc_num); + rv = transfer_desc_init(transfer, transfer->desc_num); + if (rv < 0) { + pr_err("Failed to initialize descriptors\n"); + goto err_dma_desc; + } dbg_sg("transfer->desc_bus = 0x%llx.\n", (u64)transfer->desc_bus); for (i = 0; i < transfer->desc_num; i++) { struct xdma_desc *desc = transfer->desc_virt + i; - dma_addr_t rc_bus_addr = buffer_bus + size_in_desc * i; + dma_addr_t rc_bus_addr = engine->perf_buf_bus; /* fill in descriptor entry with transfer details */ xdma_desc_set(desc, rc_bus_addr, ep_addr, size_in_desc, - engine->dir); + engine->dir); } /* stop engine and request interrupt on last descriptor */ - xdma_desc_control_set(transfer->desc_virt, 0); + rv = xdma_desc_control_set(transfer->desc_virt, 0); + if (rv < 0) { + pr_err("Failed to set desc control\n"); + goto err_dma_desc; + } /* create a linked loop */ xdma_desc_link(transfer->desc_virt + transfer->desc_num - 1, - transfer->desc_virt, transfer->desc_bus); + transfer->desc_virt, transfer->desc_bus); transfer->cyclic = 1; /* initialize wait queue */ +#if HAS_SWAKE_UP + init_swait_queue_head(&transfer->wq); +#else init_waitqueue_head(&transfer->wq); +#endif - //printk("=== Descriptor print for PERF \n"); + //printk("=== Descriptor print for PERF\n"); //transfer_dump(transfer); dbg_perf("Queueing XDMA I/O %s request for performance measurement.\n", - engine->dir ? "write (to dev)" : "read (from dev)"); - transfer_queue(engine, transfer); + engine->dir ? "write (to dev)" : "read (from dev)"); + rv = transfer_queue(engine, transfer); + if (rv < 0) { + pr_err("Failed to queue transfer\n"); + goto err_dma_desc; + } return 0; +err_dma_desc: + if (free_desc && engine->desc) + dma_free_coherent(&xdev->pdev->dev, + num_desc_in_a_loop * sizeof(struct xdma_desc), + engine->desc, engine->desc_bus); + engine->desc = NULL; +err_engine_desc: + if (transfer) + list_del(&transfer->entry); + kfree(transfer); + transfer = NULL; +err_engine_transfer: + if (engine->perf_buf_virt) + dma_free_coherent(&xdev->pdev->dev, size_in_desc, + engine->perf_buf_virt, engine->perf_buf_bus); + engine->perf_buf_virt = NULL; + return rv; } -EXPORT_SYMBOL_GPL(xdma_performance_submit); static struct xdma_dev *alloc_dev_instance(struct pci_dev *pdev) { @@ -3240,7 +4091,10 @@ static struct xdma_dev *alloc_dev_instance(struct pci_dev *pdev) struct xdma_dev *xdev; struct xdma_engine *engine; - BUG_ON(!pdev); + if (!pdev) { + pr_err("Invalid pdev\n"); + return NULL; + } /* allocate zeroed device book keeping structure */ xdev = kzalloc(sizeof(struct xdma_dev), GFP_KERNEL); @@ -3272,19 +4126,29 @@ static struct xdma_dev *alloc_dev_instance(struct pci_dev *pdev) engine = xdev->engine_h2c; for (i = 0; i < XDMA_CHANNEL_NUM_MAX; i++, engine++) { spin_lock_init(&engine->lock); - spin_lock_init(&engine->desc_lock); + mutex_init(&engine->desc_lock); INIT_LIST_HEAD(&engine->transfer_list); +#if HAS_SWAKE_UP + init_swait_queue_head(&engine->shutdown_wq); + init_swait_queue_head(&engine->xdma_perf_wq); +#else init_waitqueue_head(&engine->shutdown_wq); init_waitqueue_head(&engine->xdma_perf_wq); +#endif } engine = xdev->engine_c2h; for (i = 0; i < XDMA_CHANNEL_NUM_MAX; i++, engine++) { spin_lock_init(&engine->lock); - spin_lock_init(&engine->desc_lock); + mutex_init(&engine->desc_lock); INIT_LIST_HEAD(&engine->transfer_list); +#if HAS_SWAKE_UP + init_swait_queue_head(&engine->shutdown_wq); + init_swait_queue_head(&engine->xdma_perf_wq); +#else init_waitqueue_head(&engine->shutdown_wq); init_waitqueue_head(&engine->xdma_perf_wq); +#endif } return xdev; @@ -3294,8 +4158,15 @@ static int request_regions(struct xdma_dev *xdev, struct pci_dev *pdev) { int rv; - BUG_ON(!xdev); - BUG_ON(!pdev); + if (!xdev) { + pr_err("Invalid xdev\n"); + return -EINVAL; + } + + if (!pdev) { + pr_err("Invalid pdev\n"); + return -EINVAL; + } dbg_init("pci_request_regions()\n"); rv = pci_request_regions(pdev, xdev->mod_name); @@ -3313,7 +4184,10 @@ static int request_regions(struct xdma_dev *xdev, struct pci_dev *pdev) static int set_dma_mask(struct pci_dev *pdev) { - BUG_ON(!pdev); + if (!pdev) { + pr_err("Invalid pdev\n"); + return -EINVAL; + } dbg_init("sizeof(dma_addr_t) == %ld\n", sizeof(dma_addr_t)); /* 64-bit addressing capability for XDMA? */ @@ -3323,9 +4197,7 @@ static int set_dma_mask(struct pci_dev *pdev) dbg_init("pci_set_dma_mask()\n"); /* use 64-bit DMA */ dbg_init("Using a 64-bit DMA mask.\n"); - /* use 32-bit DMA for descriptors */ - pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); - /* use 64-bit DMA, 32-bit for consistent */ + pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { dbg_init("Could not set 64-bit DMA mask.\n"); pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); @@ -3339,22 +4211,28 @@ static int set_dma_mask(struct pci_dev *pdev) return 0; } -static u32 get_engine_channel_id(struct engine_regs *regs) +static int get_engine_channel_id(struct engine_regs *regs) { - u32 value; + int value; - BUG_ON(!regs); + if (!regs) { + pr_err("Invalid engine registers\n"); + return -EINVAL; + } value = read_register(®s->identifier); return (value & 0x00000f00U) >> 8; } -static u32 get_engine_id(struct engine_regs *regs) +static int get_engine_id(struct engine_regs *regs) { - u32 value; + int value; - BUG_ON(!regs); + if (!regs) { + pr_err("Invalid engine registers\n"); + return -EINVAL; + } value = read_register(®s->identifier); return (value & 0xffff0000U) >> 16; @@ -3364,15 +4242,21 @@ static void remove_engines(struct xdma_dev *xdev) { struct xdma_engine *engine; int i; + int rv; - BUG_ON(!xdev); + if (!xdev) { + pr_err("Invalid xdev\n"); + return; + } /* iterate over channels */ for (i = 0; i < xdev->h2c_channel_max; i++) { engine = &xdev->engine_h2c[i]; if (engine->magic == MAGIC_ENGINE) { dbg_sg("Remove %s, %d", engine->name, i); - engine_destroy(xdev, engine); + rv = engine_destroy(xdev, engine); + if (rv < 0) + pr_err("Failed to destroy H2C engine %d\n", i); dbg_sg("%s, %d removed", engine->name, i); } } @@ -3381,14 +4265,16 @@ static void remove_engines(struct xdma_dev *xdev) engine = &xdev->engine_c2h[i]; if (engine->magic == MAGIC_ENGINE) { dbg_sg("Remove %s, %d", engine->name, i); - engine_destroy(xdev, engine); + rv = engine_destroy(xdev, engine); + if (rv < 0) + pr_err("Failed to destroy C2H engine %d\n", i); dbg_sg("%s, %d removed", engine->name, i); } } } static int probe_for_engine(struct xdma_dev *xdev, enum dma_data_direction dir, - int channel) + int channel) { struct engine_regs *regs; int offset = channel * CHANNEL_SPACING; @@ -3400,7 +4286,8 @@ static int probe_for_engine(struct xdma_dev *xdev, enum dma_data_direction dir, /* register offset for the engine */ /* read channels at 0x0000, write channels at 0x1000, - * channels at 0x100 interval */ + * channels at 0x100 interval + */ if (dir == DMA_TO_DEVICE) { engine_id_expected = XDMA_ID_H2C; engine = &xdev->engine_h2c[channel]; @@ -3415,24 +4302,23 @@ static int probe_for_engine(struct xdma_dev *xdev, enum dma_data_direction dir, channel_id = get_engine_channel_id(regs); if ((engine_id != engine_id_expected) || (channel_id != channel)) { - dbg_init("%s %d engine, reg off 0x%x, id mismatch 0x%x,0x%x," - "exp 0x%x,0x%x, SKIP.\n", - dir == DMA_TO_DEVICE ? "H2C" : "C2H", - channel, offset, engine_id, channel_id, - engine_id_expected, channel_id != channel); + dbg_init( + "%s %d engine, reg off 0x%x, id mismatch 0x%x,0x%x,exp 0x%x,0x%x, SKIP.\n", + dir == DMA_TO_DEVICE ? "H2C" : "C2H", channel, offset, + engine_id, channel_id, engine_id_expected, + channel_id != channel); return -EINVAL; } dbg_init("found AXI %s %d engine, reg. off 0x%x, id 0x%x,0x%x.\n", - dir == DMA_TO_DEVICE ? "H2C" : "C2H", channel, - offset, engine_id, channel_id); + dir == DMA_TO_DEVICE ? "H2C" : "C2H", channel, offset, + engine_id, channel_id); /* allocate and initialize engine */ rv = engine_init(engine, xdev, offset, dir, channel); if (rv != 0) { pr_info("failed to create AXI %s %d engine.\n", - dir == DMA_TO_DEVICE ? "H2C" : "C2H", - channel); + dir == DMA_TO_DEVICE ? "H2C" : "C2H", channel); return rv; } @@ -3444,7 +4330,10 @@ static int probe_engines(struct xdma_dev *xdev) int i; int rv = 0; - BUG_ON(!xdev); + if (!xdev) { + pr_err("Invalid xdev\n"); + return -EINVAL; + } /* iterate over channels */ for (i = 0; i < xdev->h2c_channel_max; i++) { @@ -3464,66 +4353,28 @@ static int probe_engines(struct xdma_dev *xdev) return 0; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) -static void pci_enable_relaxed_ordering(struct pci_dev *pdev) -{ - pcie_capability_set_word(pdev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_RELAX_EN); -} -#else -static void pci_enable_relaxed_ordering(struct pci_dev *pdev) -{ - u16 v; - int pos; - - pos = pci_pcie_cap(pdev); - if (pos > 0) { - pci_read_config_word(pdev, pos + PCI_EXP_DEVCTL, &v); - v |= PCI_EXP_DEVCTL_RELAX_EN; - pci_write_config_word(pdev, pos + PCI_EXP_DEVCTL, v); - } -} -#endif - -static void pci_check_extended_tag(struct xdma_dev *xdev, struct pci_dev *pdev) +#if KERNEL_VERSION(3, 5, 0) <= LINUX_VERSION_CODE +static void pci_enable_capability(struct pci_dev *pdev, int cap) { - u16 cap; - u32 v; - void *__iomem reg; - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) - pcie_capability_read_word(pdev, PCI_EXP_DEVCTL, &cap); -#else - int pos; - - pos = pci_pcie_cap(pdev); - if (pos > 0) - pci_read_config_word(pdev, pos + PCI_EXP_DEVCTL, &cap); - else { - pr_info("pdev 0x%p, unable to access pcie cap.\n", pdev); - return; - } -#endif - - if ((cap & PCI_EXP_DEVCTL_EXT_TAG)) - return; - - /* extended tag not enabled */ - pr_info("0x%p EXT_TAG disabled.\n", pdev); + pcie_capability_set_word(pdev, PCI_EXP_DEVCTL, cap); +} +#else +static void pci_enable_capability(struct pci_dev *pdev, int cap) +{ + u16 v; + int pos; - if (xdev->config_bar_idx < 0) { - pr_info("pdev 0x%p, xdev 0x%p, config bar UNKNOWN.\n", - pdev, xdev); - return; + pos = pci_pcie_cap(pdev); + if (pos > 0) { + pci_read_config_word(pdev, pos + PCI_EXP_DEVCTL, &v); + v |= cap; + pci_write_config_word(pdev, pos + PCI_EXP_DEVCTL, v); } - - reg = xdev->bar[xdev->config_bar_idx] + XDMA_OFS_CONFIG + 0x4C; - v = read_register(reg); - v = (v & 0xFF) | (((u32)32) << 8); - write_register(v, reg, XDMA_OFS_CONFIG + 0x4C); } +#endif void *xdma_device_open(const char *mname, struct pci_dev *pdev, int *user_max, - int *h2c_channel_max, int *c2h_channel_max) + int *h2c_channel_max, int *c2h_channel_max) { struct xdma_dev *xdev = NULL; int rv = 0; @@ -3540,17 +4391,20 @@ void *xdma_device_open(const char *mname, struct pci_dev *pdev, int *user_max, xdev->c2h_channel_max = *c2h_channel_max; xdma_device_flag_set(xdev, XDEV_FLAG_OFFLINE); - xdev_list_add(xdev); if (xdev->user_max == 0 || xdev->user_max > MAX_USER_IRQ) xdev->user_max = MAX_USER_IRQ; if (xdev->h2c_channel_max == 0 || - xdev->h2c_channel_max > XDMA_CHANNEL_NUM_MAX) + xdev->h2c_channel_max > XDMA_CHANNEL_NUM_MAX) xdev->h2c_channel_max = XDMA_CHANNEL_NUM_MAX; if (xdev->c2h_channel_max == 0 || - xdev->c2h_channel_max > XDMA_CHANNEL_NUM_MAX) + xdev->c2h_channel_max > XDMA_CHANNEL_NUM_MAX) xdev->c2h_channel_max = XDMA_CHANNEL_NUM_MAX; - + + rv = xdev_list_add(xdev); + if (rv < 0) + goto free_xdev; + rv = pci_enable_device(pdev); if (rv) { dbg_init("pci_enable_device() failed, %d.\n", rv); @@ -3561,9 +4415,10 @@ void *xdma_device_open(const char *mname, struct pci_dev *pdev, int *user_max, pci_check_intr_pend(pdev); /* enable relaxed ordering */ - pci_enable_relaxed_ordering(pdev); + pci_enable_capability(pdev, PCI_EXP_DEVCTL_RELAX_EN); - pci_check_extended_tag(xdev, pdev); + /* enable extended tag */ + pci_enable_capability(pdev, PCI_EXP_DEVCTL_EXT_TAG); /* force MRRS to be 512 */ rv = pcie_set_readrq(pdev, 512); @@ -3594,15 +4449,15 @@ void *xdma_device_open(const char *mname, struct pci_dev *pdev, int *user_max, rv = probe_engines(xdev); if (rv) - goto err_engines; + goto err_mask; rv = enable_msi_msix(xdev, pdev); if (rv < 0) - goto err_enable_msix; + goto err_engines; rv = irq_setup(xdev, pdev); if (rv < 0) - goto err_interrupts; + goto err_msix; if (!poll_mode) channel_interrupts_enable(xdev, ~0); @@ -3617,9 +4472,7 @@ void *xdma_device_open(const char *mname, struct pci_dev *pdev, int *user_max, xdma_device_flag_clear(xdev, XDEV_FLAG_OFFLINE); return (void *)xdev; -err_interrupts: - irq_teardown(xdev); -err_enable_msix: +err_msix: disable_msi_msix(xdev, pdev); err_engines: remove_engines(xdev); @@ -3633,10 +4486,10 @@ void *xdma_device_open(const char *mname, struct pci_dev *pdev, int *user_max, pci_disable_device(pdev); err_enable: xdev_list_remove(xdev); +free_xdev: kfree(xdev); return NULL; } -EXPORT_SYMBOL_GPL(xdma_device_open); void xdma_device_close(struct pci_dev *pdev, void *dev_hndl) { @@ -3650,11 +4503,11 @@ void xdma_device_close(struct pci_dev *pdev, void *dev_hndl) if (debug_check_dev_hndl(__func__, pdev, dev_hndl) < 0) return; - dbg_sg("remove(dev = 0x%p) where pdev->dev.driver_data = 0x%p\n", - pdev, xdev); + dbg_sg("remove(dev = 0x%p) where pdev->dev.driver_data = 0x%p\n", pdev, + xdev); if (xdev->pdev != pdev) { dbg_sg("pci_dev(0x%lx) != pdev(0x%lx)\n", - (unsigned long)xdev->pdev, (unsigned long)pdev); + (unsigned long)xdev->pdev, (unsigned long)pdev); } channel_interrupts_disable(xdev, ~0); @@ -3681,13 +4534,13 @@ void xdma_device_close(struct pci_dev *pdev, void *dev_hndl) kfree(xdev); } -EXPORT_SYMBOL_GPL(xdma_device_close); void xdma_device_offline(struct pci_dev *pdev, void *dev_hndl) { struct xdma_dev *xdev = (struct xdma_dev *)dev_hndl; struct xdma_engine *engine; int i; + int rv; if (!dev_hndl) return; @@ -3695,26 +4548,27 @@ void xdma_device_offline(struct pci_dev *pdev, void *dev_hndl) if (debug_check_dev_hndl(__func__, pdev, dev_hndl) < 0) return; -pr_info("pdev 0x%p, xdev 0x%p.\n", pdev, xdev); + pr_info("pdev 0x%p, xdev 0x%p.\n", pdev, xdev); xdma_device_flag_set(xdev, XDEV_FLAG_OFFLINE); /* wait for all engines to be idle */ - for (i = 0; i < xdev->h2c_channel_max; i++) { + for (i = 0; i < xdev->h2c_channel_max; i++) { unsigned long flags; engine = &xdev->engine_h2c[i]; - + if (engine->magic == MAGIC_ENGINE) { spin_lock_irqsave(&engine->lock, flags); engine->shutdown |= ENGINE_SHUTDOWN_REQUEST; - xdma_engine_stop(engine); - engine->running = 0; + rv = xdma_engine_stop(engine); + if (rv < 0) + pr_err("Failed to stop engine\n"); spin_unlock_irqrestore(&engine->lock, flags); } } - for (i = 0; i < xdev->c2h_channel_max; i++) { + for (i = 0; i < xdev->c2h_channel_max; i++) { unsigned long flags; engine = &xdev->engine_c2h[i]; @@ -3722,8 +4576,9 @@ pr_info("pdev 0x%p, xdev 0x%p.\n", pdev, xdev); spin_lock_irqsave(&engine->lock, flags); engine->shutdown |= ENGINE_SHUTDOWN_REQUEST; - xdma_engine_stop(engine); - engine->running = 0; + rv = xdma_engine_stop(engine); + if (rv < 0) + pr_err("Failed to stop engine\n"); spin_unlock_irqrestore(&engine->lock, flags); } } @@ -3736,7 +4591,6 @@ pr_info("pdev 0x%p, xdev 0x%p.\n", pdev, xdev); pr_info("xdev 0x%p, done.\n", xdev); } -EXPORT_SYMBOL_GPL(xdma_device_offline); void xdma_device_online(struct pci_dev *pdev, void *dev_hndl) { @@ -3751,9 +4605,9 @@ void xdma_device_online(struct pci_dev *pdev, void *dev_hndl) if (debug_check_dev_hndl(__func__, pdev, dev_hndl) < 0) return; -pr_info("pdev 0x%p, xdev 0x%p.\n", pdev, xdev); + pr_info("pdev 0x%p, xdev 0x%p.\n", pdev, xdev); - for (i = 0; i < xdev->h2c_channel_max; i++) { + for (i = 0; i < xdev->h2c_channel_max; i++) { engine = &xdev->engine_h2c[i]; if (engine->magic == MAGIC_ENGINE) { engine_init_regs(engine); @@ -3763,7 +4617,7 @@ pr_info("pdev 0x%p, xdev 0x%p.\n", pdev, xdev); } } - for (i = 0; i < xdev->c2h_channel_max; i++) { + for (i = 0; i < xdev->c2h_channel_max; i++) { engine = &xdev->engine_c2h[i]; if (engine->magic == MAGIC_ENGINE) { engine_init_regs(engine); @@ -3781,11 +4635,10 @@ pr_info("pdev 0x%p, xdev 0x%p.\n", pdev, xdev); user_interrupts_enable(xdev, xdev->mask_irq_user); read_interrupts(xdev); } - + xdma_device_flag_clear(xdev, XDEV_FLAG_OFFLINE); -pr_info("xdev 0x%p, done.\n", xdev); + pr_info("xdev 0x%p, done.\n", xdev); } -EXPORT_SYMBOL_GPL(xdma_device_online); int xdma_device_restart(struct pci_dev *pdev, void *dev_hndl) { @@ -3800,10 +4653,9 @@ int xdma_device_restart(struct pci_dev *pdev, void *dev_hndl) pr_info("NOT implemented, 0x%p.\n", xdev); return -EINVAL; } -EXPORT_SYMBOL_GPL(xdma_device_restart); int xdma_user_isr_register(void *dev_hndl, unsigned int mask, - irq_handler_t handler, void *dev) + irq_handler_t handler, void *dev) { struct xdma_dev *xdev = (struct xdma_dev *)dev_hndl; int i; @@ -3827,7 +4679,6 @@ int xdma_user_isr_register(void *dev_hndl, unsigned int mask, return 0; } -EXPORT_SYMBOL_GPL(xdma_user_isr_register); int xdma_user_isr_enable(void *dev_hndl, unsigned int mask) { @@ -3846,7 +4697,6 @@ int xdma_user_isr_enable(void *dev_hndl, unsigned int mask) return 0; } -EXPORT_SYMBOL_GPL(xdma_user_isr_enable); int xdma_user_isr_disable(void *dev_hndl, unsigned int mask) { @@ -3857,586 +4707,37 @@ int xdma_user_isr_disable(void *dev_hndl, unsigned int mask) if (debug_check_dev_hndl(__func__, xdev->pdev, dev_hndl) < 0) return -EINVAL; - + xdev->mask_irq_user &= ~mask; user_interrupts_disable(xdev, mask); read_interrupts(xdev); return 0; } -EXPORT_SYMBOL_GPL(xdma_user_isr_disable); - -#ifdef __LIBXDMA_MOD__ -static int __init xdma_base_init(void) -{ - printk(KERN_INFO "%s", version); - return 0; -} - -static void __exit xdma_base_exit(void) -{ - return; -} - -module_init(xdma_base_init); -module_exit(xdma_base_exit); -#endif -/* makes an existing transfer cyclic */ -static void xdma_transfer_cyclic(struct xdma_transfer *transfer) -{ - /* link last descriptor to first descriptor */ - xdma_desc_link(transfer->desc_virt + transfer->desc_num - 1, - transfer->desc_virt, transfer->desc_bus); - /* remember transfer is cyclic */ - transfer->cyclic = 1; -} - -static int transfer_monitor_cyclic(struct xdma_engine *engine, - struct xdma_transfer *transfer, int timeout_ms) -{ - struct xdma_result *result; - int rc = 0; - - BUG_ON(!engine); - BUG_ON(!transfer); - - result = engine->cyclic_result; - BUG_ON(!result); - - if (poll_mode) { - int i ; - for (i = 0; i < 5; i++) { - rc = engine_service_poll(engine, 0); - if (rc) { - pr_info("%s service_poll failed %d.\n", - engine->name, rc); - rc = -ERESTARTSYS; - } - if (result[engine->rx_head].status) - return 0; - } - } else { - if (enable_credit_mp){ - dbg_tfr("%s: rx_head=%d,rx_tail=%d, wait ...\n", - engine->name, engine->rx_head, engine->rx_tail); - rc = wait_event_interruptible_timeout( transfer->wq, - (engine->rx_head!=engine->rx_tail || - engine->rx_overrun), - msecs_to_jiffies(timeout_ms)); - dbg_tfr("%s: wait returns %d, rx %d/%d, overrun %d.\n", - engine->name, rc, engine->rx_head, - engine->rx_tail, engine->rx_overrun); - } else { - rc = wait_event_interruptible_timeout( transfer->wq, - engine->eop_found, - msecs_to_jiffies(timeout_ms)); - dbg_tfr("%s: wait returns %d, eop_found %d.\n", - engine->name, rc, engine->eop_found); - } - } - - return 0; -} - -struct scatterlist *sglist_index(struct sg_table *sgt, unsigned int idx) -{ - struct scatterlist *sg = sgt->sgl; - int i; - - if (idx >= sgt->orig_nents) - return NULL; - - if (!idx) - return sg; - - for (i = 0; i < idx; i++, sg = sg_next(sg)) - ; - - return sg; -} - -static int copy_cyclic_to_user(struct xdma_engine *engine, int pkt_length, - int head, char __user *buf, size_t count) -{ - struct scatterlist *sg; - int more = pkt_length; - - BUG_ON(!engine); - BUG_ON(!buf); - - dbg_tfr("%s, pkt_len %d, head %d, user buf idx %u.\n", - engine->name, pkt_length, head, engine->user_buffer_index); - - sg = sglist_index(&engine->cyclic_sgt, head); - if (!sg) { - pr_info("%s, head %d OOR, sgl %u.\n", - engine->name, head, engine->cyclic_sgt.orig_nents); - return -EIO; - } - - /* EOP found? Transfer anything from head to EOP */ - while (more) { - unsigned int copy = more > PAGE_SIZE ? PAGE_SIZE : more; - unsigned int blen = count - engine->user_buffer_index; - int rv; - - if (copy > blen) - copy = blen; - - dbg_tfr("%s sg %d, 0x%p, copy %u to user %u.\n", - engine->name, head, sg, copy, - engine->user_buffer_index); - - rv = copy_to_user(&buf[engine->user_buffer_index], - page_address(sg_page(sg)), copy); - if (rv) { - pr_info("%s copy_to_user %u failed %d\n", - engine->name, copy, rv); - return -EIO; - } - - more -= copy; - engine->user_buffer_index += copy; - - if (engine->user_buffer_index == count) { - /* user buffer used up */ - break; - } - - head++; - if (head >= CYCLIC_RX_PAGES_MAX) { - head = 0; - sg = engine->cyclic_sgt.sgl; - } else - sg = sg_next(sg); - } - - return pkt_length; -} - -static int complete_cyclic(struct xdma_engine *engine, char __user *buf, - size_t count) -{ - struct xdma_result *result; - int pkt_length = 0; - int fault = 0; - int eop = 0; - int head; - int rc = 0; - int num_credit = 0; - unsigned long flags; - - BUG_ON(!engine); - result = engine->cyclic_result; - BUG_ON(!result); - - spin_lock_irqsave(&engine->lock, flags); - - /* where the host currently is in the ring buffer */ - head = engine->rx_head; - - /* iterate over newly received results */ - while (engine->rx_head != engine->rx_tail||engine->rx_overrun) { - - WARN_ON(result[engine->rx_head].status==0); - - dbg_tfr("%s, result[%d].status = 0x%x length = 0x%x.\n", - engine->name, engine->rx_head, - result[engine->rx_head].status, - result[engine->rx_head].length); - - if ((result[engine->rx_head].status >> 16) != C2H_WB) { - pr_info("%s, result[%d].status 0x%x, no magic.\n", - engine->name, engine->rx_head, - result[engine->rx_head].status); - fault = 1; - } else if (result[engine->rx_head].length > PAGE_SIZE) { - pr_info("%s, result[%d].len 0x%x, > PAGE_SIZE 0x%lx.\n", - engine->name, engine->rx_head, - result[engine->rx_head].length, PAGE_SIZE); - fault = 1; - } else if (result[engine->rx_head].length == 0) { - pr_info("%s, result[%d].length 0x%x.\n", - engine->name, engine->rx_head, - result[engine->rx_head].length); - fault = 1; - /* valid result */ - } else { - pkt_length += result[engine->rx_head].length; - num_credit++; - /* seen eop? */ - //if (result[engine->rx_head].status & RX_STATUS_EOP) - if (result[engine->rx_head].status & RX_STATUS_EOP){ - eop = 1; - engine->eop_found = 1; - } - - dbg_tfr("%s, pkt_length=%d (%s)\n", - engine->name, pkt_length, - eop ? "with EOP" : "no EOP yet"); - } - /* clear result */ - result[engine->rx_head].status = 0; - result[engine->rx_head].length = 0; - /* proceed head pointer so we make progress, even when fault */ - engine->rx_head = (engine->rx_head + 1) % CYCLIC_RX_PAGES_MAX; - - /* stop processing if a fault/eop was detected */ - if (fault || eop){ - break; - } - } - - spin_unlock_irqrestore(&engine->lock, flags); - - if (fault) - return -EIO; - - rc = copy_cyclic_to_user(engine, pkt_length, head, buf, count); - engine->rx_overrun = 0; - /* if copy is successful, release credits */ - if(rc > 0) - write_register(num_credit,&engine->sgdma_regs->credits, 0); - - return rc; -} - -ssize_t xdma_engine_read_cyclic(struct xdma_engine *engine, char __user *buf, - size_t count, int timeout_ms) -{ - int i = 0; - int rc = 0; - int rc_len = 0; - struct xdma_transfer *transfer; - - BUG_ON(!engine); - BUG_ON(engine->magic != MAGIC_ENGINE); - - transfer = &engine->cyclic_req->xfer; - BUG_ON(!transfer); - - engine->user_buffer_index = 0; - - do { - rc = transfer_monitor_cyclic(engine, transfer, timeout_ms); - if (rc < 0) - return rc; - rc = complete_cyclic(engine, buf, count); - if (rc < 0) - return rc; - rc_len += rc; - - i++; - if (i > 10) - break; - } while (!engine->eop_found); - - if(enable_credit_mp) - engine->eop_found = 0; - - return rc_len; -} - -static void sgt_free_with_pages(struct sg_table *sgt, int dir, - struct pci_dev *pdev) -{ - struct scatterlist *sg = sgt->sgl; - int npages = sgt->orig_nents; - int i; - - for (i = 0; i < npages; i++, sg = sg_next(sg)) { - struct page *pg = sg_page(sg); - dma_addr_t bus = sg_dma_address(sg); - - if (pg) { - if (pdev) - pci_unmap_page(pdev, bus, PAGE_SIZE, dir); - __free_page(pg); - } else - break; - } - sg_free_table(sgt); - memset(sgt, 0, sizeof(struct sg_table)); -} - -static int sgt_alloc_with_pages(struct sg_table *sgt, unsigned int npages, - int dir, struct pci_dev *pdev) -{ - struct scatterlist *sg; - int i; - - if (sg_alloc_table(sgt, npages, GFP_KERNEL)) { - pr_info("sgt OOM.\n"); - return -ENOMEM; - } - - sg = sgt->sgl; - for (i = 0; i < npages; i++, sg = sg_next(sg)) { - struct page *pg = alloc_page(GFP_KERNEL); - - if (!pg) { - pr_info("%d/%u, page OOM.\n", i, npages); - goto err_out; - } - - if (pdev) { - dma_addr_t bus = pci_map_page(pdev, pg, 0, PAGE_SIZE, - dir); - if (unlikely(pci_dma_mapping_error(pdev, bus))) { - pr_info("%d/%u, page 0x%p map err.\n", - i, npages, pg); - __free_page(pg); - goto err_out; - } - sg_dma_address(sg) = bus; - sg_dma_len(sg) = PAGE_SIZE; - } - sg_set_page(sg, pg, PAGE_SIZE, 0); - } - - sgt->orig_nents = sgt->nents = npages; - - return 0; - -err_out: - sgt_free_with_pages(sgt, dir, pdev); - return -ENOMEM; -} - -/* - * !NOTE! reference/demo purpose only - * xdma_cyclic_transfer_setup is used for streaming C2H transfers: - * - A list of buffers are pre-allocated for incoming streaming data - * - the ring of the buffers is allowed to wrap around - */ -int xdma_cyclic_transfer_setup(struct xdma_engine *engine) -{ - struct xdma_dev *xdev; - struct xdma_transfer *xfer; - dma_addr_t bus; - unsigned long flags; - int i; - int rc; - - BUG_ON(!engine); - xdev = engine->xdev; - BUG_ON(!xdev); - - if (engine->cyclic_req) { - pr_info("%s: exclusive access already taken.\n", - engine->name); - return -EBUSY; - } - - spin_lock_irqsave(&engine->lock, flags); - - engine->rx_tail = 0; - engine->rx_head = 0; - engine->rx_overrun = 0; - engine->eop_found = 0; - - rc = sgt_alloc_with_pages(&engine->cyclic_sgt, CYCLIC_RX_PAGES_MAX, - engine->dir, xdev->pdev); - if (rc < 0) { - pr_info("%s cyclic pages %u OOM.\n", - engine->name, CYCLIC_RX_PAGES_MAX); - goto err_out; - } - - engine->cyclic_req = xdma_init_request(&engine->cyclic_sgt, 0); - if (!engine->cyclic_req) { - pr_info("%s cyclic request OOM.\n", engine->name); - rc = -ENOMEM; - goto err_out; - } - -#ifdef __LIBXDMA_DEBUG__ - xdma_request_cb_dump(engine->cyclic_req); -#endif - - rc = transfer_init(engine, engine->cyclic_req); - if (rc < 0) - goto err_out; - - xfer = &engine->cyclic_req->xfer; - - /* replace source addresses with result write-back addresses */ - memset(engine->cyclic_result, 0, - CYCLIC_RX_PAGES_MAX * sizeof(struct xdma_result)); - bus = engine->cyclic_result_bus; - for (i = 0; i < xfer->desc_num; i++) { - xfer->desc_virt[i].src_addr_lo = cpu_to_le32(PCI_DMA_L(bus)); - xfer->desc_virt[i].src_addr_hi = cpu_to_le32(PCI_DMA_H(bus)); - bus += sizeof(struct xdma_result); - } - /* set control of all descriptors */ - for (i = 0; i < xfer->desc_num; i++) { - xdma_desc_control_clear(xfer->desc_virt + i, LS_BYTE_MASK); - xdma_desc_control_set(xfer->desc_virt + i, - XDMA_DESC_EOP | XDMA_DESC_COMPLETED); - } - - /* make this a cyclic transfer */ - xdma_transfer_cyclic(xfer); - -#ifdef __LIBXDMA_DEBUG__ - transfer_dump(xfer); -#endif - - if(enable_credit_mp){ - //write_register(RX_BUF_PAGES,&engine->sgdma_regs->credits); - write_register(128, &engine->sgdma_regs->credits, 0); - } - - spin_unlock_irqrestore(&engine->lock, flags); - - /* start cyclic transfer */ - transfer_queue(engine, xfer); - - return 0; - - /* unwind on errors */ -err_out: - if (engine->cyclic_req) { - xdma_request_free(engine->cyclic_req); - engine->cyclic_req = NULL; - } - - if (engine->cyclic_sgt.orig_nents) { - sgt_free_with_pages(&engine->cyclic_sgt, engine->dir, - xdev->pdev); - engine->cyclic_sgt.orig_nents = 0; - engine->cyclic_sgt.nents = 0; - engine->cyclic_sgt.sgl = NULL; - } - - spin_unlock_irqrestore(&engine->lock, flags); - - return rc; -} - - -static int cyclic_shutdown_polled(struct xdma_engine *engine) -{ - BUG_ON(!engine); - - spin_lock(&engine->lock); - - dbg_tfr("Polling for shutdown completion\n"); - do { - engine_status_read(engine, 1, 0); - schedule(); - } while (engine->status & XDMA_STAT_BUSY); - - if ((engine->running) && !(engine->status & XDMA_STAT_BUSY)) { - dbg_tfr("Engine has stopped\n"); - - if (!list_empty(&engine->transfer_list)) - engine_transfer_dequeue(engine); - - engine_service_shutdown(engine); - } - - dbg_tfr("Shutdown completion polling done\n"); - spin_unlock(&engine->lock); - - return 0; -} - -static int cyclic_shutdown_interrupt(struct xdma_engine *engine) -{ - int rc; - - BUG_ON(!engine); - - rc = wait_event_interruptible_timeout(engine->shutdown_wq, - !engine->running, msecs_to_jiffies(10000)); - -#if 0 - if (rc) { - dbg_tfr("wait_event_interruptible=%d\n", rc); - return rc; - } -#endif - - if (engine->running) { - pr_info("%s still running?!, %d\n", engine->name, rc); - return -EINVAL; - } - - return rc; -} - -int xdma_cyclic_transfer_teardown(struct xdma_engine *engine) -{ - int rc; - struct xdma_dev *xdev = engine->xdev; - struct xdma_transfer *transfer; - unsigned long flags; - - transfer = engine_cyclic_stop(engine); - - spin_lock_irqsave(&engine->lock, flags); - if (transfer) { - dbg_tfr("%s: stop transfer 0x%p.\n", engine->name, transfer); - if (transfer != &engine->cyclic_req->xfer) { - pr_info("%s unexpected transfer 0x%p/0x%p\n", - engine->name, transfer, - &engine->cyclic_req->xfer); - } - } - /* allow engine to be serviced after stop request */ - spin_unlock_irqrestore(&engine->lock, flags); - - /* wait for engine to be no longer running */ - if (poll_mode) - rc = cyclic_shutdown_polled(engine); - else - rc = cyclic_shutdown_interrupt(engine); - - /* obtain spin lock to atomically remove resources */ - spin_lock_irqsave(&engine->lock, flags); - - if (engine->cyclic_req) { - xdma_request_free(engine->cyclic_req); - engine->cyclic_req = NULL; - } - - if (engine->cyclic_sgt.orig_nents) { - sgt_free_with_pages(&engine->cyclic_sgt, engine->dir, - xdev->pdev); - engine->cyclic_sgt.orig_nents = 0; - engine->cyclic_sgt.nents = 0; - engine->cyclic_sgt.sgl = NULL; - } - - spin_unlock_irqrestore(&engine->lock, flags); - - return 0; -} int engine_addrmode_set(struct xdma_engine *engine, unsigned long arg) { int rv; - unsigned long dst; + unsigned long dst; u32 w = XDMA_CTRL_NON_INCR_ADDR; dbg_perf("IOCTL_XDMA_ADDRMODE_SET\n"); rv = get_user(dst, (int __user *)arg); - if (rv == 0) { + if (rv == 0) { engine->non_incr_addr = !!dst; if (engine->non_incr_addr) - write_register(w, &engine->regs->control_w1s, + write_register( + w, &engine->regs->control_w1s, (unsigned long)(&engine->regs->control_w1s) - - (unsigned long)(&engine->regs)); + (unsigned long)(&engine->regs)); else - write_register(w, &engine->regs->control_w1c, - (unsigned long)(&engine->regs->control_w1c) - - (unsigned long)(&engine->regs)); + write_register( + w, &engine->regs->control_w1c, + (unsigned long)(&engine->regs->control_w1c) - + (unsigned long)(&engine->regs)); } engine_alignments(engine); return rv; } - diff --git a/host_software/driver/xdma/libxdma.h b/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h similarity index 76% rename from host_software/driver/xdma/libxdma.h rename to host_software/driver/XDMA/linux-kernel/xdma/libxdma.h index bbf1a45..933d865 100644 --- a/host_software/driver/xdma/libxdma.h +++ b/host_software/driver/XDMA/linux-kernel/xdma/libxdma.h @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #ifndef XDMA_LIB_H @@ -25,8 +32,42 @@ #include #include -/* Switch debug printing on/off */ -#define XDMA_DEBUG 0 +/* Add compatibility checking for RHEL versions */ +#if defined(RHEL_RELEASE_CODE) +# define ACCESS_OK_2_ARGS (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 0)) +#else +# define ACCESS_OK_2_ARGS (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)) +#endif + +#if defined(RHEL_RELEASE_CODE) +# define HAS_MMIOWB (RHEL_RELEASE_CODE <= RHEL_RELEASE_VERSION(8, 0)) +#else +# define HAS_MMIOWB (LINUX_VERSION_CODE <= KERNEL_VERSION(5, 1, 0)) +#endif + +#if defined(RHEL_RELEASE_CODE) +# define HAS_SWAKE_UP_ONE (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 0)) +# define HAS_SWAKE_UP (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 0)) +#else +# define HAS_SWAKE_UP_ONE (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0)) +# define HAS_SWAKE_UP (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)) +#endif + +#if defined(RHEL_RELEASE_CODE) +# define PCI_AER_NAMECHANGE (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 3)) +#else +# define PCI_AER_NAMECHANGE (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 7, 0)) +#endif + +#if HAS_SWAKE_UP +#include +#endif + +/* + * if the config bar is fixed, the driver does not neeed to search through + * all of the bars + */ +//#define XDMA_CONFIG_BAR_NUM 1 /* SECTION: Preprocessor macros/constants */ #define XDMA_BAR_NUM (6) @@ -42,19 +83,21 @@ * interrupts per engine, rad2_vul.sv:237 * .REG_IRQ_OUT (reg_irq_from_ch[(channel*2) +: 2]), */ -#define XDMA_ENG_IRQ_NUM (1) -#define MAX_EXTRA_ADJ (15) -#define RX_STATUS_EOP (1) +#define XDMA_ENG_IRQ_NUM (1) +#define XDMA_MAX_ADJ_BLOCK_SIZE 0x40 +#define XDMA_PAGE_SIZE 0x1000 +#define RX_STATUS_EOP (1) /* Target internal components on XDMA control BAR */ #define XDMA_OFS_INT_CTRL (0x2000UL) #define XDMA_OFS_CONFIG (0x3000UL) /* maximum number of desc per transfer request */ -#define XDMA_TRANSFER_MAX_DESC (2048) +#define XDMA_ENGINE_XFER_MAX_DESC 0x800 +#define XDMA_ENGINE_CREDIT_XFER_MAX_DESC 0x3FF /* maximum size of a single DMA transfer descriptor */ -#define XDMA_DESC_BLEN_BITS 28 +#define XDMA_DESC_BLEN_BITS 28 #define XDMA_DESC_BLEN_MAX ((1 << (XDMA_DESC_BLEN_BITS)) - 1) /* bits of the SG DMA control register */ @@ -68,6 +111,7 @@ #define XDMA_CTRL_IE_DESC_ERROR (0x1FUL << 19) #define XDMA_CTRL_NON_INCR_ADDR (1UL << 25) #define XDMA_CTRL_POLL_MODE_WB (1UL << 26) +#define XDMA_CTRL_STM_MODE_WB (1UL << 27) /* bits of the SG DMA status register */ #define XDMA_STAT_BUSY (1UL << 0) @@ -123,7 +167,7 @@ /* all combined */ #define XDMA_STAT_H2C_ERR_MASK \ (XDMA_STAT_COMMON_ERR_MASK | XDMA_STAT_DESC_ERR_MASK | \ - XDMA_STAT_H2C_R_ERR_MASK | XDMA_STAT_H2C_W_ERR_MASK) + XDMA_STAT_H2C_R_ERR_MASK | XDMA_STAT_H2C_W_ERR_MASK) #define XDMA_STAT_C2H_ERR_MASK \ (XDMA_STAT_COMMON_ERR_MASK | XDMA_STAT_DESC_ERR_MASK | \ @@ -146,7 +190,7 @@ #define XDMA_ID_C2H 0x1fc1U /* for C2H AXI-ST mode */ -#define CYCLIC_RX_PAGES_MAX 256 +#define CYCLIC_RX_PAGES_MAX 256 #define LS_BYTE_MASK 0x000000FFUL @@ -232,6 +276,23 @@ enum dev_capabilities { /* SECTION: Structure definitions */ +struct xdma_io_cb { + void __user *buf; + size_t len; + void *private; + unsigned int pages_nr; + struct sg_table sgt; + struct page **pages; + /** total data size */ + unsigned int count; + /** MM only, DDR/BRAM memory addr */ + u64 ep_addr; + /** write: if write to the device */ + struct xdma_request_cb *req; + u8 write:1; + void (*io_done)(unsigned long cb_hndl, int err); +}; + struct config_regs { u32 identifier; u32 reserved_1[4]; @@ -374,30 +435,51 @@ struct sw_desc { }; /* Describes a (SG DMA) single transfer for the engine */ +#define XFER_FLAG_NEED_UNMAP 0x1 +#define XFER_FLAG_ST_C2H_EOP_RCVED 0x2 /* ST c2h only */ struct xdma_transfer { struct list_head entry; /* queue of non-completed transfers */ struct xdma_desc *desc_virt; /* virt addr of the 1st descriptor */ + struct xdma_result *res_virt; /* virt addr of result, c2h streaming */ + dma_addr_t res_bus; /* bus addr for result descriptors */ dma_addr_t desc_bus; /* bus addr of the first descriptor */ int desc_adjacent; /* adjacent descriptors at desc_bus */ int desc_num; /* number of descriptors in transfer */ + int desc_index; /* index for 1st desc. in transfer */ + int desc_cmpl; /* completed descriptors */ + int desc_cmpl_th; /* completed descriptor threshold */ enum dma_data_direction dir; +#if HAS_SWAKE_UP + struct swait_queue_head wq; +#else wait_queue_head_t wq; /* wait queue for transfer completion */ +#endif enum transfer_state state; /* state of the transfer */ unsigned int flags; -#define XFER_FLAG_NEED_UNMAP 0x1 int cyclic; /* flag if transfer is cyclic */ int last_in_request; /* flag if last within request */ unsigned int len; struct sg_table *sgt; + struct xdma_io_cb *cb; }; struct xdma_request_cb { struct sg_table *sgt; - unsigned int total_len; u64 ep_addr; + unsigned int aperture; + + unsigned int total_len; + unsigned int offset; + + struct scatterlist *sg; + unsigned int sg_idx; + unsigned int sg_offset; - struct xdma_transfer xfer; + /* Use two transfers in case single request needs to be split */ + struct xdma_transfer tfer[2]; + + struct xdma_io_cb *cb; unsigned int sw_desc_idx; unsigned int sw_desc_cnt; @@ -407,10 +489,8 @@ struct xdma_request_cb { struct xdma_engine { unsigned long magic; /* structure ID for sanity checks */ struct xdma_dev *xdev; /* parent device */ - char name[5]; /* name of this engine */ + char name[16]; /* name of this engine */ int version; /* version of this engine */ - //dev_t cdevno; /* character device major:minor */ - //struct cdev cdev; /* character device (embedded struct) */ /* HW register address offsets */ struct engine_regs *regs; /* Control reg BAR offset */ @@ -420,18 +500,23 @@ struct xdma_engine { /* Engine state, configuration and flags */ enum shutdown_state shutdown; /* engine shutdown mode */ enum dma_data_direction dir; - int device_open; /* flag if engine node open, ST mode only */ - int running; /* flag if the driver started engine */ - int non_incr_addr; /* flag if non-incremental addressing used */ - int streaming; - int addr_align; /* source/dest alignment in bytes */ - int len_granularity; /* transfer length multiple */ - int addr_bits; /* HW datapath address width */ - int channel; /* engine indices */ + u8 addr_align; /* source/dest alignment in bytes */ + u8 len_granularity; /* transfer length multiple */ + u8 addr_bits; /* HW datapath address width */ + u8 channel:2; /* engine indices */ + u8 streaming:1; + u8 device_open:1; /* flag if engine node open, ST mode only */ + u8 running:1; /* flag if the driver started engine */ + u8 non_incr_addr:1; /* flag if non-incremental addressing used */ + u8 eop_flush:1; /* st c2h only, flush up the data with eop */ + u8 filler:1; + int max_extra_adj; /* descriptor prefetch capability */ int desc_dequeued; /* num descriptors of completed transfers */ + u32 desc_max; /* max # descriptors per xfer */ u32 status; /* last known status of device */ - u32 interrupt_enable_mask_value;/* only used for MSIX mode to store per-engine interrupt mask value */ + /* only used for MSIX mode to store per-engine interrupt mask value */ + u32 interrupt_enable_mask_value; /* Transfer list management */ struct list_head transfer_list; /* queue of transfers */ @@ -439,36 +524,45 @@ struct xdma_engine { /* Members applicable to AXI-ST C2H (cyclic) transfers */ struct xdma_result *cyclic_result; dma_addr_t cyclic_result_bus; /* bus addr for transfer */ - struct xdma_request_cb *cyclic_req; - struct sg_table cyclic_sgt; - u8 eop_found; /* used only for cyclic(rx:c2h) */ - - int rx_tail; /* follows the HW */ - int rx_head; /* where the SW reads from */ - int rx_overrun; /* flag if overrun occured */ - - /* for copy from cyclic buffer to user buffer */ - unsigned int user_buffer_index; + u8 *perf_buf_virt; + dma_addr_t perf_buf_bus; /* bus address */ /* Members associated with polled mode support */ u8 *poll_mode_addr_virt; /* virt addr for descriptor writeback */ dma_addr_t poll_mode_bus; /* bus addr for descriptor writeback */ /* Members associated with interrupt mode support */ +#if HAS_SWAKE_UP + struct swait_queue_head shutdown_wq; +#else wait_queue_head_t shutdown_wq; /* wait queue for shutdown sync */ +#endif spinlock_t lock; /* protects concurrent access */ int prev_cpu; /* remember CPU# of (last) locker */ int msix_irq_line; /* MSI-X vector for this engine */ u32 irq_bitmask; /* IRQ bit mask for this engine */ struct work_struct work; /* Work queue for interrupt handling */ - spinlock_t desc_lock; /* protects concurrent access */ + struct mutex desc_lock; /* protects concurrent access */ dma_addr_t desc_bus; struct xdma_desc *desc; + int desc_idx; /* current descriptor index */ + int desc_used; /* total descriptors used */ /* for performance test support */ struct xdma_performance_ioctl *xdma_perf; /* perf test control */ +#if HAS_SWAKE_UP + struct swait_queue_head xdma_perf_wq; +#else wait_queue_head_t xdma_perf_wq; /* Perf test sync */ +#endif + + struct xdma_kthread *cmplthp; + /* completion status thread list for the queue */ + struct list_head cmplthp_list; + /* pending work thread list */ + /* cpu attached to intr_work */ + unsigned int intr_work_cpu; }; struct xdma_user_irq { @@ -479,14 +573,14 @@ struct xdma_user_irq { wait_queue_head_t events_wq; /* wait queue to sync waiting threads */ irq_handler_t handler; - void *dev; + void *dev; }; /* XDMA PCIe device specific book-keeping */ #define XDEV_FLAG_OFFLINE 0x1 struct xdma_dev { struct list_head list_head; - struct list_head rcu_node; + struct list_head rcu_node; unsigned long magic; /* structure ID for sanity checks */ struct pci_dev *pdev; /* pci device struct from probe() */ @@ -498,7 +592,7 @@ struct xdma_dev { unsigned int flags; /* PCIe BAR management */ - void *__iomem bar[XDMA_BAR_NUM]; /* addresses for mapped BARs */ + void __iomem *bar[XDMA_BAR_NUM]; /* addresses for mapped BARs */ int user_bar_idx; /* BAR index of user logic */ int config_bar_idx; /* BAR index of XDMA config logic */ int bypass_bar_idx; /* BAR index of XDMA bypass logic */ @@ -514,7 +608,7 @@ struct xdma_dev { int irq_line; /* flag if irq allocated successfully */ int msi_enabled; /* flag if msi was enabled for the device */ int msix_enabled; /* flag if msi-x was enabled for the device */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0) +#if KERNEL_VERSION(4, 12, 0) > LINUX_VERSION_CODE struct msix_entry entry[32]; /* msi-x vector/entry table */ #endif struct xdma_user_irq user_irq[16]; /* user IRQ management */ @@ -592,10 +686,10 @@ struct xdma_transfer *engine_cyclic_stop(struct xdma_engine *engine); void enable_perf(struct xdma_engine *engine); void get_perf_stats(struct xdma_engine *engine); -int xdma_cyclic_transfer_setup(struct xdma_engine *engine); -int xdma_cyclic_transfer_teardown(struct xdma_engine *engine); -ssize_t xdma_engine_read_cyclic(struct xdma_engine *, char __user *, size_t, - int); int engine_addrmode_set(struct xdma_engine *engine, unsigned long arg); +int engine_service_poll(struct xdma_engine *engine, u32 expected_desc_count); +ssize_t xdma_xfer_aperture(struct xdma_engine *engine, bool write, u64 ep_addr, + unsigned int aperture, struct sg_table *sgt, + bool dma_mapped, int timeout_ms); #endif /* XDMA_LIB_H */ diff --git a/host_software/driver/XDMA/linux-kernel/xdma/modules.order b/host_software/driver/XDMA/linux-kernel/xdma/modules.order new file mode 100644 index 0000000..9fb175b --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/modules.order @@ -0,0 +1 @@ +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma.ko diff --git a/host_software/driver/XDMA/linux-kernel/xdma/version.h b/host_software/driver/XDMA/linux-kernel/xdma/version.h new file mode 100644 index 0000000..941fc79 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/version.h @@ -0,0 +1,35 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2016-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __XDMA_VERSION_H__ +#define __XDMA_VERSION_H__ + +#define DRV_MOD_MAJOR 2020 +#define DRV_MOD_MINOR 2 +#define DRV_MOD_PATCHLEVEL 2 + +#define DRV_MODULE_VERSION \ + __stringify(DRV_MOD_MAJOR) "." \ + __stringify(DRV_MOD_MINOR) "." \ + __stringify(DRV_MOD_PATCHLEVEL) + +#define DRV_MOD_VERSION_NUMBER \ + ((DRV_MOD_MAJOR)*1000 + (DRV_MOD_MINOR)*100 + DRV_MOD_PATCHLEVEL) + +#endif /* ifndef __XDMA_VERSION_H__ */ diff --git a/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod b/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod new file mode 100644 index 0000000..f808f38 --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod @@ -0,0 +1,2 @@ +/home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/libxdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_ctrl.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_events.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_sgdma.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_xvc.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/cdev_bypass.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.o /home/redlight/test/Xilinx-FPGA-PCIe-XDMA-Tutorial/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.o + diff --git a/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.c b/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.c new file mode 100644 index 0000000..42ac29d --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/xdma.mod.c @@ -0,0 +1,216 @@ +#include +#define INCLUDE_VERMAGIC +#include +#include +#include +#include + +BUILD_SALT; +BUILD_LTO_INFO; + +MODULE_INFO(vermagic, VERMAGIC_STRING); +MODULE_INFO(name, KBUILD_MODNAME); + +__visible struct module __this_module +__section(".gnu.linkonce.this_module") = { + .name = KBUILD_MODNAME, + .init = init_module, +#ifdef CONFIG_MODULE_UNLOAD + .exit = cleanup_module, +#endif + .arch = MODULE_ARCH_INIT, +}; + +#ifdef CONFIG_RETPOLINE +MODULE_INFO(retpoline, "Y"); +#endif + +static const struct modversion_info ____versions[] +__used __section("__versions") = { + { 0x32e21920, "module_layout" }, + { 0x2d3385d3, "system_wq" }, + { 0x19d09ac9, "dma_map_sg_attrs" }, + { 0xecea0910, "kmem_cache_destroy" }, + { 0xc7466e35, "cdev_del" }, + { 0x26087692, "kmalloc_caches" }, + { 0xeb233a45, "__kmalloc" }, + { 0x320c3a3f, "cdev_init" }, + { 0x27012063, "put_devmap_managed_page" }, + { 0x9ef55041, "pci_write_config_word" }, + { 0xd6ee688f, "vmalloc" }, + { 0x54b1fac6, "__ubsan_handle_load_invalid_value" }, + { 0x78a31f11, "pci_read_config_byte" }, + { 0x46cf10eb, "cachemode2protval" }, + { 0xbc3c631b, "dma_unmap_sg_attrs" }, + { 0x7eae295f, "dma_set_mask" }, + { 0x1e641c0a, "pcie_set_readrq" }, + { 0xa92ec74, "boot_cpu_data" }, + { 0xfb14ff3c, "pci_disable_device" }, + { 0x9c92ee14, "pci_disable_msix" }, + { 0xb7289033, "set_page_dirty_lock" }, + { 0x837b7b09, "__dynamic_pr_debug" }, + { 0xfdd66e81, "device_destroy" }, + { 0x15a66331, "kobject_set_name" }, + { 0x6729d3df, "__get_user_4" }, + { 0x87b8798d, "sg_next" }, + { 0xf288fcdc, "pci_release_regions" }, + { 0x55e50e25, "pcie_capability_clear_and_set_word" }, + { 0x3213f038, "mutex_unlock" }, + { 0x6091b333, "unregister_chrdev_region" }, + { 0x999e8297, "vfree" }, + { 0x87cec3d1, "dma_free_attrs" }, + { 0x7a2af7b4, "cpu_number" }, + { 0xa648e561, "__ubsan_handle_shift_out_of_bounds" }, + { 0x3c3ff9fd, "sprintf" }, + { 0xb3378a7b, "pv_ops" }, + { 0x35b97737, "dma_set_coherent_mask" }, + { 0x2da00799, "kthread_create_on_node" }, + { 0x15ba50a6, "jiffies" }, + { 0xaa44a707, "cpumask_next" }, + { 0x740fdc10, "kthread_bind" }, + { 0xd9a5ea54, "__init_waitqueue_head" }, + { 0x6b10bee1, "_copy_to_user" }, + { 0x17de3d5, "nr_cpu_ids" }, + { 0x5b8239ca, "__x86_return_thunk" }, + { 0x1e323c29, "pci_set_master" }, + { 0x5f49d55d, "pci_alloc_irq_vectors_affinity" }, + { 0xfb578fc5, "memset" }, + { 0x22a9e612, "pci_restore_state" }, + { 0xbd1fc1a3, "pci_iounmap" }, + { 0xd35cce70, "_raw_spin_unlock_irqrestore" }, + { 0xcefb0c9f, "__mutex_init" }, + { 0xfef216eb, "_raw_spin_trylock" }, + { 0x85c71d85, "kthread_stop" }, + { 0x5a5a2271, "__cpu_online_mask" }, + { 0x2b2ac086, "pci_aer_clear_nonfatal_status" }, + { 0x29a90398, "pci_read_config_word" }, + { 0x1d0107ac, "dma_alloc_attrs" }, + { 0x30a0594d, "kmem_cache_free" }, + { 0x4dfa8d4b, "mutex_lock" }, + { 0x3312a010, "finish_swait" }, + { 0xa94ce2a9, "device_create" }, + { 0x92d5838e, "request_threaded_irq" }, + { 0x6091797f, "synchronize_rcu" }, + { 0xc63095c, "pci_enable_msi" }, + { 0xfe487975, "init_wait_entry" }, + { 0x822b009f, "pci_find_capability" }, + { 0x6a0a71c7, "cdev_add" }, + { 0x800473f, "__cond_resched" }, + { 0x3a2f6702, "sg_alloc_table" }, + { 0x87a21cb3, "__ubsan_handle_out_of_bounds" }, + { 0xc9eb5b45, "kmem_cache_alloc" }, + { 0x6383b27c, "__x86_indirect_thunk_rdx" }, + { 0x618911fc, "numa_node" }, + { 0xb2fd5ceb, "__put_user_4" }, + { 0xd0da656b, "__stack_chk_fail" }, + { 0x9cb986f2, "vmalloc_base" }, + { 0x1000e51, "schedule" }, + { 0x8ddd8aad, "schedule_timeout" }, + { 0x1d24c881, "___ratelimit" }, + { 0xf13aba5d, "prepare_to_swait_event" }, + { 0x92997ed8, "_printk" }, + { 0x65487097, "__x86_indirect_thunk_rax" }, + { 0x45937b6f, "wake_up_process" }, + { 0xbdfb6dbb, "__fentry__" }, + { 0x233f929e, "pci_unregister_driver" }, + { 0xf35141b2, "kmem_cache_alloc_trace" }, + { 0xba8fbd64, "_raw_spin_lock" }, + { 0xb19a5453, "__per_cpu_offset" }, + { 0x34db050b, "_raw_spin_lock_irqsave" }, + { 0xa38e29b5, "kmem_cache_create" }, + { 0x696f32fb, "pci_irq_vector" }, + { 0x3eeb2322, "__wake_up" }, + { 0xb3f7646e, "kthread_should_stop" }, + { 0x8c26d495, "prepare_to_wait_event" }, + { 0x37a0cba, "kfree" }, + { 0x44a3fa19, "remap_pfn_range" }, + { 0x95b52781, "pci_request_regions" }, + { 0x6df1aaf1, "kernel_sigaction" }, + { 0xfc8d4362, "pci_disable_msi" }, + { 0xf2bb7d9, "__pci_register_driver" }, + { 0x748154da, "class_destroy" }, + { 0x92540fbf, "finish_wait" }, + { 0x608741b5, "__init_swait_queue_head" }, + { 0x7f5b4fe4, "sg_free_table" }, + { 0xc5b6f236, "queue_work_on" }, + { 0x656e4a6e, "snprintf" }, + { 0x518022d6, "pci_iomap" }, + { 0xa8528b64, "pci_enable_device_mem" }, + { 0x7f02188f, "__msecs_to_jiffies" }, + { 0x4a453f53, "iowrite32" }, + { 0x8d929026, "pci_enable_device" }, + { 0x13c49cc2, "_copy_from_user" }, + { 0x70a3a844, "param_ops_uint" }, + { 0xaf919f03, "__class_create" }, + { 0x88db9f48, "__check_object_size" }, + { 0xe3ec2f2b, "alloc_chrdev_region" }, + { 0xb915ba86, "__put_page" }, + { 0xa78af5f3, "ioread32" }, + { 0xdcc7f013, "get_user_pages_fast" }, + { 0xc80ab559, "swake_up_one" }, + { 0xc1514a3b, "free_irq" }, + { 0x6e053cc4, "pci_save_state" }, + { 0x587f22d7, "devmap_managed_key" }, + { 0x8a35b432, "sme_me_mask" }, +}; + +MODULE_INFO(depends, ""); + +MODULE_ALIAS("pci:v000010EEd00009048sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009044sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009042sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009041sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd0000903Fsv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009038sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009028sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009018sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009034sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009024sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009014sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009032sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009022sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009012sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009031sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009021sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00009011sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008011sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008012sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008014sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008018sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008021sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008022sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008024sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008028sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008031sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008032sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008034sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00008038sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007011sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007012sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007014sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007018sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007021sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007022sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007024sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007028sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007031sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007032sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007034sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00007038sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00006828sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00006830sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00006928sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00006930sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00006A28sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00006A30sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00006D30sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00004808sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00004828sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00004908sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00004A28sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00004B28sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v000010EEd00002808sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v00001D0Fd0000F000sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v00001D0Fd0000F001sv*sd*bc*sc*i*"); + +MODULE_INFO(srcversion, "C49C31CE18C3897CFC3D332"); diff --git a/host_software/driver/xdma/xdma_cdev.c b/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.c similarity index 67% rename from host_software/driver/xdma/xdma_cdev.c rename to host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.c index b7981f6..363ffb4 100644 --- a/host_software/driver/xdma/xdma_cdev.c +++ b/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.c @@ -4,17 +4,26 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ #include "xdma_cdev.h" -struct class *g_xdma_class; +static struct class *g_xdma_class; + +struct kmem_cache *cdev_cache; enum cdev_type { CHAR_USER, @@ -41,12 +50,12 @@ static const char * const devnode_names[] = { }; enum xpdev_flags_bits { - XDF_CDEV_USER, - XDF_CDEV_CTRL, - XDF_CDEV_XVC, - XDF_CDEV_EVENT, - XDF_CDEV_SG, - XDF_CDEV_BYPASS, + XDF_CDEV_USER, + XDF_CDEV_CTRL, + XDF_CDEV_XVC, + XDF_CDEV_EVENT, + XDF_CDEV_SG, + XDF_CDEV_BYPASS, }; static inline void xpdev_flag_set(struct xdma_pci_dev *xpdev, @@ -68,16 +77,18 @@ static inline int xpdev_flag_test(struct xdma_pci_dev *xpdev, } #ifdef __XDMA_SYSFS__ -ssize_t show_device_numbers(struct device *dev, struct device_attribute *attr, - char *buf) +ssize_t xdma_dev_instance_show(struct device *dev, + struct device_attribute *attr, + char *buf) { - struct xdma_pci_dev *xpdev = (struct xdma_pci_dev *)dev_get_drvdata(dev); + struct xdma_pci_dev *xpdev = + (struct xdma_pci_dev *)dev_get_drvdata(dev); return snprintf(buf, PAGE_SIZE, "%d\t%d\n", xpdev->major, xpdev->xdev->idx); } -static DEVICE_ATTR(xdma_dev_instance, S_IRUGO, show_device_numbers, NULL); +static DEVICE_ATTR_RO(xdma_dev_instance); #endif static int config_kobject(struct xdma_cdev *xcdev, enum cdev_type type) @@ -91,7 +102,10 @@ static int config_kobject(struct xdma_cdev *xcdev, enum cdev_type type) case CHAR_XDMA_C2H: case CHAR_BYPASS_H2C: case CHAR_BYPASS_C2H: - BUG_ON(!engine); + if (!engine) { + pr_err("Invalid DMA engine\n"); + return rv; + } rv = kobject_set_name(&xcdev->cdev.kobj, devnode_names[type], xdev->idx, engine->channel); break; @@ -122,22 +136,23 @@ int xcdev_check(const char *fname, struct xdma_cdev *xcdev, bool check_engine) if (!xcdev || xcdev->magic != MAGIC_CHAR) { pr_info("%s, xcdev 0x%p, magic 0x%lx.\n", - fname, xcdev, xcdev ? xcdev->magic : 0xFFFFFFFF); + fname, xcdev, xcdev ? xcdev->magic : 0xFFFFFFFF); return -EINVAL; } - xdev = xcdev->xdev; + xdev = xcdev->xdev; if (!xdev || xdev->magic != MAGIC_DEVICE) { pr_info("%s, xdev 0x%p, magic 0x%lx.\n", - fname, xdev, xdev ? xdev->magic : 0xFFFFFFFF); + fname, xdev, xdev ? xdev->magic : 0xFFFFFFFF); return -EINVAL; } if (check_engine) { - struct xdma_engine *engine = xcdev->engine; + struct xdma_engine *engine = xcdev->engine; + if (!engine || engine->magic != MAGIC_ENGINE) { pr_info("%s, engine 0x%p, magic 0x%lx.\n", fname, - engine, engine ? engine->magic : 0xFFFFFFFF); + engine, engine ? engine->magic : 0xFFFFFFFF); return -EINVAL; } } @@ -151,7 +166,11 @@ int char_open(struct inode *inode, struct file *file) /* pointer to containing structure of the character device inode */ xcdev = container_of(inode->i_cdev, struct xdma_cdev, cdev); - BUG_ON(xcdev->magic != MAGIC_CHAR); + if (xcdev->magic != MAGIC_CHAR) { + pr_err("xcdev 0x%p inode 0x%lx magic mismatch 0x%lx\n", + xcdev, inode->i_ino, xcdev->magic); + return -EINVAL; + } /* create a reference to our char device in the opened file */ file->private_data = xcdev; @@ -166,13 +185,30 @@ int char_close(struct inode *inode, struct file *file) struct xdma_dev *xdev; struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; - BUG_ON(!xcdev); - BUG_ON(xcdev->magic != MAGIC_CHAR); + if (!xcdev) { + pr_err("char device with inode 0x%lx xcdev NULL\n", + inode->i_ino); + return -EINVAL; + } + + if (xcdev->magic != MAGIC_CHAR) { + pr_err("xcdev 0x%p magic mismatch 0x%lx\n", + xcdev, xcdev->magic); + return -EINVAL; + } /* fetch device specific data stored earlier during open */ xdev = xcdev->xdev; - BUG_ON(!xdev); - BUG_ON(xdev->magic != MAGIC_DEVICE); + if (!xdev) { + pr_err("char device with inode 0x%lx xdev NULL\n", + inode->i_ino); + return -EINVAL; + } + + if (xdev->magic != MAGIC_DEVICE) { + pr_err("xdev 0x%p magic mismatch 0x%lx\n", xdev, xdev->magic); + return -EINVAL; + } return 0; } @@ -186,40 +222,52 @@ int char_close(struct inode *inode, struct file *file) static int create_sys_device(struct xdma_cdev *xcdev, enum cdev_type type) { - struct xdma_dev *xdev = xcdev->xdev; - struct xdma_engine *engine = xcdev->engine; - int last_param; + struct xdma_dev *xdev = xcdev->xdev; + struct xdma_engine *engine = xcdev->engine; + int last_param; - if (type == CHAR_EVENTS) - last_param = xcdev->bar; - else - last_param = engine ? engine->channel : 0; + if (type == CHAR_EVENTS) + last_param = xcdev->bar; + else + last_param = engine ? engine->channel : 0; - xcdev->sys_device = device_create(g_xdma_class, &xdev->pdev->dev, - xcdev->cdevno, NULL, devnode_names[type], xdev->idx, - last_param); + xcdev->sys_device = device_create(g_xdma_class, &xdev->pdev->dev, + xcdev->cdevno, NULL, devnode_names[type], xdev->idx, + last_param); - if (!xcdev->sys_device) { - pr_err("device_create(%s) failed\n", devnode_names[type]); - return -1; - } + if (!xcdev->sys_device) { + pr_err("device_create(%s) failed\n", devnode_names[type]); + return -1; + } - return 0; + return 0; } static int destroy_xcdev(struct xdma_cdev *cdev) { if (!cdev) { pr_warn("cdev NULL.\n"); - return 0; + return -EINVAL; } if (cdev->magic != MAGIC_CHAR) { pr_warn("cdev 0x%p magic mismatch 0x%lx\n", cdev, cdev->magic); - return 0; + return -EINVAL; + } + + if (!cdev->xdev) { + pr_err("xdev NULL\n"); + return -EINVAL; + } + + if (!g_xdma_class) { + pr_err("g_xdma_class NULL\n"); + return -EINVAL; + } + + if (!cdev->sys_device) { + pr_err("cdev sys_device NULL\n"); + return -EINVAL; } - BUG_ON(!cdev->xdev); - BUG_ON(!g_xdma_class); - BUG_ON(!cdev->sys_device); if (cdev->sys_device) device_destroy(g_xdma_class, cdev->cdevno); @@ -330,58 +378,91 @@ static int create_xcdev(struct xdma_pci_dev *xpdev, struct xdma_cdev *xcdev, del_cdev: cdev_del(&xcdev->cdev); unregister_region: - unregister_chrdev_region(dev, XDMA_MINOR_COUNT); + unregister_chrdev_region(xcdev->cdevno, XDMA_MINOR_COUNT); return rv; } void xpdev_destroy_interfaces(struct xdma_pci_dev *xpdev) { - int i; - + int i = 0; + int rv; #ifdef __XDMA_SYSFS__ - device_remove_file(&xpdev->pdev->dev, &dev_attr_xdma_dev_instance); + device_remove_file(&xpdev->pdev->dev, &dev_attr_xdma_dev_instance); #endif if (xpdev_flag_test(xpdev, XDF_CDEV_SG)) { /* iterate over channels */ - for (i = 0; i < xpdev->h2c_channel_max; i++) + for (i = 0; i < xpdev->h2c_channel_max; i++) { /* remove SG DMA character device */ - destroy_xcdev(&xpdev->sgdma_h2c_cdev[i]); - for (i = 0; i < xpdev->c2h_channel_max; i++) - destroy_xcdev(&xpdev->sgdma_c2h_cdev[i]); + rv = destroy_xcdev(&xpdev->sgdma_h2c_cdev[i]); + if (rv < 0) + pr_err("Failed to destroy h2c xcdev %d error :0x%x\n", + i, rv); + } + for (i = 0; i < xpdev->c2h_channel_max; i++) { + rv = destroy_xcdev(&xpdev->sgdma_c2h_cdev[i]); + if (rv < 0) + pr_err("Failed to destroy c2h xcdev %d error 0x%x\n", + i, rv); + } } if (xpdev_flag_test(xpdev, XDF_CDEV_EVENT)) { - for (i = 0; i < xpdev->user_max; i++) - destroy_xcdev(&xpdev->events_cdev[i]); + for (i = 0; i < xpdev->user_max; i++) { + rv = destroy_xcdev(&xpdev->events_cdev[i]); + if (rv < 0) + pr_err("Failed to destroy cdev event %d error 0x%x\n", + i, rv); + } } /* remove control character device */ if (xpdev_flag_test(xpdev, XDF_CDEV_CTRL)) { - destroy_xcdev(&xpdev->ctrl_cdev); + rv = destroy_xcdev(&xpdev->ctrl_cdev); + if (rv < 0) + pr_err("Failed to destroy cdev ctrl event %d error 0x%x\n", + i, rv); } /* remove user character device */ if (xpdev_flag_test(xpdev, XDF_CDEV_USER)) { - destroy_xcdev(&xpdev->user_cdev); + rv = destroy_xcdev(&xpdev->user_cdev); + if (rv < 0) + pr_err("Failed to destroy user cdev %d error 0x%x\n", + i, rv); } if (xpdev_flag_test(xpdev, XDF_CDEV_XVC)) { - destroy_xcdev(&xpdev->xvc_cdev); + rv = destroy_xcdev(&xpdev->xvc_cdev); + if (rv < 0) + pr_err("Failed to destroy xvc cdev %d error 0x%x\n", + i, rv); } if (xpdev_flag_test(xpdev, XDF_CDEV_BYPASS)) { /* iterate over channels */ - for (i = 0; i < xpdev->h2c_channel_max; i++) + for (i = 0; i < xpdev->h2c_channel_max; i++) { /* remove DMA Bypass character device */ - destroy_xcdev(&xpdev->bypass_h2c_cdev[i]); - for (i = 0; i < xpdev->c2h_channel_max; i++) - destroy_xcdev(&xpdev->bypass_c2h_cdev[i]); - destroy_xcdev(&xpdev->bypass_cdev_base); + rv = destroy_xcdev(&xpdev->bypass_h2c_cdev[i]); + if (rv < 0) + pr_err("Failed to destroy bypass h2c cdev %d error 0x%x\n", + i, rv); + } + for (i = 0; i < xpdev->c2h_channel_max; i++) { + rv = destroy_xcdev(&xpdev->bypass_c2h_cdev[i]); + if (rv < 0) + pr_err("Failed to destroy bypass c2h %d error 0x%x\n", + i, rv); + } + rv = destroy_xcdev(&xpdev->bypass_cdev_base); + if (rv < 0) + pr_err("Failed to destroy base cdev\n"); } if (xpdev->major) - unregister_chrdev_region(MKDEV(xpdev->major, XDMA_MINOR_BASE), XDMA_MINOR_COUNT); + unregister_chrdev_region( + MKDEV(xpdev->major, XDMA_MINOR_BASE), + XDMA_MINOR_COUNT); } int xpdev_create_interfaces(struct xdma_pci_dev *xpdev) @@ -441,9 +522,8 @@ int xpdev_create_interfaces(struct xdma_pci_dev *xpdev) } xpdev_flag_set(xpdev, XDF_CDEV_SG); - /* ??? Bypass */ /* Initialize Bypass Character Device */ - if (xdev->bypass_bar_idx > 0){ + if (xdev->bypass_bar_idx > 0) { for (i = 0; i < xpdev->h2c_channel_max; i++) { engine = &xdev->engine_h2c[i]; @@ -508,7 +588,7 @@ int xpdev_create_interfaces(struct xdma_pci_dev *xpdev) rv = device_create_file(&xpdev->pdev->dev, &dev_attr_xdma_dev_instance); if (rv) { - pr_err("Failed to create device file \n"); + pr_err("Failed to create device file\n"); goto fail; } #endif @@ -524,16 +604,29 @@ int xpdev_create_interfaces(struct xdma_pci_dev *xpdev) int xdma_cdev_init(void) { g_xdma_class = class_create(THIS_MODULE, XDMA_NODE_NAME); - if (IS_ERR(g_xdma_class)) { - dbg_init(XDMA_NODE_NAME ": failed to create class"); - return -1; - } + if (IS_ERR(g_xdma_class)) { + dbg_init(XDMA_NODE_NAME ": failed to create class"); + return -EINVAL; + } + + /* using kmem_cache_create to enable sequential cleanup */ + cdev_cache = kmem_cache_create("cdev_cache", + sizeof(struct cdev_async_io), 0, + SLAB_HWCACHE_ALIGN, NULL); + + if (!cdev_cache) { + pr_info("memory allocation for cdev_cache failed. OOM\n"); + return -ENOMEM; + } return 0; } void xdma_cdev_cleanup(void) { + if (cdev_cache) + kmem_cache_destroy(cdev_cache); + if (g_xdma_class) class_destroy(g_xdma_class); } diff --git a/host_software/driver/xdma/xdma_cdev.h b/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h similarity index 58% rename from host_software/driver/xdma/xdma_cdev.h rename to host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h index 9570066..4b2fc50 100644 --- a/host_software/driver/xdma/xdma_cdev.h +++ b/host_software/driver/XDMA/linux-kernel/xdma/xdma_cdev.h @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #ifndef __XDMA_CHRDEV_H__ @@ -28,13 +35,13 @@ int xdma_cdev_init(void); int char_open(struct inode *inode, struct file *file); int char_close(struct inode *inode, struct file *file); -int xcdev_check(const char *, struct xdma_cdev *, bool); - +int xcdev_check(const char *fname, struct xdma_cdev *xcdev, bool check_engine); void cdev_ctrl_init(struct xdma_cdev *xcdev); void cdev_xvc_init(struct xdma_cdev *xcdev); void cdev_event_init(struct xdma_cdev *xcdev); void cdev_sgdma_init(struct xdma_cdev *xcdev); void cdev_bypass_init(struct xdma_cdev *xcdev); +long char_ctrl_ioctl(struct file *filp, unsigned int cmd, unsigned long arg); void xpdev_destroy_interfaces(struct xdma_pci_dev *xpdev); int xpdev_create_interfaces(struct xdma_pci_dev *xpdev); diff --git a/host_software/driver/xdma/xdma_mod.c b/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.c similarity index 71% rename from host_software/driver/xdma/xdma_mod.c rename to host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.c index d4efbe7..fe51eab 100644 --- a/host_software/driver/xdma/xdma_mod.c +++ b/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.c @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ @@ -25,8 +32,6 @@ #define DRV_MODULE_NAME "xdma" #define DRV_MODULE_DESC "Xilinx XDMA Reference Driver" -#define DRV_MODULE_RELDATE "Feb. 2018" - static char version[] = DRV_MODULE_DESC " " DRV_MODULE_NAME " v" DRV_MODULE_VERSION "\n"; @@ -37,48 +42,52 @@ MODULE_VERSION(DRV_MODULE_VERSION); MODULE_LICENSE("Dual BSD/GPL"); /* SECTION: Module global variables */ -static int xpdev_cnt = 0; +static int xpdev_cnt; static const struct pci_device_id pci_ids[] = { + { PCI_DEVICE(0x10ee, 0x9048), }, + { PCI_DEVICE(0x10ee, 0x9044), }, + { PCI_DEVICE(0x10ee, 0x9042), }, + { PCI_DEVICE(0x10ee, 0x9041), }, { PCI_DEVICE(0x10ee, 0x903f), }, { PCI_DEVICE(0x10ee, 0x9038), }, { PCI_DEVICE(0x10ee, 0x9028), }, - { PCI_DEVICE(0x10ee, 0x9018), }, + { PCI_DEVICE(0x10ee, 0x9018), }, { PCI_DEVICE(0x10ee, 0x9034), }, { PCI_DEVICE(0x10ee, 0x9024), }, - { PCI_DEVICE(0x10ee, 0x9014), }, + { PCI_DEVICE(0x10ee, 0x9014), }, { PCI_DEVICE(0x10ee, 0x9032), }, { PCI_DEVICE(0x10ee, 0x9022), }, - { PCI_DEVICE(0x10ee, 0x9012), }, + { PCI_DEVICE(0x10ee, 0x9012), }, { PCI_DEVICE(0x10ee, 0x9031), }, { PCI_DEVICE(0x10ee, 0x9021), }, - { PCI_DEVICE(0x10ee, 0x9011), }, + { PCI_DEVICE(0x10ee, 0x9011), }, { PCI_DEVICE(0x10ee, 0x8011), }, { PCI_DEVICE(0x10ee, 0x8012), }, - { PCI_DEVICE(0x10ee, 0x8014), }, - { PCI_DEVICE(0x10ee, 0x8018), }, - { PCI_DEVICE(0x10ee, 0x8021), }, - { PCI_DEVICE(0x10ee, 0x8022), }, - { PCI_DEVICE(0x10ee, 0x8024), }, - { PCI_DEVICE(0x10ee, 0x8028), }, - { PCI_DEVICE(0x10ee, 0x8031), }, - { PCI_DEVICE(0x10ee, 0x8032), }, - { PCI_DEVICE(0x10ee, 0x8034), }, - { PCI_DEVICE(0x10ee, 0x8038), }, - - { PCI_DEVICE(0x10ee, 0x7011), }, - { PCI_DEVICE(0x10ee, 0x7012), }, - { PCI_DEVICE(0x10ee, 0x7014), }, - { PCI_DEVICE(0x10ee, 0x7018), }, - { PCI_DEVICE(0x10ee, 0x7021), }, - { PCI_DEVICE(0x10ee, 0x7022), }, - { PCI_DEVICE(0x10ee, 0x7024), }, + { PCI_DEVICE(0x10ee, 0x8014), }, + { PCI_DEVICE(0x10ee, 0x8018), }, + { PCI_DEVICE(0x10ee, 0x8021), }, + { PCI_DEVICE(0x10ee, 0x8022), }, + { PCI_DEVICE(0x10ee, 0x8024), }, + { PCI_DEVICE(0x10ee, 0x8028), }, + { PCI_DEVICE(0x10ee, 0x8031), }, + { PCI_DEVICE(0x10ee, 0x8032), }, + { PCI_DEVICE(0x10ee, 0x8034), }, + { PCI_DEVICE(0x10ee, 0x8038), }, + + { PCI_DEVICE(0x10ee, 0x7011), }, + { PCI_DEVICE(0x10ee, 0x7012), }, + { PCI_DEVICE(0x10ee, 0x7014), }, + { PCI_DEVICE(0x10ee, 0x7018), }, + { PCI_DEVICE(0x10ee, 0x7021), }, + { PCI_DEVICE(0x10ee, 0x7022), }, + { PCI_DEVICE(0x10ee, 0x7024), }, { PCI_DEVICE(0x10ee, 0x7028), }, - { PCI_DEVICE(0x10ee, 0x7031), }, - { PCI_DEVICE(0x10ee, 0x7032), }, - { PCI_DEVICE(0x10ee, 0x7034), }, - { PCI_DEVICE(0x10ee, 0x7038), }, + { PCI_DEVICE(0x10ee, 0x7031), }, + { PCI_DEVICE(0x10ee, 0x7032), }, + { PCI_DEVICE(0x10ee, 0x7034), }, + { PCI_DEVICE(0x10ee, 0x7038), }, { PCI_DEVICE(0x10ee, 0x6828), }, { PCI_DEVICE(0x10ee, 0x6830), }, @@ -99,6 +108,10 @@ static const struct pci_device_id pci_ids[] = { #ifdef INTERNAL_TESTING { PCI_DEVICE(0x1d0f, 0x1042), 0}, #endif + /* aws */ + { PCI_DEVICE(0x1d0f, 0xf000), }, + { PCI_DEVICE(0x1d0f, 0xf001), }, + {0,} }; MODULE_DEVICE_TABLE(pci, pci_ids); @@ -119,7 +132,7 @@ static void xpdev_free(struct xdma_pci_dev *xpdev) static struct xdma_pci_dev *xpdev_alloc(struct pci_dev *pdev) { - struct xdma_pci_dev *xpdev = kmalloc(sizeof(*xpdev), GFP_KERNEL); + struct xdma_pci_dev *xpdev = kmalloc(sizeof(*xpdev), GFP_KERNEL); if (!xpdev) return NULL; @@ -148,12 +161,28 @@ static int probe_one(struct pci_dev *pdev, const struct pci_device_id *id) hndl = xdma_device_open(DRV_MODULE_NAME, pdev, &xpdev->user_max, &xpdev->h2c_channel_max, &xpdev->c2h_channel_max); - if (!hndl) - return -EINVAL; + if (!hndl) { + rv = -EINVAL; + goto err_out; + } + + if (xpdev->user_max > MAX_USER_IRQ) { + pr_err("Maximum users limit reached\n"); + rv = -EINVAL; + goto err_out; + } + + if (xpdev->h2c_channel_max > XDMA_CHANNEL_NUM_MAX) { + pr_err("Maximun H2C channel limit reached\n"); + rv = -EINVAL; + goto err_out; + } - BUG_ON(xpdev->user_max > MAX_USER_IRQ); - BUG_ON(xpdev->h2c_channel_max > XDMA_CHANNEL_NUM_MAX); - BUG_ON(xpdev->c2h_channel_max > XDMA_CHANNEL_NUM_MAX); + if (xpdev->c2h_channel_max > XDMA_CHANNEL_NUM_MAX) { + pr_err("Maximun C2H channel limit reached\n"); + rv = -EINVAL; + goto err_out; + } if (!xpdev->h2c_channel_max && !xpdev->c2h_channel_max) pr_warn("NO engine found!\n"); @@ -170,9 +199,15 @@ static int probe_one(struct pci_dev *pdev, const struct pci_device_id *id) xdev = xdev_find_by_pdev(pdev); if (!xdev) { pr_warn("NO xdev found!\n"); - return -EINVAL; + rv = -EINVAL; + goto err_out; + } + + if (hndl != xdev) { + pr_err("xdev handle mismatch\n"); + rv = -EINVAL; + goto err_out; } - BUG_ON(hndl != xdev ); pr_info("%s xdma%d, pdev 0x%p, xdev 0x%p, 0x%p, usr %d, ch %d,%d.\n", dev_name(&pdev->dev), xdev->idx, pdev, xpdev, xdev, @@ -185,11 +220,11 @@ static int probe_one(struct pci_dev *pdev, const struct pci_device_id *id) if (rv) goto err_out; - dev_set_drvdata(&pdev->dev, xpdev); + dev_set_drvdata(&pdev->dev, xpdev); return 0; -err_out: +err_out: pr_err("pdev 0x%p, err %d.\n", pdev, rv); xpdev_free(xpdev); return rv; @@ -210,7 +245,7 @@ static void remove_one(struct pci_dev *pdev) pdev, xpdev, xpdev->xdev); xpdev_free(xpdev); - dev_set_drvdata(&pdev->dev, NULL); + dev_set_drvdata(&pdev->dev, NULL); } static pci_ers_result_t xdma_error_detected(struct pci_dev *pdev, @@ -258,11 +293,15 @@ static void xdma_error_resume(struct pci_dev *pdev) struct xdma_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); pr_info("dev 0x%p,0x%p.\n", pdev, xpdev); - //!pci_cleanup_aer_uncorrect_error_status(pdev); +#if PCI_AER_NAMECHANGE pci_aer_clear_nonfatal_status(pdev); +#else + pci_cleanup_aer_uncorrect_error_status(pdev); +#endif + } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0) +#if KERNEL_VERSION(4, 13, 0) <= LINUX_VERSION_CODE static void xdma_reset_prepare(struct pci_dev *pdev) { struct xdma_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); @@ -279,7 +318,7 @@ static void xdma_reset_done(struct pci_dev *pdev) xdma_device_online(pdev, xpdev->xdev); } -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) +#elif KERNEL_VERSION(3, 16, 0) <= LINUX_VERSION_CODE static void xdma_reset_notify(struct pci_dev *pdev, bool prepare) { struct xdma_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); @@ -297,10 +336,10 @@ static const struct pci_error_handlers xdma_err_handler = { .error_detected = xdma_error_detected, .slot_reset = xdma_slot_reset, .resume = xdma_error_resume, -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0) +#if KERNEL_VERSION(4, 13, 0) <= LINUX_VERSION_CODE .reset_prepare = xdma_reset_prepare, .reset_done = xdma_reset_done, -#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) +#elif KERNEL_VERSION(3, 16, 0) <= LINUX_VERSION_CODE .reset_notify = xdma_reset_notify, #endif }; @@ -313,18 +352,16 @@ static struct pci_driver pci_driver = { .err_handler = &xdma_err_handler, }; -static int __init xdma_mod_init(void) +static int xdma_mod_init(void) { int rv; - extern unsigned int desc_blen_max; - extern unsigned int sgdma_timeout; pr_info("%s", version); if (desc_blen_max > XDMA_DESC_BLEN_MAX) desc_blen_max = XDMA_DESC_BLEN_MAX; - pr_info("desc_blen_max: 0x%x/%u, sgdma_timeout: %u sec.\n", - desc_blen_max, desc_blen_max, sgdma_timeout); + pr_info("desc_blen_max: 0x%x/%u, timeout: h2c %u c2h %u sec.\n", + desc_blen_max, desc_blen_max, h2c_timeout, c2h_timeout); rv = xdma_cdev_init(); if (rv < 0) @@ -333,7 +370,7 @@ static int __init xdma_mod_init(void) return pci_register_driver(&pci_driver); } -static void __exit xdma_mod_exit(void) +static void xdma_mod_exit(void) { /* unregister this driver from the PCI bus driver */ dbg_init("pci_unregister_driver.\n"); diff --git a/host_software/driver/xdma/xdma_mod.h b/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h similarity index 70% rename from host_software/driver/xdma/xdma_mod.h rename to host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h index 93202b1..0fb7527 100644 --- a/host_software/driver/xdma/xdma_mod.h +++ b/host_software/driver/XDMA/linux-kernel/xdma/xdma_mod.h @@ -4,10 +4,17 @@ * Copyright (c) 2016-present, Xilinx, Inc. * All rights reserved. * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". */ #ifndef __XDMA_MODULE_H__ @@ -37,14 +44,20 @@ #include #include #include +#include #include "libxdma.h" +#include "xdma_thread.h" #define MAGIC_ENGINE 0xEEEEEEEEUL #define MAGIC_DEVICE 0xDDDDDDDDUL #define MAGIC_CHAR 0xCCCCCCCCUL #define MAGIC_BITSTREAM 0xBBBBBBBBUL +extern unsigned int desc_blen_max; +extern unsigned int h2c_timeout; +extern unsigned int c2h_timeout; + struct xdma_cdev { unsigned long magic; /* structure ID for sanity checks */ struct xdma_pci_dev *xpdev; @@ -87,12 +100,19 @@ struct xdma_pci_dev { void *data; }; -struct xdma_io_cb { - void __user *buf; - size_t len; - unsigned int pages_nr; - struct sg_table sgt; - struct page **pages; +struct cdev_async_io { + struct kiocb *iocb; + struct xdma_io_cb *cb; + bool write; + bool cancel; + int cmpl_cnt; + int req_cnt; + spinlock_t lock; + struct work_struct wrk_itm; + struct cdev_async_io *next; + ssize_t res; + ssize_t res2; + int err_cnt; }; #endif /* ifndef __XDMA_MODULE_H__ */ diff --git a/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.c b/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.c new file mode 100644 index 0000000..662311f --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.c @@ -0,0 +1,339 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "xdma_thread.h" + +#include +#include + + +/* ********************* global variables *********************************** */ +static struct xdma_kthread *cs_threads; +static unsigned int thread_cnt; + + +/* ********************* static function definitions ************************ */ +static int xdma_thread_cmpl_status_pend(struct list_head *work_item) +{ + struct xdma_engine *engine = list_entry(work_item, struct xdma_engine, + cmplthp_list); + int pend = 0; + unsigned long flags; + + spin_lock_irqsave(&engine->lock, flags); + pend = !list_empty(&engine->transfer_list); + spin_unlock_irqrestore(&engine->lock, flags); + + return pend; +} + +static int xdma_thread_cmpl_status_proc(struct list_head *work_item) +{ + struct xdma_engine *engine; + struct xdma_transfer * transfer; + + engine = list_entry(work_item, struct xdma_engine, cmplthp_list); + transfer = list_entry(engine->transfer_list.next, struct xdma_transfer, + entry); + if (transfer) + engine_service_poll(engine, transfer->desc_cmpl_th); + return 0; +} + +static inline int xthread_work_pending(struct xdma_kthread *thp) +{ + struct list_head *work_item, *next; + + /* any work items assigned to this thread? */ + if (list_empty(&thp->work_list)) + return 0; + + /* any work item has pending work to do? */ + list_for_each_safe(work_item, next, &thp->work_list) { + if (thp->fpending && thp->fpending(work_item)) + return 1; + + } + return 0; +} + +static inline void xthread_reschedule(struct xdma_kthread *thp) +{ + if (thp->timeout) { + pr_debug_thread("%s rescheduling for %u seconds", + thp->name, thp->timeout); + wait_event_interruptible_timeout(thp->waitq, thp->schedule, + msecs_to_jiffies(thp->timeout)); + } else { + pr_debug_thread("%s rescheduling", thp->name); + wait_event_interruptible(thp->waitq, thp->schedule); + } +} + +static int xthread_main(void *data) +{ + struct xdma_kthread *thp = (struct xdma_kthread *)data; + + pr_debug_thread("%s UP.\n", thp->name); + + disallow_signal(SIGPIPE); + + if (thp->finit) + thp->finit(thp); + + while (!kthread_should_stop()) { + + struct list_head *work_item, *next; + + pr_debug_thread("%s interruptible\n", thp->name); + + /* any work to do? */ + lock_thread(thp); + if (!xthread_work_pending(thp)) { + unlock_thread(thp); + xthread_reschedule(thp); + lock_thread(thp); + } + thp->schedule = 0; + + if (thp->work_cnt) { + pr_debug_thread("%s processing %u work items\n", + thp->name, thp->work_cnt); + /* do work */ + list_for_each_safe(work_item, next, &thp->work_list) { + thp->fproc(work_item); + } + } + unlock_thread(thp); + schedule(); + } + + pr_debug_thread("%s, work done.\n", thp->name); + + if (thp->fdone) + thp->fdone(thp); + + pr_debug_thread("%s, exit.\n", thp->name); + return 0; +} + + +int xdma_kthread_start(struct xdma_kthread *thp, char *name, int id) +{ + int len; + int node; + + if (thp->task) { + pr_warn("kthread %s task already running?\n", thp->name); + return -EINVAL; + } + + len = snprintf(thp->name, sizeof(thp->name), "%s%d", name, id); + if (len < 0) { + pr_err("thread %d, error in snprintf name %s.\n", id, name); + return -EINVAL; + } + + thp->id = id; + + spin_lock_init(&thp->lock); + INIT_LIST_HEAD(&thp->work_list); + init_waitqueue_head(&thp->waitq); + + node = cpu_to_node(thp->cpu); + pr_debug("node : %d\n", node); + + thp->task = kthread_create_on_node(xthread_main, (void *)thp, + node, "%s", thp->name); + if (IS_ERR(thp->task)) { + pr_err("kthread %s, create task failed: 0x%lx\n", + thp->name, (unsigned long)IS_ERR(thp->task)); + thp->task = NULL; + return -EFAULT; + } + + kthread_bind(thp->task, thp->cpu); + + pr_debug_thread("kthread 0x%p, %s, cpu %u, task 0x%p.\n", + thp, thp->name, thp->cpu, thp->task); + + wake_up_process(thp->task); + return 0; +} + +int xdma_kthread_stop(struct xdma_kthread *thp) +{ + int rv; + + if (!thp->task) { + pr_debug_thread("kthread %s, already stopped.\n", thp->name); + return 0; + } + + thp->schedule = 1; + rv = kthread_stop(thp->task); + if (rv < 0) { + pr_warn("kthread %s, stop err %d.\n", thp->name, rv); + return rv; + } + + pr_debug_thread("kthread %s, 0x%p, stopped.\n", thp->name, thp->task); + thp->task = NULL; + + return 0; +} + + + +void xdma_thread_remove_work(struct xdma_engine *engine) +{ + struct xdma_kthread *cmpl_thread; + unsigned long flags; + + spin_lock_irqsave(&engine->lock, flags); + cmpl_thread = engine->cmplthp; + engine->cmplthp = NULL; + +// pr_debug("%s removing from thread %s, %u.\n", +// descq->conf.name, cmpl_thread ? cmpl_thread->name : "?", +// cpu_idx); + + spin_unlock_irqrestore(&engine->lock, flags); + +#if 0 + if (cpu_idx < cpu_count) { + spin_lock(&qcnt_lock); + per_cpu_qcnt[cpu_idx]--; + spin_unlock(&qcnt_lock); + } +#endif + + if (cmpl_thread) { + lock_thread(cmpl_thread); + list_del(&engine->cmplthp_list); + cmpl_thread->work_cnt--; + unlock_thread(cmpl_thread); + } +} + +void xdma_thread_add_work(struct xdma_engine *engine) +{ + struct xdma_kthread *thp = cs_threads; + unsigned int v = 0; + int i, idx = thread_cnt; + unsigned long flags; + + + /* Polled mode only */ + for (i = 0; i < thread_cnt; i++, thp++) { + lock_thread(thp); + if (idx == thread_cnt) { + v = thp->work_cnt; + idx = i; + } else if (!thp->work_cnt) { + idx = i; + unlock_thread(thp); + break; + } else if (thp->work_cnt < v) + idx = i; + unlock_thread(thp); + } + + thp = cs_threads + idx; + lock_thread(thp); + list_add_tail(&engine->cmplthp_list, &thp->work_list); + engine->intr_work_cpu = idx; + thp->work_cnt++; + unlock_thread(thp); + + pr_info("%s 0x%p assigned to cmpl status thread %s,%u.\n", + engine->name, engine, thp->name, thp->work_cnt); + + + spin_lock_irqsave(&engine->lock, flags); + engine->cmplthp = thp; + spin_unlock_irqrestore(&engine->lock, flags); +} + +int xdma_threads_create(unsigned int num_threads) +{ + struct xdma_kthread *thp; + int rv; + int cpu; + + if (thread_cnt) { + pr_warn("threads already created!"); + return 0; + } + + cs_threads = kzalloc(num_threads * sizeof(struct xdma_kthread), + GFP_KERNEL); + if (!cs_threads) { + pr_err("OOM, # threads %u.\n", num_threads); + return -ENOMEM; + } + + /* N dma writeback monitoring threads */ + thp = cs_threads; + for_each_online_cpu(cpu) { + pr_debug("index %d cpu %d online\n", thread_cnt, cpu); + thp->cpu = cpu; + thp->timeout = 0; + thp->fproc = xdma_thread_cmpl_status_proc; + thp->fpending = xdma_thread_cmpl_status_pend; + rv = xdma_kthread_start(thp, "cmpl_status_th", thread_cnt); + if (rv < 0) + goto cleanup_threads; + + thread_cnt++; + if (thread_cnt == num_threads) + break; + thp++; + } + + return 0; + +cleanup_threads: + kfree(cs_threads); + cs_threads = NULL; + thread_cnt = 0; + + return rv; +} + +void xdma_threads_destroy(void) +{ + int i; + struct xdma_kthread *thp; + + if (!thread_cnt) + return; + + /* N dma writeback monitoring threads */ + thp = cs_threads; + for (i = 0; i < thread_cnt; i++, thp++) + if (thp->fproc) + xdma_kthread_stop(thp); + + kfree(cs_threads); + cs_threads = NULL; + thread_cnt = 0; +} diff --git a/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h b/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h new file mode 100644 index 0000000..c8f6dbb --- /dev/null +++ b/host_software/driver/XDMA/linux-kernel/xdma/xdma_thread.h @@ -0,0 +1,147 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __XDMA_KTHREAD_H__ +#define __XDMA_KTHREAD_H__ +/** + * @file + * @brief This file contains the declarations for xdma kernel threads + * + */ +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include "libxdma.h" + +#ifdef DEBUG_THREADS +#define lock_thread(thp) \ + do { \ + pr_debug("locking thp %s ...\n", (thp)->name); \ + spin_lock(&(thp)->lock); \ + } while (0) + +#define unlock_thread(thp) \ + do { \ + pr_debug("unlock thp %s ...\n", (thp)->name); \ + spin_unlock(&(thp)->lock); \ + } while (0) + +#define xdma_kthread_wakeup(thp) \ + do { \ + pr_info("signaling thp %s ...\n", (thp)->name); \ + wake_up_process((thp)->task); \ + } while (0) + +#define pr_debug_thread(fmt, ...) pr_info(fmt, __VA_ARGS__) + +#else +/** lock thread macro */ +#define lock_thread(thp) spin_lock(&(thp)->lock) +/** un lock thread macro */ +#define unlock_thread(thp) spin_unlock(&(thp)->lock) +#define xdma_kthread_wakeup(thp) \ + do { \ + thp->schedule = 1; \ + wake_up_interruptible(&thp->waitq); \ + } while (0) +/** pr_debug_thread */ +#define pr_debug_thread(fmt, ...) +#endif + +/** + * @struct - xdma_kthread + * @brief xdma thread book keeping parameters + */ +struct xdma_kthread { + /** thread lock*/ + spinlock_t lock; + /** name of the thread */ + char name[16]; + /** cpu number for which the thread associated with */ + unsigned short cpu; + /** thread id */ + unsigned short id; + /** thread sleep timeout value */ + unsigned int timeout; + /** flags for thread */ + unsigned long flag; + /** thread wait queue */ + wait_queue_head_t waitq; + /* flag to indicate scheduling of thread */ + unsigned int schedule; + /** kernel task structure associated with thread*/ + struct task_struct *task; + /** thread work list count */ + unsigned int work_cnt; + /** thread work list count */ + struct list_head work_list; + /** thread initialization handler */ + int (*finit)(struct xdma_kthread *); + /** thread pending handler */ + int (*fpending)(struct list_head *); + /** thread peocessing handler */ + int (*fproc)(struct list_head *); + /** thread done handler */ + int (*fdone)(struct xdma_kthread *); +}; + + +/*****************************************************************************/ +/** + * xdma_threads_create() - create xdma threads +*********/ +int xdma_threads_create(unsigned int num_threads); + +/*****************************************************************************/ +/** + * xdma_threads_destroy() - destroy all the xdma threads created + * during system initialization + * + * @return none + *****************************************************************************/ +void xdma_threads_destroy(void); + +/*****************************************************************************/ +/** + * xdma_thread_remove_work() - handler to remove the attached work thread + * + * @param[in] engine: pointer to xdma_engine + * + * @return none + *****************************************************************************/ +void xdma_thread_remove_work(struct xdma_engine *engine); + +/*****************************************************************************/ +/** + * xdma_thread_add_work() - handler to add a work thread + * + * @param[in] engine: pointer to xdma_engine + * + * @return none + *****************************************************************************/ +void xdma_thread_add_work(struct xdma_engine *engine); + +#endif /* #ifndef __XDMA_KTHREAD_H__ */ diff --git a/host_software/driver/load_driver.sh b/host_software/driver/load_driver.sh deleted file mode 100644 index ad7f4b1..0000000 --- a/host_software/driver/load_driver.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -# Make sure only root can run our script -if [[ $EUID -ne 0 ]]; then - echo "This script must be run as root" 1>&2 - exit 1 -fi - -# Remove the existing xdma kernel module -lsmod | grep xdma -if [ $? -eq 0 ]; then - rmmod xdma -fi - -echo -n "Loading xdma driver..." -# Use the following command to Load the driver in the default -# or interrupt drive mode. This will allow the driver to use -# interrupts to signal when DMA transfers are completed. -insmod ./xdma/xdma.ko -# Use the following command to Load the driver in Polling -# mode rather than than interrupt mode. This will allow the -# driver to use polling to determ when DMA transfers are -# completed. -#insmod ../xdma/xdma.ko poll_mode=1 - -if [ ! $? == 0 ]; then - echo "Error: Kernel module did not load properly." - echo " FAILED" - exit 1 -fi - -# Check to see if the xdma devices were recognized -echo "" -cat /proc/devices | grep xdma > /dev/null -returnVal=$? -if [ $returnVal == 0 ]; then - # Installed devices were recognized. - echo "The Kernel module installed correctly and the xmda devices were recognized." -else - # No devices were installed. - echo "Error: The Kernel module installed correctly, but no devices were recognized." - echo " FAILED" - exit 1 -fi - -echo " DONE" diff --git a/host_software/driver/xdma/.cdev_bypass.o.cmd b/host_software/driver/xdma/.cdev_bypass.o.cmd deleted file mode 100644 index 4266db2..0000000 --- a/host_software/driver/xdma/.cdev_bypass.o.cmd +++ /dev/null @@ -1,995 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.cdev_bypass.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DMODULE -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(cdev_bypass)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/.tmp_cdev_bypass.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.o := \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma_api.h \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - $(wildcard include/config/64bit.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/kasan-checks.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/scatterlist.h \ - $(wildcard include/config/debug/sg.h) \ - $(wildcard include/config/need/sg/dma/length.h) \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - $(wildcard include/config/kmemcheck.h) \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - $(wildcard include/config/smp.h) \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/mm.h \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/sysctl.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/x86.h) \ - $(wildcard include/config/ppc.h) \ - $(wildcard include/config/parisc.h) \ - $(wildcard include/config/metag.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/sparsemem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/debug/vm/rb.h) \ - $(wildcard include/config/proc/fs.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hibernation.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/hugetlbfs.h) \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/virtual.h) \ - include/linux/gfp.h \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - $(wildcard include/config/preempt.h) \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/compat.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - arch/x86/include/uapi/asm/msr.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/seqlock.h \ - include/linux/nodemask.h \ - $(wildcard include/config/movable/node.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/osq_lock.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - arch/x86/include/asm/rwsem.h \ - include/linux/srcu.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/linux/jiffies.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/sysctl.h \ - include/linux/rbtree.h \ - include/uapi/linux/sysctl.h \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/linux/bit_spinlock.h \ - include/linux/shrinker.h \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/page_ext.h \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/page/owner.h) \ - include/linux/stacktrace.h \ - $(wildcard include/config/stacktrace.h) \ - $(wildcard include/config/user/stacktrace/support.h) \ - arch/x86/include/asm/pgtable.h \ - $(wildcard include/config/debug/wx.h) \ - $(wildcard include/config/have/arch/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64.h \ - arch/x86/include/asm/pgtable-invert.h \ - include/asm-generic/pgtable.h \ - $(wildcard include/config/have/arch/huge/vmap.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/huge_mm.h \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - $(wildcard include/config/debug/tlbflush.h) \ - $(wildcard include/config/debug/vm/vmacache.h) \ - include/linux/vm_event_item.h \ - $(wildcard include/config/migration.h) \ - $(wildcard include/config/memory/balloon.h) \ - $(wildcard include/config/balloon/compaction.h) \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - include/linux/vtime.h \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/virt/cpu/accounting.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/kref.h \ - arch/x86/include/asm/irq.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.h \ - include/linux/uaccess.h \ - include/linux/sched.h \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/lockup/detector.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/sched/mc.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/have/copy/thread/tls.h) \ - $(wildcard include/config/debug/stack/usage.h) \ - include/uapi/linux/sched.h \ - include/linux/sched/prio.h \ - include/linux/capability.h \ - $(wildcard include/config/multiuser.h) \ - include/uapi/linux/capability.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/cputime.h \ - arch/x86/include/generated/asm/cputime.h \ - include/asm-generic/cputime.h \ - include/asm-generic/cputime_jiffies.h \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/signal.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/pid.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/rculist.h \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - $(wildcard include/config/security.h) \ - include/linux/key.h \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/selinux.h \ - $(wildcard include/config/security/selinux.h) \ - include/uapi/linux/magic.h \ - include/linux/cgroup-defs.h \ - include/uapi/linux/limits.h \ - include/linux/idr.h \ - include/linux/percpu-refcount.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcu_sync.h \ - include/linux/cgroup_subsys.h \ - $(wildcard include/config/cgroup/cpuacct.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/cgroup/device.h) \ - $(wildcard include/config/cgroup/freezer.h) \ - $(wildcard include/config/cgroup/net/classid.h) \ - $(wildcard include/config/cgroup/perf.h) \ - $(wildcard include/config/cgroup/net/prio.h) \ - $(wildcard include/config/cgroup/hugetlb.h) \ - $(wildcard include/config/cgroup/pids.h) \ - $(wildcard include/config/cgroup/debug.h) \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/x86/intel/usercopy.h) \ - $(wildcard include/config/debug/strict/user/copy/checks.h) \ - arch/x86/include/asm/smap.h \ - $(wildcard include/config/x86/smap.h) \ - arch/x86/include/asm/uaccess_64.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.h \ - include/linux/module.h \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/kmod.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/kobject_ns.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/cdev.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/klist.h \ - include/linux/pinctrl/devinfo.h \ - include/linux/pinctrl/consumer.h \ - include/linux/seq_file.h \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/radix-tree.h \ - include/linux/semaphore.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/blk_types.h \ - $(wildcard include/config/blk/dev/integrity.h) \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/x86/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/linux/pinctrl/pinctrl-state.h \ - include/linux/ratelimit.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - include/linux/pm_wakeup.h \ - include/linux/dma-mapping.h \ - $(wildcard include/config/has/dma.h) \ - $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \ - $(wildcard include/config/have/dma/attrs.h) \ - $(wildcard include/config/need/dma/map/state.h) \ - include/linux/sizes.h \ - include/linux/dma-attrs.h \ - include/linux/dma-direction.h \ - arch/x86/include/asm/dma-mapping.h \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/x86/dma/remap.h) \ - include/linux/kmemcheck.h \ - include/linux/dma-debug.h \ - $(wildcard include/config/dma/api/debug.h) \ - arch/x86/include/asm/swiotlb.h \ - $(wildcard include/config/swiotlb.h) \ - include/linux/swiotlb.h \ - include/linux/dma-contiguous.h \ - include/asm-generic/dma-mapping-common.h \ - include/asm-generic/dma-coherent.h \ - $(wildcard include/config/have/generic/dma/coherent.h) \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/fb.h \ - $(wildcard include/config/fb/deferred/io.h) \ - $(wildcard include/config/fb/tileblitting.h) \ - $(wildcard include/config/fb/backlight.h) \ - $(wildcard include/config/fb/foreign/endian.h) \ - $(wildcard include/config/fb/both/endian.h) \ - $(wildcard include/config/fb/big/endian.h) \ - $(wildcard include/config/fb/little/endian.h) \ - include/linux/kgdb.h \ - $(wildcard include/config/have/arch/kgdb.h) \ - $(wildcard include/config/kgdb.h) \ - $(wildcard include/config/serial/kgdb/nmi.h) \ - arch/x86/include/asm/kgdb.h \ - include/uapi/linux/fb.h \ - include/linux/i2c.h \ - $(wildcard include/config/i2c.h) \ - $(wildcard include/config/i2c/slave.h) \ - $(wildcard include/config/i2c/boardinfo.h) \ - $(wildcard include/config/i2c/mux.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/of.h \ - $(wildcard include/config/sparc.h) \ - $(wildcard include/config/of/dynamic.h) \ - $(wildcard include/config/attach/node.h) \ - $(wildcard include/config/detach/node.h) \ - $(wildcard include/config/add/property.h) \ - $(wildcard include/config/remove/property.h) \ - $(wildcard include/config/update/property.h) \ - $(wildcard include/config/of/numa.h) \ - $(wildcard include/config/no/change.h) \ - $(wildcard include/config/change/add.h) \ - $(wildcard include/config/change/remove.h) \ - $(wildcard include/config/of/resolve.h) \ - $(wildcard include/config/of/overlay.h) \ - include/linux/property.h \ - include/linux/fwnode.h \ - include/uapi/linux/i2c.h \ - include/linux/backlight.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/kmemleak.h \ - $(wildcard include/config/debug/kmemleak.h) \ - include/linux/kasan.h \ - include/linux/io.h \ - include/linux/poll.h \ - include/uapi/linux/poll.h \ - arch/x86/include/uapi/asm/poll.h \ - include/uapi/asm-generic/poll.h \ - include/linux/pci.h \ - $(wildcard include/config/pci/iov.h) \ - $(wildcard include/config/pcieaspm.h) \ - $(wildcard include/config/pci/ats.h) \ - $(wildcard include/config/pci/domains/generic.h) \ - $(wildcard include/config/pci/bus/addr/t/64bit.h) \ - $(wildcard include/config/pcieportbus.h) \ - $(wildcard include/config/pcieaer.h) \ - $(wildcard include/config/pcie/ecrc.h) \ - $(wildcard include/config/ht/irq.h) \ - $(wildcard include/config/pci/domains.h) \ - $(wildcard include/config/pci/quirks.h) \ - $(wildcard include/config/hibernate/callbacks.h) \ - $(wildcard include/config/acpi/mcfg.h) \ - $(wildcard include/config/hotplug/pci.h) \ - $(wildcard include/config/eeh.h) \ - include/linux/resource_ext.h \ - include/uapi/linux/pci.h \ - include/uapi/linux/pci_regs.h \ - include/linux/pci_ids.h \ - include/linux/pci-dma.h \ - include/linux/dmapool.h \ - arch/x86/include/asm/pci.h \ - $(wildcard include/config/pci/msi/irq/domain.h) \ - arch/x86/include/asm/pci_64.h \ - $(wildcard include/config/calgary/iommu.h) \ - include/asm-generic/pci-dma-compat.h \ - include/asm-generic/pci.h \ - include/linux/vmalloc.h \ - include/linux/aio.h \ - include/uapi/linux/aio_abi.h \ - include/linux/splice.h \ - include/linux/pipe_fs_i.h \ - include/generated/uapi/linux/version.h \ - include/linux/uio.h \ - include/uapi/linux/uio.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.h \ - $(wildcard include/config/block/id.h) \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.o): diff --git a/host_software/driver/xdma/.cdev_ctrl.o.cmd b/host_software/driver/xdma/.cdev_ctrl.o.cmd deleted file mode 100644 index 9e7f6ee..0000000 --- a/host_software/driver/xdma/.cdev_ctrl.o.cmd +++ /dev/null @@ -1,996 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.cdev_ctrl.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DMODULE -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(cdev_ctrl)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/.tmp_cdev_ctrl.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.o := \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/version.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.h \ - include/linux/kernel.h \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - $(wildcard include/config/64bit.h) \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/kasan-checks.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - $(wildcard include/config/smp.h) \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/uaccess.h \ - $(wildcard include/config/preempt/count.h) \ - include/linux/sched.h \ - $(wildcard include/config/no/hz/common.h) \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/lockup/detector.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/sched/smt.h) \ - $(wildcard include/config/sched/mc.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/compat.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/uprobes.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/proc/fs.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/have/copy/thread/tls.h) \ - $(wildcard include/config/debug/stack/usage.h) \ - $(wildcard include/config/preempt.h) \ - include/uapi/linux/sched.h \ - include/linux/sched/prio.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - include/linux/capability.h \ - $(wildcard include/config/multiuser.h) \ - include/uapi/linux/capability.h \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/tracer.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/kmemcheck.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - arch/x86/include/uapi/asm/msr.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/uapi/linux/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/linux/jiffies.h \ - include/generated/timeconst.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/rbtree.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - include/linux/nodemask.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/movable/node.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/hugetlb/page.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - include/linux/osq_lock.h \ - arch/x86/include/asm/rwsem.h \ - include/linux/uprobes.h \ - arch/x86/include/asm/uprobes.h \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/srcu.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/uapi/linux/sysctl.h \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - include/linux/cputime.h \ - arch/x86/include/generated/asm/cputime.h \ - include/asm-generic/cputime.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - include/asm-generic/cputime_jiffies.h \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - $(wildcard include/config/hibernation.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - $(wildcard include/config/memory/hotremove.h) \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/signal.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/pid.h \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/cma.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/gfp.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/rculist.h \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - $(wildcard include/config/security.h) \ - include/linux/key.h \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/selinux.h \ - $(wildcard include/config/security/selinux.h) \ - include/uapi/linux/magic.h \ - include/linux/cgroup-defs.h \ - include/uapi/linux/limits.h \ - include/linux/idr.h \ - include/linux/percpu-refcount.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcu_sync.h \ - include/linux/cgroup_subsys.h \ - $(wildcard include/config/cgroup/cpuacct.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/cgroup/device.h) \ - $(wildcard include/config/cgroup/freezer.h) \ - $(wildcard include/config/cgroup/net/classid.h) \ - $(wildcard include/config/cgroup/perf.h) \ - $(wildcard include/config/cgroup/net/prio.h) \ - $(wildcard include/config/cgroup/hugetlb.h) \ - $(wildcard include/config/cgroup/pids.h) \ - $(wildcard include/config/cgroup/debug.h) \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/x86/intel/usercopy.h) \ - $(wildcard include/config/debug/strict/user/copy/checks.h) \ - arch/x86/include/asm/smap.h \ - $(wildcard include/config/x86/smap.h) \ - arch/x86/include/asm/uaccess_64.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.h \ - include/linux/module.h \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/kmod.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/cdev.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/klist.h \ - include/linux/pinctrl/devinfo.h \ - include/linux/pinctrl/consumer.h \ - include/linux/seq_file.h \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - $(wildcard include/config/migration.h) \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/bit_spinlock.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/shrinker.h \ - include/linux/radix-tree.h \ - include/linux/semaphore.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/blk_types.h \ - $(wildcard include/config/blk/dev/integrity.h) \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/x86/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/linux/pinctrl/pinctrl-state.h \ - include/linux/ratelimit.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - include/linux/pm_wakeup.h \ - include/linux/dma-mapping.h \ - $(wildcard include/config/has/dma.h) \ - $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \ - $(wildcard include/config/have/dma/attrs.h) \ - $(wildcard include/config/need/dma/map/state.h) \ - include/linux/sizes.h \ - include/linux/dma-attrs.h \ - include/linux/dma-direction.h \ - include/linux/scatterlist.h \ - $(wildcard include/config/debug/sg.h) \ - $(wildcard include/config/need/sg/dma/length.h) \ - include/linux/mm.h \ - $(wildcard include/config/ppc.h) \ - $(wildcard include/config/parisc.h) \ - $(wildcard include/config/metag.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/debug/vm/rb.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hugetlbfs.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/page_ext.h \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/page/owner.h) \ - include/linux/stacktrace.h \ - $(wildcard include/config/stacktrace.h) \ - $(wildcard include/config/user/stacktrace/support.h) \ - arch/x86/include/asm/pgtable.h \ - $(wildcard include/config/debug/wx.h) \ - $(wildcard include/config/have/arch/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64.h \ - arch/x86/include/asm/pgtable-invert.h \ - include/asm-generic/pgtable.h \ - $(wildcard include/config/have/arch/huge/vmap.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/huge_mm.h \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - $(wildcard include/config/debug/tlbflush.h) \ - $(wildcard include/config/debug/vm/vmacache.h) \ - include/linux/vm_event_item.h \ - $(wildcard include/config/memory/balloon.h) \ - $(wildcard include/config/balloon/compaction.h) \ - arch/x86/include/asm/dma-mapping.h \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/x86/dma/remap.h) \ - include/linux/kmemcheck.h \ - include/linux/dma-debug.h \ - $(wildcard include/config/dma/api/debug.h) \ - arch/x86/include/asm/swiotlb.h \ - $(wildcard include/config/swiotlb.h) \ - include/linux/swiotlb.h \ - include/linux/dma-contiguous.h \ - include/asm-generic/dma-mapping-common.h \ - include/asm-generic/dma-coherent.h \ - $(wildcard include/config/have/generic/dma/coherent.h) \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/fb.h \ - $(wildcard include/config/fb/deferred/io.h) \ - $(wildcard include/config/fb/tileblitting.h) \ - $(wildcard include/config/fb/backlight.h) \ - $(wildcard include/config/fb/foreign/endian.h) \ - $(wildcard include/config/fb/both/endian.h) \ - $(wildcard include/config/fb/big/endian.h) \ - $(wildcard include/config/fb/little/endian.h) \ - include/linux/kgdb.h \ - $(wildcard include/config/have/arch/kgdb.h) \ - $(wildcard include/config/kgdb.h) \ - $(wildcard include/config/serial/kgdb/nmi.h) \ - arch/x86/include/asm/kgdb.h \ - include/uapi/linux/fb.h \ - include/linux/i2c.h \ - $(wildcard include/config/i2c.h) \ - $(wildcard include/config/i2c/slave.h) \ - $(wildcard include/config/i2c/boardinfo.h) \ - $(wildcard include/config/i2c/mux.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/of.h \ - $(wildcard include/config/sparc.h) \ - $(wildcard include/config/of/dynamic.h) \ - $(wildcard include/config/attach/node.h) \ - $(wildcard include/config/detach/node.h) \ - $(wildcard include/config/add/property.h) \ - $(wildcard include/config/remove/property.h) \ - $(wildcard include/config/update/property.h) \ - $(wildcard include/config/of/numa.h) \ - $(wildcard include/config/no/change.h) \ - $(wildcard include/config/change/add.h) \ - $(wildcard include/config/change/remove.h) \ - $(wildcard include/config/of/resolve.h) \ - $(wildcard include/config/of/overlay.h) \ - include/linux/property.h \ - include/linux/fwnode.h \ - include/uapi/linux/i2c.h \ - include/linux/backlight.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/kmemleak.h \ - $(wildcard include/config/debug/kmemleak.h) \ - include/linux/kasan.h \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - include/linux/vtime.h \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - arch/x86/include/asm/irq.h \ - include/linux/io.h \ - include/linux/poll.h \ - include/uapi/linux/poll.h \ - arch/x86/include/uapi/asm/poll.h \ - include/uapi/asm-generic/poll.h \ - include/linux/pci.h \ - $(wildcard include/config/pci/iov.h) \ - $(wildcard include/config/pcieaspm.h) \ - $(wildcard include/config/pci/ats.h) \ - $(wildcard include/config/pci/domains/generic.h) \ - $(wildcard include/config/pci/bus/addr/t/64bit.h) \ - $(wildcard include/config/pcieportbus.h) \ - $(wildcard include/config/pcieaer.h) \ - $(wildcard include/config/pcie/ecrc.h) \ - $(wildcard include/config/ht/irq.h) \ - $(wildcard include/config/pci/domains.h) \ - $(wildcard include/config/pci/quirks.h) \ - $(wildcard include/config/hibernate/callbacks.h) \ - $(wildcard include/config/acpi/mcfg.h) \ - $(wildcard include/config/hotplug/pci.h) \ - $(wildcard include/config/eeh.h) \ - include/linux/resource_ext.h \ - include/uapi/linux/pci.h \ - include/uapi/linux/pci_regs.h \ - include/linux/pci_ids.h \ - include/linux/pci-dma.h \ - include/linux/dmapool.h \ - arch/x86/include/asm/pci.h \ - $(wildcard include/config/pci/msi/irq/domain.h) \ - arch/x86/include/asm/pci_64.h \ - $(wildcard include/config/calgary/iommu.h) \ - include/asm-generic/pci-dma-compat.h \ - include/asm-generic/pci.h \ - include/linux/vmalloc.h \ - include/linux/aio.h \ - include/uapi/linux/aio_abi.h \ - include/linux/splice.h \ - include/linux/pipe_fs_i.h \ - include/generated/uapi/linux/version.h \ - include/linux/uio.h \ - include/uapi/linux/uio.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.h \ - $(wildcard include/config/block/id.h) \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.h \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.o): diff --git a/host_software/driver/xdma/.cdev_events.o.cmd b/host_software/driver/xdma/.cdev_events.o.cmd deleted file mode 100644 index c6f2acc..0000000 --- a/host_software/driver/xdma/.cdev_events.o.cmd +++ /dev/null @@ -1,994 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.cdev_events.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DMODULE -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(cdev_events)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/.tmp_cdev_events.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.o := \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.h \ - include/linux/kernel.h \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - $(wildcard include/config/64bit.h) \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/kasan-checks.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - $(wildcard include/config/smp.h) \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/uaccess.h \ - $(wildcard include/config/preempt/count.h) \ - include/linux/sched.h \ - $(wildcard include/config/no/hz/common.h) \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/lockup/detector.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/sched/smt.h) \ - $(wildcard include/config/sched/mc.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/compat.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/uprobes.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/proc/fs.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/have/copy/thread/tls.h) \ - $(wildcard include/config/debug/stack/usage.h) \ - $(wildcard include/config/preempt.h) \ - include/uapi/linux/sched.h \ - include/linux/sched/prio.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - include/linux/capability.h \ - $(wildcard include/config/multiuser.h) \ - include/uapi/linux/capability.h \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/tracer.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/kmemcheck.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - arch/x86/include/uapi/asm/msr.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/uapi/linux/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/linux/jiffies.h \ - include/generated/timeconst.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/rbtree.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - include/linux/nodemask.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/movable/node.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/hugetlb/page.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - include/linux/osq_lock.h \ - arch/x86/include/asm/rwsem.h \ - include/linux/uprobes.h \ - arch/x86/include/asm/uprobes.h \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/srcu.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/uapi/linux/sysctl.h \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - include/linux/cputime.h \ - arch/x86/include/generated/asm/cputime.h \ - include/asm-generic/cputime.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - include/asm-generic/cputime_jiffies.h \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - $(wildcard include/config/hibernation.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - $(wildcard include/config/memory/hotremove.h) \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/signal.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/pid.h \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/cma.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/gfp.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/rculist.h \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - $(wildcard include/config/security.h) \ - include/linux/key.h \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/selinux.h \ - $(wildcard include/config/security/selinux.h) \ - include/uapi/linux/magic.h \ - include/linux/cgroup-defs.h \ - include/uapi/linux/limits.h \ - include/linux/idr.h \ - include/linux/percpu-refcount.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcu_sync.h \ - include/linux/cgroup_subsys.h \ - $(wildcard include/config/cgroup/cpuacct.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/cgroup/device.h) \ - $(wildcard include/config/cgroup/freezer.h) \ - $(wildcard include/config/cgroup/net/classid.h) \ - $(wildcard include/config/cgroup/perf.h) \ - $(wildcard include/config/cgroup/net/prio.h) \ - $(wildcard include/config/cgroup/hugetlb.h) \ - $(wildcard include/config/cgroup/pids.h) \ - $(wildcard include/config/cgroup/debug.h) \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/x86/intel/usercopy.h) \ - $(wildcard include/config/debug/strict/user/copy/checks.h) \ - arch/x86/include/asm/smap.h \ - $(wildcard include/config/x86/smap.h) \ - arch/x86/include/asm/uaccess_64.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.h \ - include/linux/module.h \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/kmod.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/cdev.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/klist.h \ - include/linux/pinctrl/devinfo.h \ - include/linux/pinctrl/consumer.h \ - include/linux/seq_file.h \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - $(wildcard include/config/migration.h) \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/bit_spinlock.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/shrinker.h \ - include/linux/radix-tree.h \ - include/linux/semaphore.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/blk_types.h \ - $(wildcard include/config/blk/dev/integrity.h) \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/x86/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/linux/pinctrl/pinctrl-state.h \ - include/linux/ratelimit.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - include/linux/pm_wakeup.h \ - include/linux/dma-mapping.h \ - $(wildcard include/config/has/dma.h) \ - $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \ - $(wildcard include/config/have/dma/attrs.h) \ - $(wildcard include/config/need/dma/map/state.h) \ - include/linux/sizes.h \ - include/linux/dma-attrs.h \ - include/linux/dma-direction.h \ - include/linux/scatterlist.h \ - $(wildcard include/config/debug/sg.h) \ - $(wildcard include/config/need/sg/dma/length.h) \ - include/linux/mm.h \ - $(wildcard include/config/ppc.h) \ - $(wildcard include/config/parisc.h) \ - $(wildcard include/config/metag.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/debug/vm/rb.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hugetlbfs.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/page_ext.h \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/page/owner.h) \ - include/linux/stacktrace.h \ - $(wildcard include/config/stacktrace.h) \ - $(wildcard include/config/user/stacktrace/support.h) \ - arch/x86/include/asm/pgtable.h \ - $(wildcard include/config/debug/wx.h) \ - $(wildcard include/config/have/arch/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64.h \ - arch/x86/include/asm/pgtable-invert.h \ - include/asm-generic/pgtable.h \ - $(wildcard include/config/have/arch/huge/vmap.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/huge_mm.h \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - $(wildcard include/config/debug/tlbflush.h) \ - $(wildcard include/config/debug/vm/vmacache.h) \ - include/linux/vm_event_item.h \ - $(wildcard include/config/memory/balloon.h) \ - $(wildcard include/config/balloon/compaction.h) \ - arch/x86/include/asm/dma-mapping.h \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/x86/dma/remap.h) \ - include/linux/kmemcheck.h \ - include/linux/dma-debug.h \ - $(wildcard include/config/dma/api/debug.h) \ - arch/x86/include/asm/swiotlb.h \ - $(wildcard include/config/swiotlb.h) \ - include/linux/swiotlb.h \ - include/linux/dma-contiguous.h \ - include/asm-generic/dma-mapping-common.h \ - include/asm-generic/dma-coherent.h \ - $(wildcard include/config/have/generic/dma/coherent.h) \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/fb.h \ - $(wildcard include/config/fb/deferred/io.h) \ - $(wildcard include/config/fb/tileblitting.h) \ - $(wildcard include/config/fb/backlight.h) \ - $(wildcard include/config/fb/foreign/endian.h) \ - $(wildcard include/config/fb/both/endian.h) \ - $(wildcard include/config/fb/big/endian.h) \ - $(wildcard include/config/fb/little/endian.h) \ - include/linux/kgdb.h \ - $(wildcard include/config/have/arch/kgdb.h) \ - $(wildcard include/config/kgdb.h) \ - $(wildcard include/config/serial/kgdb/nmi.h) \ - arch/x86/include/asm/kgdb.h \ - include/uapi/linux/fb.h \ - include/linux/i2c.h \ - $(wildcard include/config/i2c.h) \ - $(wildcard include/config/i2c/slave.h) \ - $(wildcard include/config/i2c/boardinfo.h) \ - $(wildcard include/config/i2c/mux.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/of.h \ - $(wildcard include/config/sparc.h) \ - $(wildcard include/config/of/dynamic.h) \ - $(wildcard include/config/attach/node.h) \ - $(wildcard include/config/detach/node.h) \ - $(wildcard include/config/add/property.h) \ - $(wildcard include/config/remove/property.h) \ - $(wildcard include/config/update/property.h) \ - $(wildcard include/config/of/numa.h) \ - $(wildcard include/config/no/change.h) \ - $(wildcard include/config/change/add.h) \ - $(wildcard include/config/change/remove.h) \ - $(wildcard include/config/of/resolve.h) \ - $(wildcard include/config/of/overlay.h) \ - include/linux/property.h \ - include/linux/fwnode.h \ - include/uapi/linux/i2c.h \ - include/linux/backlight.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/kmemleak.h \ - $(wildcard include/config/debug/kmemleak.h) \ - include/linux/kasan.h \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - include/linux/vtime.h \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - arch/x86/include/asm/irq.h \ - include/linux/io.h \ - include/linux/poll.h \ - include/uapi/linux/poll.h \ - arch/x86/include/uapi/asm/poll.h \ - include/uapi/asm-generic/poll.h \ - include/linux/pci.h \ - $(wildcard include/config/pci/iov.h) \ - $(wildcard include/config/pcieaspm.h) \ - $(wildcard include/config/pci/ats.h) \ - $(wildcard include/config/pci/domains/generic.h) \ - $(wildcard include/config/pci/bus/addr/t/64bit.h) \ - $(wildcard include/config/pcieportbus.h) \ - $(wildcard include/config/pcieaer.h) \ - $(wildcard include/config/pcie/ecrc.h) \ - $(wildcard include/config/ht/irq.h) \ - $(wildcard include/config/pci/domains.h) \ - $(wildcard include/config/pci/quirks.h) \ - $(wildcard include/config/hibernate/callbacks.h) \ - $(wildcard include/config/acpi/mcfg.h) \ - $(wildcard include/config/hotplug/pci.h) \ - $(wildcard include/config/eeh.h) \ - include/linux/resource_ext.h \ - include/uapi/linux/pci.h \ - include/uapi/linux/pci_regs.h \ - include/linux/pci_ids.h \ - include/linux/pci-dma.h \ - include/linux/dmapool.h \ - arch/x86/include/asm/pci.h \ - $(wildcard include/config/pci/msi/irq/domain.h) \ - arch/x86/include/asm/pci_64.h \ - $(wildcard include/config/calgary/iommu.h) \ - include/asm-generic/pci-dma-compat.h \ - include/asm-generic/pci.h \ - include/linux/vmalloc.h \ - include/linux/aio.h \ - include/uapi/linux/aio_abi.h \ - include/linux/splice.h \ - include/linux/pipe_fs_i.h \ - include/generated/uapi/linux/version.h \ - include/linux/uio.h \ - include/uapi/linux/uio.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.h \ - $(wildcard include/config/block/id.h) \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.o): diff --git a/host_software/driver/xdma/.cdev_sgdma.o.cmd b/host_software/driver/xdma/.cdev_sgdma.o.cmd deleted file mode 100644 index e8367a1..0000000 --- a/host_software/driver/xdma/.cdev_sgdma.o.cmd +++ /dev/null @@ -1,1000 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.cdev_sgdma.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DMODULE -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(cdev_sgdma)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/.tmp_cdev_sgdma.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.o := \ - arch/x86/include/asm/cacheflush.h \ - $(wildcard include/config/debug/rodata.h) \ - $(wildcard include/config/debug/rodata/test.h) \ - include/asm-generic/cacheflush.h \ - include/linux/mm.h \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/sysctl.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/x86.h) \ - $(wildcard include/config/ppc.h) \ - $(wildcard include/config/parisc.h) \ - $(wildcard include/config/metag.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/sparsemem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/debug/vm/rb.h) \ - $(wildcard include/config/proc/fs.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hibernation.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/hugetlbfs.h) \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/virtual.h) \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - $(wildcard include/config/x86/32.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - $(wildcard include/config/smp.h) \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - $(wildcard include/config/64bit.h) \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - arch/x86/include/asm/posix_types.h \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/kasan-checks.h \ - include/linux/kernel.h \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/gfp.h \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - $(wildcard include/config/preempt.h) \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/compat.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/kmemcheck.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - arch/x86/include/uapi/asm/msr.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/seqlock.h \ - include/linux/nodemask.h \ - $(wildcard include/config/movable/node.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/osq_lock.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - arch/x86/include/asm/rwsem.h \ - include/linux/srcu.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/linux/jiffies.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/sysctl.h \ - include/linux/rbtree.h \ - include/uapi/linux/sysctl.h \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/linux/bit_spinlock.h \ - include/linux/shrinker.h \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/page_ext.h \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/page/owner.h) \ - include/linux/stacktrace.h \ - $(wildcard include/config/stacktrace.h) \ - $(wildcard include/config/user/stacktrace/support.h) \ - arch/x86/include/asm/pgtable.h \ - $(wildcard include/config/debug/wx.h) \ - $(wildcard include/config/have/arch/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64.h \ - arch/x86/include/asm/pgtable-invert.h \ - include/asm-generic/pgtable.h \ - $(wildcard include/config/have/arch/huge/vmap.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/huge_mm.h \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - $(wildcard include/config/debug/tlbflush.h) \ - $(wildcard include/config/debug/vm/vmacache.h) \ - include/linux/vm_event_item.h \ - $(wildcard include/config/migration.h) \ - $(wildcard include/config/memory/balloon.h) \ - $(wildcard include/config/balloon/compaction.h) \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/x86/intel/usercopy.h) \ - $(wildcard include/config/debug/strict/user/copy/checks.h) \ - arch/x86/include/asm/smap.h \ - $(wildcard include/config/x86/smap.h) \ - arch/x86/include/asm/uaccess_64.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma_api.h \ - include/linux/scatterlist.h \ - $(wildcard include/config/debug/sg.h) \ - $(wildcard include/config/need/sg/dma/length.h) \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - include/linux/vtime.h \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/virt/cpu/accounting.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/kref.h \ - arch/x86/include/asm/irq.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.h \ - include/linux/uaccess.h \ - include/linux/sched.h \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/lockup/detector.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/sched/mc.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/have/copy/thread/tls.h) \ - $(wildcard include/config/debug/stack/usage.h) \ - include/uapi/linux/sched.h \ - include/linux/sched/prio.h \ - include/linux/capability.h \ - $(wildcard include/config/multiuser.h) \ - include/uapi/linux/capability.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/cputime.h \ - arch/x86/include/generated/asm/cputime.h \ - include/asm-generic/cputime.h \ - include/asm-generic/cputime_jiffies.h \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/signal.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/pid.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/rculist.h \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - $(wildcard include/config/security.h) \ - include/linux/key.h \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/selinux.h \ - $(wildcard include/config/security/selinux.h) \ - include/uapi/linux/magic.h \ - include/linux/cgroup-defs.h \ - include/uapi/linux/limits.h \ - include/linux/idr.h \ - include/linux/percpu-refcount.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcu_sync.h \ - include/linux/cgroup_subsys.h \ - $(wildcard include/config/cgroup/cpuacct.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/cgroup/device.h) \ - $(wildcard include/config/cgroup/freezer.h) \ - $(wildcard include/config/cgroup/net/classid.h) \ - $(wildcard include/config/cgroup/perf.h) \ - $(wildcard include/config/cgroup/net/prio.h) \ - $(wildcard include/config/cgroup/hugetlb.h) \ - $(wildcard include/config/cgroup/pids.h) \ - $(wildcard include/config/cgroup/debug.h) \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.h \ - include/linux/module.h \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/kmod.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/kobject_ns.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/cdev.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/klist.h \ - include/linux/pinctrl/devinfo.h \ - include/linux/pinctrl/consumer.h \ - include/linux/seq_file.h \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/radix-tree.h \ - include/linux/semaphore.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/blk_types.h \ - $(wildcard include/config/blk/dev/integrity.h) \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/x86/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/linux/pinctrl/pinctrl-state.h \ - include/linux/ratelimit.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - include/linux/pm_wakeup.h \ - include/linux/dma-mapping.h \ - $(wildcard include/config/has/dma.h) \ - $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \ - $(wildcard include/config/have/dma/attrs.h) \ - $(wildcard include/config/need/dma/map/state.h) \ - include/linux/sizes.h \ - include/linux/dma-attrs.h \ - include/linux/dma-direction.h \ - arch/x86/include/asm/dma-mapping.h \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/x86/dma/remap.h) \ - include/linux/kmemcheck.h \ - include/linux/dma-debug.h \ - $(wildcard include/config/dma/api/debug.h) \ - arch/x86/include/asm/swiotlb.h \ - $(wildcard include/config/swiotlb.h) \ - include/linux/swiotlb.h \ - include/linux/dma-contiguous.h \ - include/asm-generic/dma-mapping-common.h \ - include/asm-generic/dma-coherent.h \ - $(wildcard include/config/have/generic/dma/coherent.h) \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/fb.h \ - $(wildcard include/config/fb/deferred/io.h) \ - $(wildcard include/config/fb/tileblitting.h) \ - $(wildcard include/config/fb/backlight.h) \ - $(wildcard include/config/fb/foreign/endian.h) \ - $(wildcard include/config/fb/both/endian.h) \ - $(wildcard include/config/fb/big/endian.h) \ - $(wildcard include/config/fb/little/endian.h) \ - include/linux/kgdb.h \ - $(wildcard include/config/have/arch/kgdb.h) \ - $(wildcard include/config/kgdb.h) \ - $(wildcard include/config/serial/kgdb/nmi.h) \ - arch/x86/include/asm/kgdb.h \ - include/uapi/linux/fb.h \ - include/linux/i2c.h \ - $(wildcard include/config/i2c.h) \ - $(wildcard include/config/i2c/slave.h) \ - $(wildcard include/config/i2c/boardinfo.h) \ - $(wildcard include/config/i2c/mux.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/of.h \ - $(wildcard include/config/sparc.h) \ - $(wildcard include/config/of/dynamic.h) \ - $(wildcard include/config/attach/node.h) \ - $(wildcard include/config/detach/node.h) \ - $(wildcard include/config/add/property.h) \ - $(wildcard include/config/remove/property.h) \ - $(wildcard include/config/update/property.h) \ - $(wildcard include/config/of/numa.h) \ - $(wildcard include/config/no/change.h) \ - $(wildcard include/config/change/add.h) \ - $(wildcard include/config/change/remove.h) \ - $(wildcard include/config/of/resolve.h) \ - $(wildcard include/config/of/overlay.h) \ - include/linux/property.h \ - include/linux/fwnode.h \ - include/uapi/linux/i2c.h \ - include/linux/backlight.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/kmemleak.h \ - $(wildcard include/config/debug/kmemleak.h) \ - include/linux/kasan.h \ - include/linux/io.h \ - include/linux/poll.h \ - include/uapi/linux/poll.h \ - arch/x86/include/uapi/asm/poll.h \ - include/uapi/asm-generic/poll.h \ - include/linux/pci.h \ - $(wildcard include/config/pci/iov.h) \ - $(wildcard include/config/pcieaspm.h) \ - $(wildcard include/config/pci/ats.h) \ - $(wildcard include/config/pci/domains/generic.h) \ - $(wildcard include/config/pci/bus/addr/t/64bit.h) \ - $(wildcard include/config/pcieportbus.h) \ - $(wildcard include/config/pcieaer.h) \ - $(wildcard include/config/pcie/ecrc.h) \ - $(wildcard include/config/ht/irq.h) \ - $(wildcard include/config/pci/domains.h) \ - $(wildcard include/config/pci/quirks.h) \ - $(wildcard include/config/hibernate/callbacks.h) \ - $(wildcard include/config/acpi/mcfg.h) \ - $(wildcard include/config/hotplug/pci.h) \ - $(wildcard include/config/eeh.h) \ - include/linux/resource_ext.h \ - include/uapi/linux/pci.h \ - include/uapi/linux/pci_regs.h \ - include/linux/pci_ids.h \ - include/linux/pci-dma.h \ - include/linux/dmapool.h \ - arch/x86/include/asm/pci.h \ - $(wildcard include/config/pci/msi/irq/domain.h) \ - arch/x86/include/asm/pci_64.h \ - $(wildcard include/config/calgary/iommu.h) \ - include/asm-generic/pci-dma-compat.h \ - include/asm-generic/pci.h \ - include/linux/vmalloc.h \ - include/linux/aio.h \ - include/uapi/linux/aio_abi.h \ - include/linux/splice.h \ - include/linux/pipe_fs_i.h \ - include/generated/uapi/linux/version.h \ - include/linux/uio.h \ - include/uapi/linux/uio.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.h \ - $(wildcard include/config/block/id.h) \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.h \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.o): diff --git a/host_software/driver/xdma/.cdev_xvc.o.cmd b/host_software/driver/xdma/.cdev_xvc.o.cmd deleted file mode 100644 index 086690b..0000000 --- a/host_software/driver/xdma/.cdev_xvc.o.cmd +++ /dev/null @@ -1,995 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.cdev_xvc.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DMODULE -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(cdev_xvc)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/.tmp_cdev_xvc.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.o := \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.h \ - include/linux/kernel.h \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - $(wildcard include/config/64bit.h) \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/kasan-checks.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - $(wildcard include/config/smp.h) \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/uaccess.h \ - $(wildcard include/config/preempt/count.h) \ - include/linux/sched.h \ - $(wildcard include/config/no/hz/common.h) \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/lockup/detector.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/sched/smt.h) \ - $(wildcard include/config/sched/mc.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/compat.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/uprobes.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/proc/fs.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/have/copy/thread/tls.h) \ - $(wildcard include/config/debug/stack/usage.h) \ - $(wildcard include/config/preempt.h) \ - include/uapi/linux/sched.h \ - include/linux/sched/prio.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - include/linux/capability.h \ - $(wildcard include/config/multiuser.h) \ - include/uapi/linux/capability.h \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/tracer.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/kmemcheck.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - arch/x86/include/uapi/asm/msr.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/uapi/linux/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/linux/jiffies.h \ - include/generated/timeconst.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/rbtree.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - include/linux/nodemask.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/movable/node.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/hugetlb/page.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - include/linux/osq_lock.h \ - arch/x86/include/asm/rwsem.h \ - include/linux/uprobes.h \ - arch/x86/include/asm/uprobes.h \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/srcu.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/uapi/linux/sysctl.h \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - include/linux/cputime.h \ - arch/x86/include/generated/asm/cputime.h \ - include/asm-generic/cputime.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - include/asm-generic/cputime_jiffies.h \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - $(wildcard include/config/hibernation.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - $(wildcard include/config/memory/hotremove.h) \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/signal.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/pid.h \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/cma.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/gfp.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/rculist.h \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - $(wildcard include/config/security.h) \ - include/linux/key.h \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/selinux.h \ - $(wildcard include/config/security/selinux.h) \ - include/uapi/linux/magic.h \ - include/linux/cgroup-defs.h \ - include/uapi/linux/limits.h \ - include/linux/idr.h \ - include/linux/percpu-refcount.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcu_sync.h \ - include/linux/cgroup_subsys.h \ - $(wildcard include/config/cgroup/cpuacct.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/cgroup/device.h) \ - $(wildcard include/config/cgroup/freezer.h) \ - $(wildcard include/config/cgroup/net/classid.h) \ - $(wildcard include/config/cgroup/perf.h) \ - $(wildcard include/config/cgroup/net/prio.h) \ - $(wildcard include/config/cgroup/hugetlb.h) \ - $(wildcard include/config/cgroup/pids.h) \ - $(wildcard include/config/cgroup/debug.h) \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/x86/intel/usercopy.h) \ - $(wildcard include/config/debug/strict/user/copy/checks.h) \ - arch/x86/include/asm/smap.h \ - $(wildcard include/config/x86/smap.h) \ - arch/x86/include/asm/uaccess_64.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.h \ - include/linux/module.h \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/kmod.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/cdev.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/klist.h \ - include/linux/pinctrl/devinfo.h \ - include/linux/pinctrl/consumer.h \ - include/linux/seq_file.h \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - $(wildcard include/config/migration.h) \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/bit_spinlock.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/shrinker.h \ - include/linux/radix-tree.h \ - include/linux/semaphore.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/blk_types.h \ - $(wildcard include/config/blk/dev/integrity.h) \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/x86/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/linux/pinctrl/pinctrl-state.h \ - include/linux/ratelimit.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - include/linux/pm_wakeup.h \ - include/linux/dma-mapping.h \ - $(wildcard include/config/has/dma.h) \ - $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \ - $(wildcard include/config/have/dma/attrs.h) \ - $(wildcard include/config/need/dma/map/state.h) \ - include/linux/sizes.h \ - include/linux/dma-attrs.h \ - include/linux/dma-direction.h \ - include/linux/scatterlist.h \ - $(wildcard include/config/debug/sg.h) \ - $(wildcard include/config/need/sg/dma/length.h) \ - include/linux/mm.h \ - $(wildcard include/config/ppc.h) \ - $(wildcard include/config/parisc.h) \ - $(wildcard include/config/metag.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/debug/vm/rb.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hugetlbfs.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/page_ext.h \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/page/owner.h) \ - include/linux/stacktrace.h \ - $(wildcard include/config/stacktrace.h) \ - $(wildcard include/config/user/stacktrace/support.h) \ - arch/x86/include/asm/pgtable.h \ - $(wildcard include/config/debug/wx.h) \ - $(wildcard include/config/have/arch/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64.h \ - arch/x86/include/asm/pgtable-invert.h \ - include/asm-generic/pgtable.h \ - $(wildcard include/config/have/arch/huge/vmap.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/huge_mm.h \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - $(wildcard include/config/debug/tlbflush.h) \ - $(wildcard include/config/debug/vm/vmacache.h) \ - include/linux/vm_event_item.h \ - $(wildcard include/config/memory/balloon.h) \ - $(wildcard include/config/balloon/compaction.h) \ - arch/x86/include/asm/dma-mapping.h \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/x86/dma/remap.h) \ - include/linux/kmemcheck.h \ - include/linux/dma-debug.h \ - $(wildcard include/config/dma/api/debug.h) \ - arch/x86/include/asm/swiotlb.h \ - $(wildcard include/config/swiotlb.h) \ - include/linux/swiotlb.h \ - include/linux/dma-contiguous.h \ - include/asm-generic/dma-mapping-common.h \ - include/asm-generic/dma-coherent.h \ - $(wildcard include/config/have/generic/dma/coherent.h) \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/fb.h \ - $(wildcard include/config/fb/deferred/io.h) \ - $(wildcard include/config/fb/tileblitting.h) \ - $(wildcard include/config/fb/backlight.h) \ - $(wildcard include/config/fb/foreign/endian.h) \ - $(wildcard include/config/fb/both/endian.h) \ - $(wildcard include/config/fb/big/endian.h) \ - $(wildcard include/config/fb/little/endian.h) \ - include/linux/kgdb.h \ - $(wildcard include/config/have/arch/kgdb.h) \ - $(wildcard include/config/kgdb.h) \ - $(wildcard include/config/serial/kgdb/nmi.h) \ - arch/x86/include/asm/kgdb.h \ - include/uapi/linux/fb.h \ - include/linux/i2c.h \ - $(wildcard include/config/i2c.h) \ - $(wildcard include/config/i2c/slave.h) \ - $(wildcard include/config/i2c/boardinfo.h) \ - $(wildcard include/config/i2c/mux.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/of.h \ - $(wildcard include/config/sparc.h) \ - $(wildcard include/config/of/dynamic.h) \ - $(wildcard include/config/attach/node.h) \ - $(wildcard include/config/detach/node.h) \ - $(wildcard include/config/add/property.h) \ - $(wildcard include/config/remove/property.h) \ - $(wildcard include/config/update/property.h) \ - $(wildcard include/config/of/numa.h) \ - $(wildcard include/config/no/change.h) \ - $(wildcard include/config/change/add.h) \ - $(wildcard include/config/change/remove.h) \ - $(wildcard include/config/of/resolve.h) \ - $(wildcard include/config/of/overlay.h) \ - include/linux/property.h \ - include/linux/fwnode.h \ - include/uapi/linux/i2c.h \ - include/linux/backlight.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/kmemleak.h \ - $(wildcard include/config/debug/kmemleak.h) \ - include/linux/kasan.h \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - include/linux/vtime.h \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - arch/x86/include/asm/irq.h \ - include/linux/io.h \ - include/linux/poll.h \ - include/uapi/linux/poll.h \ - arch/x86/include/uapi/asm/poll.h \ - include/uapi/asm-generic/poll.h \ - include/linux/pci.h \ - $(wildcard include/config/pci/iov.h) \ - $(wildcard include/config/pcieaspm.h) \ - $(wildcard include/config/pci/ats.h) \ - $(wildcard include/config/pci/domains/generic.h) \ - $(wildcard include/config/pci/bus/addr/t/64bit.h) \ - $(wildcard include/config/pcieportbus.h) \ - $(wildcard include/config/pcieaer.h) \ - $(wildcard include/config/pcie/ecrc.h) \ - $(wildcard include/config/ht/irq.h) \ - $(wildcard include/config/pci/domains.h) \ - $(wildcard include/config/pci/quirks.h) \ - $(wildcard include/config/hibernate/callbacks.h) \ - $(wildcard include/config/acpi/mcfg.h) \ - $(wildcard include/config/hotplug/pci.h) \ - $(wildcard include/config/eeh.h) \ - include/linux/resource_ext.h \ - include/uapi/linux/pci.h \ - include/uapi/linux/pci_regs.h \ - include/linux/pci_ids.h \ - include/linux/pci-dma.h \ - include/linux/dmapool.h \ - arch/x86/include/asm/pci.h \ - $(wildcard include/config/pci/msi/irq/domain.h) \ - arch/x86/include/asm/pci_64.h \ - $(wildcard include/config/calgary/iommu.h) \ - include/asm-generic/pci-dma-compat.h \ - include/asm-generic/pci.h \ - include/linux/vmalloc.h \ - include/linux/aio.h \ - include/uapi/linux/aio_abi.h \ - include/linux/splice.h \ - include/linux/pipe_fs_i.h \ - include/generated/uapi/linux/version.h \ - include/linux/uio.h \ - include/uapi/linux/uio.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.h \ - $(wildcard include/config/block/id.h) \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.h \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.o): diff --git a/host_software/driver/xdma/.libxdma.o.cmd b/host_software/driver/xdma/.libxdma.o.cmd deleted file mode 100644 index eef4a9b..0000000 --- a/host_software/driver/xdma/.libxdma.o.cmd +++ /dev/null @@ -1,944 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.libxdma.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DMODULE -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(libxdma)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/.tmp_libxdma.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o := \ - $(wildcard include/config/block/id.h) \ - $(wildcard include/config/bar/only//.h) \ - include/linux/module.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/unused/symbols.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/smp.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - $(wildcard include/config/64bit.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/kasan-checks.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modversions.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - $(wildcard include/config/preempt.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/compat.h) \ - include/linux/bug.h \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/kmemcheck.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/proc/fs.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - arch/x86/include/uapi/asm/msr.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/gfp.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/nodemask.h \ - $(wildcard include/config/movable/node.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - include/linux/mutex.h \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/osq_lock.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - arch/x86/include/asm/rwsem.h \ - include/linux/srcu.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/jiffies.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/linux/rbtree.h \ - include/uapi/linux/sysctl.h \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - $(wildcard include/config/hibernation.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/uapi/asm/auxvec.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/idr.h \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/mm.h \ - $(wildcard include/config/ppc.h) \ - $(wildcard include/config/parisc.h) \ - $(wildcard include/config/metag.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/debug/vm/rb.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hugetlbfs.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/bit_spinlock.h \ - include/linux/shrinker.h \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/page_ext.h \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/page/owner.h) \ - include/linux/stacktrace.h \ - $(wildcard include/config/stacktrace.h) \ - $(wildcard include/config/user/stacktrace/support.h) \ - arch/x86/include/asm/pgtable.h \ - $(wildcard include/config/debug/wx.h) \ - $(wildcard include/config/have/arch/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64.h \ - arch/x86/include/asm/pgtable-invert.h \ - include/asm-generic/pgtable.h \ - $(wildcard include/config/have/arch/huge/vmap.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/huge_mm.h \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - $(wildcard include/config/debug/tlbflush.h) \ - $(wildcard include/config/debug/vm/vmacache.h) \ - include/linux/vm_event_item.h \ - $(wildcard include/config/migration.h) \ - $(wildcard include/config/memory/balloon.h) \ - $(wildcard include/config/balloon/compaction.h) \ - include/linux/sched.h \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/lockup/detector.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/sched/mc.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - $(wildcard include/config/have/copy/thread/tls.h) \ - $(wildcard include/config/debug/stack/usage.h) \ - include/uapi/linux/sched.h \ - include/linux/sched/prio.h \ - include/linux/capability.h \ - include/uapi/linux/capability.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/cputime.h \ - arch/x86/include/generated/asm/cputime.h \ - include/asm-generic/cputime.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - include/asm-generic/cputime_jiffies.h \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/signal.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/pid.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/rculist.h \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - $(wildcard include/config/security.h) \ - include/linux/key.h \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/selinux.h \ - $(wildcard include/config/security/selinux.h) \ - include/uapi/linux/magic.h \ - include/linux/cgroup-defs.h \ - include/uapi/linux/limits.h \ - include/linux/percpu-refcount.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcu_sync.h \ - include/linux/cgroup_subsys.h \ - $(wildcard include/config/cgroup/cpuacct.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/cgroup/device.h) \ - $(wildcard include/config/cgroup/freezer.h) \ - $(wildcard include/config/cgroup/net/classid.h) \ - $(wildcard include/config/cgroup/perf.h) \ - $(wildcard include/config/cgroup/net/prio.h) \ - $(wildcard include/config/cgroup/hugetlb.h) \ - $(wildcard include/config/cgroup/pids.h) \ - $(wildcard include/config/cgroup/debug.h) \ - include/linux/vmalloc.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.h \ - include/generated/uapi/linux/version.h \ - include/linux/uaccess.h \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/x86/intel/usercopy.h) \ - $(wildcard include/config/debug/strict/user/copy/checks.h) \ - arch/x86/include/asm/smap.h \ - $(wildcard include/config/x86/smap.h) \ - arch/x86/include/asm/uaccess_64.h \ - include/linux/dma-mapping.h \ - $(wildcard include/config/has/dma.h) \ - $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \ - $(wildcard include/config/have/dma/attrs.h) \ - $(wildcard include/config/need/dma/map/state.h) \ - include/linux/sizes.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/klist.h \ - include/linux/pinctrl/devinfo.h \ - include/linux/pinctrl/consumer.h \ - include/linux/seq_file.h \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/radix-tree.h \ - include/linux/semaphore.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/blk_types.h \ - $(wildcard include/config/blk/dev/integrity.h) \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/x86/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/linux/pinctrl/pinctrl-state.h \ - include/linux/ratelimit.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - include/linux/pm_wakeup.h \ - include/linux/dma-attrs.h \ - include/linux/dma-direction.h \ - include/linux/scatterlist.h \ - $(wildcard include/config/debug/sg.h) \ - $(wildcard include/config/need/sg/dma/length.h) \ - arch/x86/include/asm/dma-mapping.h \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/x86/dma/remap.h) \ - include/linux/kmemcheck.h \ - include/linux/dma-debug.h \ - $(wildcard include/config/dma/api/debug.h) \ - arch/x86/include/asm/swiotlb.h \ - $(wildcard include/config/swiotlb.h) \ - include/linux/swiotlb.h \ - include/linux/dma-contiguous.h \ - include/asm-generic/dma-mapping-common.h \ - include/asm-generic/dma-coherent.h \ - $(wildcard include/config/have/generic/dma/coherent.h) \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - include/linux/vtime.h \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - arch/x86/include/asm/irq.h \ - include/linux/pci.h \ - $(wildcard include/config/pci/iov.h) \ - $(wildcard include/config/pcieaspm.h) \ - $(wildcard include/config/pci/ats.h) \ - $(wildcard include/config/pci/domains/generic.h) \ - $(wildcard include/config/pci/bus/addr/t/64bit.h) \ - $(wildcard include/config/pcieportbus.h) \ - $(wildcard include/config/pcieaer.h) \ - $(wildcard include/config/pcie/ecrc.h) \ - $(wildcard include/config/ht/irq.h) \ - $(wildcard include/config/pci/domains.h) \ - $(wildcard include/config/pci/quirks.h) \ - $(wildcard include/config/hibernate/callbacks.h) \ - $(wildcard include/config/acpi/mcfg.h) \ - $(wildcard include/config/hotplug/pci.h) \ - $(wildcard include/config/eeh.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/io.h \ - include/linux/resource_ext.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/kmemleak.h \ - $(wildcard include/config/debug/kmemleak.h) \ - include/linux/kasan.h \ - include/uapi/linux/pci.h \ - include/uapi/linux/pci_regs.h \ - include/linux/pci_ids.h \ - include/linux/pci-dma.h \ - include/linux/dmapool.h \ - arch/x86/include/asm/pci.h \ - $(wildcard include/config/pci/msi/irq/domain.h) \ - arch/x86/include/asm/pci_64.h \ - $(wildcard include/config/calgary/iommu.h) \ - include/asm-generic/pci-dma-compat.h \ - include/asm-generic/pci.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma_api.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.h \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o): diff --git a/host_software/driver/xdma/.tmp_versions/xdma.mod b/host_software/driver/xdma/.tmp_versions/xdma.mod deleted file mode 100644 index d9af918..0000000 --- a/host_software/driver/xdma/.tmp_versions/xdma.mod +++ /dev/null @@ -1,2 +0,0 @@ -/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.ko -/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.o diff --git a/host_software/driver/xdma/.xdma.ko.cmd b/host_software/driver/xdma/.xdma.ko.cmd deleted file mode 100644 index 76aa48b..0000000 --- a/host_software/driver/xdma/.xdma.ko.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.ko := ld -r -m elf_x86_64 -z max-page-size=0x200000 -T ./scripts/module-common.lds --build-id -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.ko /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.o diff --git a/host_software/driver/xdma/.xdma.mod.o.cmd b/host_software/driver/xdma/.xdma.mod.o.cmd deleted file mode 100644 index c2dfef0..0000000 --- a/host_software/driver/xdma/.xdma.mod.o.cmd +++ /dev/null @@ -1,620 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.xdma.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(xdma.mod)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -DMODULE -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.o := \ - $(wildcard include/config/module/unload.h) \ - include/linux/module.h \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/sysfs.h) \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/unused/symbols.h) \ - $(wildcard include/config/generic/bug.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/smp.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - $(wildcard include/config/64bit.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/kasan-checks.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modversions.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - $(wildcard include/config/preempt.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/compat.h) \ - include/linux/bug.h \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/kmemcheck.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/proc/fs.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - arch/x86/include/uapi/asm/msr.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/linux/uidgid.h \ - $(wildcard include/config/multiuser.h) \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/linux/kmod.h \ - include/linux/gfp.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/nodemask.h \ - $(wildcard include/config/movable/node.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - include/linux/mutex.h \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/osq_lock.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - arch/x86/include/asm/rwsem.h \ - include/linux/srcu.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/jiffies.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/linux/rbtree.h \ - include/uapi/linux/sysctl.h \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - $(wildcard include/config/hibernation.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/uapi/asm/auxvec.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/idr.h \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/vermagic.h \ - include/generated/utsrelease.h \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.mod.o): diff --git a/host_software/driver/xdma/.xdma.o.cmd b/host_software/driver/xdma/.xdma.o.cmd deleted file mode 100644 index 5d74978..0000000 --- a/host_software/driver/xdma/.xdma.o.cmd +++ /dev/null @@ -1 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.o := ld -m elf_x86_64 -z max-page-size=0x200000 -r -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_ctrl.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_events.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_sgdma.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_xvc.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/cdev_bypass.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.o diff --git a/host_software/driver/xdma/.xdma_cdev.o.cmd b/host_software/driver/xdma/.xdma_cdev.o.cmd deleted file mode 100644 index d9076c8..0000000 --- a/host_software/driver/xdma/.xdma_cdev.o.cmd +++ /dev/null @@ -1,994 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.xdma_cdev.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DMODULE -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(xdma_cdev)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/.tmp_xdma_cdev.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.o := \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.h \ - include/linux/kernel.h \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/linux/linkage.h \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - $(wildcard include/config/64bit.h) \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/kasan-checks.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - $(wildcard include/config/smp.h) \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/uaccess.h \ - $(wildcard include/config/preempt/count.h) \ - include/linux/sched.h \ - $(wildcard include/config/no/hz/common.h) \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/lockup/detector.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/sched/smt.h) \ - $(wildcard include/config/sched/mc.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/compat.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/uprobes.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/proc/fs.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/have/copy/thread/tls.h) \ - $(wildcard include/config/debug/stack/usage.h) \ - $(wildcard include/config/preempt.h) \ - include/uapi/linux/sched.h \ - include/linux/sched/prio.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - include/linux/capability.h \ - $(wildcard include/config/multiuser.h) \ - include/uapi/linux/capability.h \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/seqlock.h \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/tracer.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/debug/virtual.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/sparsemem.h) \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - $(wildcard include/config/kmemcheck.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - arch/x86/include/uapi/asm/msr.h \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/uapi/linux/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/linux/jiffies.h \ - include/generated/timeconst.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/rbtree.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - include/linux/nodemask.h \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/movable/node.h) \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/hugetlb/page.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - include/linux/osq_lock.h \ - arch/x86/include/asm/rwsem.h \ - include/linux/uprobes.h \ - arch/x86/include/asm/uprobes.h \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/srcu.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - include/linux/sysctl.h \ - $(wildcard include/config/sysctl.h) \ - include/uapi/linux/sysctl.h \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - include/linux/cputime.h \ - arch/x86/include/generated/asm/cputime.h \ - include/asm-generic/cputime.h \ - $(wildcard include/config/virt/cpu/accounting.h) \ - include/asm-generic/cputime_jiffies.h \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - $(wildcard include/config/hibernation.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - $(wildcard include/config/memory/hotremove.h) \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - $(wildcard include/config/x86.h) \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/signal.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/pid.h \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/cma.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/gfp.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/rculist.h \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - $(wildcard include/config/security.h) \ - include/linux/key.h \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/selinux.h \ - $(wildcard include/config/security/selinux.h) \ - include/uapi/linux/magic.h \ - include/linux/cgroup-defs.h \ - include/uapi/linux/limits.h \ - include/linux/idr.h \ - include/linux/percpu-refcount.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcu_sync.h \ - include/linux/cgroup_subsys.h \ - $(wildcard include/config/cgroup/cpuacct.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/cgroup/device.h) \ - $(wildcard include/config/cgroup/freezer.h) \ - $(wildcard include/config/cgroup/net/classid.h) \ - $(wildcard include/config/cgroup/perf.h) \ - $(wildcard include/config/cgroup/net/prio.h) \ - $(wildcard include/config/cgroup/hugetlb.h) \ - $(wildcard include/config/cgroup/pids.h) \ - $(wildcard include/config/cgroup/debug.h) \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/x86/intel/usercopy.h) \ - $(wildcard include/config/debug/strict/user/copy/checks.h) \ - arch/x86/include/asm/smap.h \ - $(wildcard include/config/x86/smap.h) \ - arch/x86/include/asm/uaccess_64.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.h \ - include/linux/module.h \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/kmod.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/kobject_ns.h \ - include/linux/kref.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/cdev.h \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/klist.h \ - include/linux/pinctrl/devinfo.h \ - include/linux/pinctrl/consumer.h \ - include/linux/seq_file.h \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - $(wildcard include/config/migration.h) \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/bit_spinlock.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/shrinker.h \ - include/linux/radix-tree.h \ - include/linux/semaphore.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/blk_types.h \ - $(wildcard include/config/blk/dev/integrity.h) \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/x86/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/linux/pinctrl/pinctrl-state.h \ - include/linux/ratelimit.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - include/linux/pm_wakeup.h \ - include/linux/dma-mapping.h \ - $(wildcard include/config/has/dma.h) \ - $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \ - $(wildcard include/config/have/dma/attrs.h) \ - $(wildcard include/config/need/dma/map/state.h) \ - include/linux/sizes.h \ - include/linux/dma-attrs.h \ - include/linux/dma-direction.h \ - include/linux/scatterlist.h \ - $(wildcard include/config/debug/sg.h) \ - $(wildcard include/config/need/sg/dma/length.h) \ - include/linux/mm.h \ - $(wildcard include/config/ppc.h) \ - $(wildcard include/config/parisc.h) \ - $(wildcard include/config/metag.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/debug/vm/rb.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hugetlbfs.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/page_ext.h \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/page/owner.h) \ - include/linux/stacktrace.h \ - $(wildcard include/config/stacktrace.h) \ - $(wildcard include/config/user/stacktrace/support.h) \ - arch/x86/include/asm/pgtable.h \ - $(wildcard include/config/debug/wx.h) \ - $(wildcard include/config/have/arch/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64.h \ - arch/x86/include/asm/pgtable-invert.h \ - include/asm-generic/pgtable.h \ - $(wildcard include/config/have/arch/huge/vmap.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/huge_mm.h \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - $(wildcard include/config/debug/tlbflush.h) \ - $(wildcard include/config/debug/vm/vmacache.h) \ - include/linux/vm_event_item.h \ - $(wildcard include/config/memory/balloon.h) \ - $(wildcard include/config/balloon/compaction.h) \ - arch/x86/include/asm/dma-mapping.h \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/x86/dma/remap.h) \ - include/linux/kmemcheck.h \ - include/linux/dma-debug.h \ - $(wildcard include/config/dma/api/debug.h) \ - arch/x86/include/asm/swiotlb.h \ - $(wildcard include/config/swiotlb.h) \ - include/linux/swiotlb.h \ - include/linux/dma-contiguous.h \ - include/asm-generic/dma-mapping-common.h \ - include/asm-generic/dma-coherent.h \ - $(wildcard include/config/have/generic/dma/coherent.h) \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/fb.h \ - $(wildcard include/config/fb/deferred/io.h) \ - $(wildcard include/config/fb/tileblitting.h) \ - $(wildcard include/config/fb/backlight.h) \ - $(wildcard include/config/fb/foreign/endian.h) \ - $(wildcard include/config/fb/both/endian.h) \ - $(wildcard include/config/fb/big/endian.h) \ - $(wildcard include/config/fb/little/endian.h) \ - include/linux/kgdb.h \ - $(wildcard include/config/have/arch/kgdb.h) \ - $(wildcard include/config/kgdb.h) \ - $(wildcard include/config/serial/kgdb/nmi.h) \ - arch/x86/include/asm/kgdb.h \ - include/uapi/linux/fb.h \ - include/linux/i2c.h \ - $(wildcard include/config/i2c.h) \ - $(wildcard include/config/i2c/slave.h) \ - $(wildcard include/config/i2c/boardinfo.h) \ - $(wildcard include/config/i2c/mux.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/of.h \ - $(wildcard include/config/sparc.h) \ - $(wildcard include/config/of/dynamic.h) \ - $(wildcard include/config/attach/node.h) \ - $(wildcard include/config/detach/node.h) \ - $(wildcard include/config/add/property.h) \ - $(wildcard include/config/remove/property.h) \ - $(wildcard include/config/update/property.h) \ - $(wildcard include/config/of/numa.h) \ - $(wildcard include/config/no/change.h) \ - $(wildcard include/config/change/add.h) \ - $(wildcard include/config/change/remove.h) \ - $(wildcard include/config/of/resolve.h) \ - $(wildcard include/config/of/overlay.h) \ - include/linux/property.h \ - include/linux/fwnode.h \ - include/uapi/linux/i2c.h \ - include/linux/backlight.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/kmemleak.h \ - $(wildcard include/config/debug/kmemleak.h) \ - include/linux/kasan.h \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - include/linux/vtime.h \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - arch/x86/include/asm/irq.h \ - include/linux/io.h \ - include/linux/poll.h \ - include/uapi/linux/poll.h \ - arch/x86/include/uapi/asm/poll.h \ - include/uapi/asm-generic/poll.h \ - include/linux/pci.h \ - $(wildcard include/config/pci/iov.h) \ - $(wildcard include/config/pcieaspm.h) \ - $(wildcard include/config/pci/ats.h) \ - $(wildcard include/config/pci/domains/generic.h) \ - $(wildcard include/config/pci/bus/addr/t/64bit.h) \ - $(wildcard include/config/pcieportbus.h) \ - $(wildcard include/config/pcieaer.h) \ - $(wildcard include/config/pcie/ecrc.h) \ - $(wildcard include/config/ht/irq.h) \ - $(wildcard include/config/pci/domains.h) \ - $(wildcard include/config/pci/quirks.h) \ - $(wildcard include/config/hibernate/callbacks.h) \ - $(wildcard include/config/acpi/mcfg.h) \ - $(wildcard include/config/hotplug/pci.h) \ - $(wildcard include/config/eeh.h) \ - include/linux/resource_ext.h \ - include/uapi/linux/pci.h \ - include/uapi/linux/pci_regs.h \ - include/linux/pci_ids.h \ - include/linux/pci-dma.h \ - include/linux/dmapool.h \ - arch/x86/include/asm/pci.h \ - $(wildcard include/config/pci/msi/irq/domain.h) \ - arch/x86/include/asm/pci_64.h \ - $(wildcard include/config/calgary/iommu.h) \ - include/asm-generic/pci-dma-compat.h \ - include/asm-generic/pci.h \ - include/linux/vmalloc.h \ - include/linux/aio.h \ - include/uapi/linux/aio_abi.h \ - include/linux/splice.h \ - include/linux/pipe_fs_i.h \ - include/generated/uapi/linux/version.h \ - include/linux/uio.h \ - include/uapi/linux/uio.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.h \ - $(wildcard include/config/block/id.h) \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.o): diff --git a/host_software/driver/xdma/.xdma_mod.o.cmd b/host_software/driver/xdma/.xdma_mod.o.cmd deleted file mode 100644 index 49e42a3..0000000 --- a/host_software/driver/xdma/.xdma_mod.o.cmd +++ /dev/null @@ -1,997 +0,0 @@ -cmd_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.o := gcc -Wp,-MD,/home/wangxuan/pcie_xdma_host_software/driver/xdma/.xdma_mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -Wno-array-bounds -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DMODULE -D"KBUILD_STR(s)=$(pound)s" -D"KBUILD_BASENAME=KBUILD_STR(xdma_mod)" -D"KBUILD_MODNAME=KBUILD_STR(xdma)" -c -o /home/wangxuan/pcie_xdma_host_software/driver/xdma/.tmp_xdma_mod.o /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.c - -source_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.o := /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.c - -deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.o := \ - include/uapi/linux/ioctl.h \ - arch/x86/include/uapi/asm/ioctl.h \ - include/asm-generic/ioctl.h \ - include/uapi/asm-generic/ioctl.h \ - include/linux/types.h \ - $(wildcard include/config/have/uid16.h) \ - $(wildcard include/config/uid16.h) \ - $(wildcard include/config/lbdaf.h) \ - $(wildcard include/config/arch/dma/addr/t/64bit.h) \ - $(wildcard include/config/phys/addr/t/64bit.h) \ - $(wildcard include/config/64bit.h) \ - include/uapi/linux/types.h \ - arch/x86/include/uapi/asm/types.h \ - include/uapi/asm-generic/types.h \ - include/asm-generic/int-ll64.h \ - include/uapi/asm-generic/int-ll64.h \ - arch/x86/include/uapi/asm/bitsperlong.h \ - include/asm-generic/bitsperlong.h \ - include/uapi/asm-generic/bitsperlong.h \ - include/uapi/linux/posix_types.h \ - include/linux/stddef.h \ - include/uapi/linux/stddef.h \ - include/linux/compiler.h \ - $(wildcard include/config/sparse/rcu/pointer.h) \ - $(wildcard include/config/trace/branch/profiling.h) \ - $(wildcard include/config/profile/all/branches.h) \ - $(wildcard include/config/kasan.h) \ - $(wildcard include/config/enable/must/check.h) \ - $(wildcard include/config/enable/warn/deprecated.h) \ - $(wildcard include/config/kprobes.h) \ - include/linux/compiler-gcc.h \ - $(wildcard include/config/arch/supports/optimized/inlining.h) \ - $(wildcard include/config/optimize/inlining.h) \ - $(wildcard include/config/arm64.h) \ - $(wildcard include/config/gcov/kernel.h) \ - $(wildcard include/config/arch/use/builtin/bswap.h) \ - include/linux/kasan-checks.h \ - arch/x86/include/asm/posix_types.h \ - $(wildcard include/config/x86/32.h) \ - arch/x86/include/uapi/asm/posix_types_64.h \ - include/uapi/asm-generic/posix_types.h \ - include/linux/errno.h \ - include/uapi/linux/errno.h \ - arch/x86/include/uapi/asm/errno.h \ - include/uapi/asm-generic/errno.h \ - include/uapi/asm-generic/errno-base.h \ - include/linux/aer.h \ - $(wildcard include/config/pcieaer.h) \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma_api.h \ - include/linux/scatterlist.h \ - $(wildcard include/config/debug/sg.h) \ - $(wildcard include/config/need/sg/dma/length.h) \ - include/linux/string.h \ - $(wildcard include/config/binary/printf.h) \ - /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ - include/uapi/linux/string.h \ - arch/x86/include/asm/string.h \ - arch/x86/include/asm/string_64.h \ - $(wildcard include/config/kmemcheck.h) \ - include/linux/bug.h \ - $(wildcard include/config/generic/bug.h) \ - arch/x86/include/asm/bug.h \ - $(wildcard include/config/debug/bugverbose.h) \ - include/asm-generic/bug.h \ - $(wildcard include/config/bug.h) \ - $(wildcard include/config/generic/bug/relative/pointers.h) \ - $(wildcard include/config/smp.h) \ - include/linux/kernel.h \ - $(wildcard include/config/preempt/voluntary.h) \ - $(wildcard include/config/debug/atomic/sleep.h) \ - $(wildcard include/config/mmu.h) \ - $(wildcard include/config/prove/locking.h) \ - $(wildcard include/config/panic/timeout.h) \ - $(wildcard include/config/tracing.h) \ - $(wildcard include/config/ftrace/mcount/record.h) \ - include/linux/linkage.h \ - include/linux/stringify.h \ - include/linux/export.h \ - $(wildcard include/config/have/underscore/symbol/prefix.h) \ - $(wildcard include/config/modules.h) \ - $(wildcard include/config/modversions.h) \ - $(wildcard include/config/unused/symbols.h) \ - arch/x86/include/asm/linkage.h \ - $(wildcard include/config/x86/64.h) \ - $(wildcard include/config/x86/alignment/16.h) \ - include/linux/bitops.h \ - include/linux/bits.h \ - arch/x86/include/asm/bitops.h \ - $(wildcard include/config/x86/cmov.h) \ - arch/x86/include/asm/alternative.h \ - arch/x86/include/asm/asm.h \ - arch/x86/include/asm/rmwcc.h \ - arch/x86/include/asm/barrier.h \ - $(wildcard include/config/x86/ppro/fence.h) \ - arch/x86/include/asm/nops.h \ - $(wildcard include/config/mk7.h) \ - $(wildcard include/config/x86/p6/nop.h) \ - include/asm-generic/barrier.h \ - include/asm-generic/bitops/find.h \ - $(wildcard include/config/generic/find/first/bit.h) \ - include/asm-generic/bitops/sched.h \ - arch/x86/include/asm/arch_hweight.h \ - arch/x86/include/asm/cpufeatures.h \ - $(wildcard include/config/page/table/isolation.h) \ - arch/x86/include/asm/required-features.h \ - $(wildcard include/config/x86/minimum/cpu/family.h) \ - $(wildcard include/config/math/emulation.h) \ - $(wildcard include/config/x86/pae.h) \ - $(wildcard include/config/x86/cmpxchg64.h) \ - $(wildcard include/config/x86/use/3dnow.h) \ - $(wildcard include/config/matom.h) \ - $(wildcard include/config/paravirt.h) \ - arch/x86/include/asm/disabled-features.h \ - $(wildcard include/config/x86/intel/mpx.h) \ - $(wildcard include/config/x86/intel/memory/protection/keys.h) \ - include/asm-generic/bitops/const_hweight.h \ - include/asm-generic/bitops/le.h \ - arch/x86/include/uapi/asm/byteorder.h \ - include/linux/byteorder/little_endian.h \ - include/uapi/linux/byteorder/little_endian.h \ - include/linux/swab.h \ - include/uapi/linux/swab.h \ - arch/x86/include/uapi/asm/swab.h \ - include/linux/byteorder/generic.h \ - include/asm-generic/bitops/ext2-atomic-setbit.h \ - include/linux/log2.h \ - $(wildcard include/config/arch/has/ilog2/u32.h) \ - $(wildcard include/config/arch/has/ilog2/u64.h) \ - include/linux/typecheck.h \ - include/linux/printk.h \ - $(wildcard include/config/message/loglevel/default.h) \ - $(wildcard include/config/early/printk.h) \ - $(wildcard include/config/printk.h) \ - $(wildcard include/config/dynamic/debug.h) \ - include/linux/init.h \ - $(wildcard include/config/broken/rodata.h) \ - $(wildcard include/config/lto.h) \ - include/linux/kern_levels.h \ - include/linux/cache.h \ - $(wildcard include/config/arch/has/cache/line/size.h) \ - include/uapi/linux/kernel.h \ - include/uapi/linux/sysinfo.h \ - arch/x86/include/asm/cache.h \ - $(wildcard include/config/x86/l1/cache/shift.h) \ - $(wildcard include/config/x86/internode/cache/shift.h) \ - $(wildcard include/config/x86/vsmp.h) \ - include/linux/dynamic_debug.h \ - include/linux/mm.h \ - $(wildcard include/config/need/multiple/nodes.h) \ - $(wildcard include/config/sysctl.h) \ - $(wildcard include/config/mem/soft/dirty.h) \ - $(wildcard include/config/x86.h) \ - $(wildcard include/config/ppc.h) \ - $(wildcard include/config/parisc.h) \ - $(wildcard include/config/metag.h) \ - $(wildcard include/config/ia64.h) \ - $(wildcard include/config/stack/growsup.h) \ - $(wildcard include/config/numa.h) \ - $(wildcard include/config/transparent/hugepage.h) \ - $(wildcard include/config/hugetlb/page.h) \ - $(wildcard include/config/sparsemem.h) \ - $(wildcard include/config/sparsemem/vmemmap.h) \ - $(wildcard include/config/numa/balancing.h) \ - $(wildcard include/config/memcg.h) \ - $(wildcard include/config/highmem.h) \ - $(wildcard include/config/shmem.h) \ - $(wildcard include/config/have/memblock/node/map.h) \ - $(wildcard include/config/have/arch/early/pfn/to/nid.h) \ - $(wildcard include/config/debug/vm/rb.h) \ - $(wildcard include/config/proc/fs.h) \ - $(wildcard include/config/debug/pagealloc.h) \ - $(wildcard include/config/hibernation.h) \ - $(wildcard include/config/memory/hotplug.h) \ - $(wildcard include/config/hugetlbfs.h) \ - include/linux/mmdebug.h \ - $(wildcard include/config/debug/vm.h) \ - $(wildcard include/config/debug/virtual.h) \ - include/linux/gfp.h \ - $(wildcard include/config/zone/dma.h) \ - $(wildcard include/config/zone/dma32.h) \ - $(wildcard include/config/zone/device.h) \ - $(wildcard include/config/deferred/struct/page/init.h) \ - $(wildcard include/config/pm/sleep.h) \ - $(wildcard include/config/cma.h) \ - include/linux/mmzone.h \ - $(wildcard include/config/force/max/zoneorder.h) \ - $(wildcard include/config/memory/isolation.h) \ - $(wildcard include/config/compaction.h) \ - $(wildcard include/config/discontigmem.h) \ - $(wildcard include/config/flat/node/mem/map.h) \ - $(wildcard include/config/page/extension.h) \ - $(wildcard include/config/no/bootmem.h) \ - $(wildcard include/config/have/memory/present.h) \ - $(wildcard include/config/have/memoryless/nodes.h) \ - $(wildcard include/config/need/node/memmap/size.h) \ - $(wildcard include/config/flatmem.h) \ - $(wildcard include/config/sparsemem/extreme.h) \ - $(wildcard include/config/have/arch/pfn/valid.h) \ - $(wildcard include/config/holes/in/zone.h) \ - $(wildcard include/config/arch/has/holes/memorymodel.h) \ - include/linux/spinlock.h \ - $(wildcard include/config/debug/spinlock.h) \ - $(wildcard include/config/generic/lockbreak.h) \ - $(wildcard include/config/preempt.h) \ - $(wildcard include/config/debug/lock/alloc.h) \ - include/linux/preempt.h \ - $(wildcard include/config/preempt/count.h) \ - $(wildcard include/config/debug/preempt.h) \ - $(wildcard include/config/preempt/tracer.h) \ - $(wildcard include/config/preempt/notifiers.h) \ - include/linux/list.h \ - $(wildcard include/config/debug/list.h) \ - include/linux/poison.h \ - $(wildcard include/config/illegal/pointer/value.h) \ - include/uapi/linux/const.h \ - arch/x86/include/asm/preempt.h \ - arch/x86/include/asm/percpu.h \ - $(wildcard include/config/x86/64/smp.h) \ - include/asm-generic/percpu.h \ - $(wildcard include/config/have/setup/per/cpu/area.h) \ - include/linux/threads.h \ - $(wildcard include/config/nr/cpus.h) \ - $(wildcard include/config/base/small.h) \ - include/linux/percpu-defs.h \ - $(wildcard include/config/debug/force/weak/per/cpu.h) \ - include/linux/thread_info.h \ - $(wildcard include/config/thread/info/in/task.h) \ - $(wildcard include/config/compat.h) \ - arch/x86/include/asm/thread_info.h \ - $(wildcard include/config/vm86.h) \ - $(wildcard include/config/ia32/emulation.h) \ - arch/x86/include/asm/page.h \ - arch/x86/include/asm/page_types.h \ - $(wildcard include/config/physical/start.h) \ - $(wildcard include/config/physical/align.h) \ - arch/x86/include/asm/page_64_types.h \ - $(wildcard include/config/kasan/extra.h) \ - $(wildcard include/config/randomize/base.h) \ - $(wildcard include/config/randomize/base/max/offset.h) \ - arch/x86/include/asm/page_64.h \ - $(wildcard include/config/x86/vsyscall/emulation.h) \ - include/linux/range.h \ - include/asm-generic/memory_model.h \ - include/linux/pfn.h \ - include/asm-generic/getorder.h \ - arch/x86/include/asm/cpufeature.h \ - $(wildcard include/config/x86/feature/names.h) \ - $(wildcard include/config/x86/fast/feature/tests.h) \ - arch/x86/include/asm/processor.h \ - $(wildcard include/config/cc/stackprotector.h) \ - $(wildcard include/config/x86/debugctlmsr.h) \ - $(wildcard include/config/xen.h) \ - arch/x86/include/asm/processor-flags.h \ - arch/x86/include/uapi/asm/processor-flags.h \ - arch/x86/include/asm/math_emu.h \ - arch/x86/include/asm/ptrace.h \ - arch/x86/include/asm/segment.h \ - $(wildcard include/config/x86/32/lazy/gs.h) \ - arch/x86/include/uapi/asm/ptrace.h \ - arch/x86/include/uapi/asm/ptrace-abi.h \ - arch/x86/include/asm/paravirt_types.h \ - $(wildcard include/config/x86/local/apic.h) \ - $(wildcard include/config/pgtable/levels.h) \ - $(wildcard include/config/queued/spinlocks.h) \ - $(wildcard include/config/paravirt/debug.h) \ - arch/x86/include/asm/desc_defs.h \ - arch/x86/include/asm/kmap_types.h \ - $(wildcard include/config/debug/highmem.h) \ - include/asm-generic/kmap_types.h \ - arch/x86/include/asm/pgtable_types.h \ - arch/x86/include/asm/pgtable_64_types.h \ - arch/x86/include/asm/sparsemem.h \ - arch/x86/include/asm/nospec-branch.h \ - $(wildcard include/config/retpoline.h) \ - include/linux/static_key.h \ - include/linux/jump_label.h \ - $(wildcard include/config/jump/label.h) \ - arch/x86/include/asm/jump_label.h \ - include/linux/atomic.h \ - $(wildcard include/config/generic/atomic64.h) \ - arch/x86/include/asm/atomic.h \ - arch/x86/include/asm/cmpxchg.h \ - arch/x86/include/asm/cmpxchg_64.h \ - arch/x86/include/asm/atomic64_64.h \ - include/asm-generic/atomic-long.h \ - arch/x86/include/asm/alternative-asm.h \ - arch/x86/include/asm/msr-index.h \ - $(wildcard include/config/tdp/nominal.h) \ - $(wildcard include/config/tdp/level/1.h) \ - $(wildcard include/config/tdp/level/2.h) \ - $(wildcard include/config/tdp/control.h) \ - $(wildcard include/config/tdp/level1.h) \ - $(wildcard include/config/tdp/level2.h) \ - arch/x86/include/asm/spinlock_types.h \ - $(wildcard include/config/paravirt/spinlocks.h) \ - include/asm-generic/qrwlock_types.h \ - include/asm-generic/ptrace.h \ - arch/x86/include/uapi/asm/sigcontext.h \ - arch/x86/include/asm/current.h \ - arch/x86/include/asm/msr.h \ - arch/x86/include/asm/msr-index.h \ - arch/x86/include/asm/cpumask.h \ - include/linux/cpumask.h \ - $(wildcard include/config/cpumask/offstack.h) \ - $(wildcard include/config/hotplug/cpu.h) \ - $(wildcard include/config/debug/per/cpu/maps.h) \ - include/linux/bitmap.h \ - arch/x86/include/uapi/asm/msr.h \ - arch/x86/include/asm/paravirt.h \ - arch/x86/include/asm/special_insns.h \ - arch/x86/include/asm/fpu/types.h \ - include/linux/personality.h \ - include/uapi/linux/personality.h \ - include/linux/math64.h \ - $(wildcard include/config/arch/supports/int128.h) \ - arch/x86/include/asm/div64.h \ - include/asm-generic/div64.h \ - include/linux/err.h \ - include/linux/irqflags.h \ - $(wildcard include/config/trace/irqflags.h) \ - $(wildcard include/config/irqsoff/tracer.h) \ - $(wildcard include/config/trace/irqflags/support.h) \ - arch/x86/include/asm/irqflags.h \ - include/linux/bottom_half.h \ - include/linux/spinlock_types.h \ - include/linux/lockdep.h \ - $(wildcard include/config/lockdep.h) \ - $(wildcard include/config/lock/stat.h) \ - include/linux/rwlock_types.h \ - arch/x86/include/asm/spinlock.h \ - arch/x86/include/asm/qrwlock.h \ - include/asm-generic/qrwlock.h \ - include/linux/rwlock.h \ - include/linux/spinlock_api_smp.h \ - $(wildcard include/config/inline/spin/lock.h) \ - $(wildcard include/config/inline/spin/lock/bh.h) \ - $(wildcard include/config/inline/spin/lock/irq.h) \ - $(wildcard include/config/inline/spin/lock/irqsave.h) \ - $(wildcard include/config/inline/spin/trylock.h) \ - $(wildcard include/config/inline/spin/trylock/bh.h) \ - $(wildcard include/config/uninline/spin/unlock.h) \ - $(wildcard include/config/inline/spin/unlock/bh.h) \ - $(wildcard include/config/inline/spin/unlock/irq.h) \ - $(wildcard include/config/inline/spin/unlock/irqrestore.h) \ - include/linux/rwlock_api_smp.h \ - $(wildcard include/config/inline/read/lock.h) \ - $(wildcard include/config/inline/write/lock.h) \ - $(wildcard include/config/inline/read/lock/bh.h) \ - $(wildcard include/config/inline/write/lock/bh.h) \ - $(wildcard include/config/inline/read/lock/irq.h) \ - $(wildcard include/config/inline/write/lock/irq.h) \ - $(wildcard include/config/inline/read/lock/irqsave.h) \ - $(wildcard include/config/inline/write/lock/irqsave.h) \ - $(wildcard include/config/inline/read/trylock.h) \ - $(wildcard include/config/inline/write/trylock.h) \ - $(wildcard include/config/inline/read/unlock.h) \ - $(wildcard include/config/inline/write/unlock.h) \ - $(wildcard include/config/inline/read/unlock/bh.h) \ - $(wildcard include/config/inline/write/unlock/bh.h) \ - $(wildcard include/config/inline/read/unlock/irq.h) \ - $(wildcard include/config/inline/write/unlock/irq.h) \ - $(wildcard include/config/inline/read/unlock/irqrestore.h) \ - $(wildcard include/config/inline/write/unlock/irqrestore.h) \ - include/linux/wait.h \ - include/uapi/linux/wait.h \ - include/linux/numa.h \ - $(wildcard include/config/nodes/shift.h) \ - include/linux/seqlock.h \ - include/linux/nodemask.h \ - $(wildcard include/config/movable/node.h) \ - include/linux/pageblock-flags.h \ - $(wildcard include/config/hugetlb/page/size/variable.h) \ - include/linux/page-flags-layout.h \ - include/generated/bounds.h \ - include/linux/memory_hotplug.h \ - $(wildcard include/config/memory/hotremove.h) \ - $(wildcard include/config/have/arch/nodedata/extension.h) \ - $(wildcard include/config/have/bootmem/info/node.h) \ - include/linux/notifier.h \ - include/linux/mutex.h \ - $(wildcard include/config/debug/mutexes.h) \ - $(wildcard include/config/mutex/spin/on/owner.h) \ - include/linux/osq_lock.h \ - include/linux/rwsem.h \ - $(wildcard include/config/rwsem/spin/on/owner.h) \ - $(wildcard include/config/rwsem/generic/spinlock.h) \ - arch/x86/include/asm/rwsem.h \ - include/linux/srcu.h \ - include/linux/rcupdate.h \ - $(wildcard include/config/tiny/rcu.h) \ - $(wildcard include/config/tree/rcu.h) \ - $(wildcard include/config/preempt/rcu.h) \ - $(wildcard include/config/rcu/trace.h) \ - $(wildcard include/config/rcu/stall/common.h) \ - $(wildcard include/config/no/hz/full.h) \ - $(wildcard include/config/rcu/nocb/cpu.h) \ - $(wildcard include/config/tasks/rcu.h) \ - $(wildcard include/config/debug/objects/rcu/head.h) \ - $(wildcard include/config/prove/rcu.h) \ - $(wildcard include/config/rcu/boost.h) \ - $(wildcard include/config/rcu/nocb/cpu/all.h) \ - $(wildcard include/config/no/hz/full/sysidle.h) \ - include/linux/completion.h \ - include/linux/debugobjects.h \ - $(wildcard include/config/debug/objects.h) \ - $(wildcard include/config/debug/objects/free.h) \ - include/linux/ktime.h \ - include/linux/time.h \ - $(wildcard include/config/arch/uses/gettimeoffset.h) \ - include/linux/time64.h \ - include/uapi/linux/time.h \ - include/linux/jiffies.h \ - include/linux/timex.h \ - include/uapi/linux/timex.h \ - include/uapi/linux/param.h \ - arch/x86/include/uapi/asm/param.h \ - include/asm-generic/param.h \ - $(wildcard include/config/hz.h) \ - include/uapi/asm-generic/param.h \ - arch/x86/include/asm/timex.h \ - arch/x86/include/asm/tsc.h \ - $(wildcard include/config/x86/tsc.h) \ - include/generated/timeconst.h \ - include/linux/timekeeping.h \ - include/linux/rcutree.h \ - include/linux/workqueue.h \ - $(wildcard include/config/debug/objects/work.h) \ - $(wildcard include/config/freezer.h) \ - $(wildcard include/config/sysfs.h) \ - include/linux/timer.h \ - $(wildcard include/config/debug/objects/timers.h) \ - $(wildcard include/config/no/hz/common.h) \ - include/linux/sysctl.h \ - include/linux/rbtree.h \ - include/uapi/linux/sysctl.h \ - arch/x86/include/asm/mmzone.h \ - arch/x86/include/asm/mmzone_64.h \ - arch/x86/include/asm/smp.h \ - $(wildcard include/config/x86/io/apic.h) \ - $(wildcard include/config/x86/32/smp.h) \ - $(wildcard include/config/debug/nmi/selftest.h) \ - arch/x86/include/asm/mpspec.h \ - $(wildcard include/config/eisa.h) \ - $(wildcard include/config/x86/mpparse.h) \ - arch/x86/include/asm/mpspec_def.h \ - arch/x86/include/asm/x86_init.h \ - arch/x86/include/uapi/asm/bootparam.h \ - include/linux/screen_info.h \ - include/uapi/linux/screen_info.h \ - include/linux/apm_bios.h \ - include/uapi/linux/apm_bios.h \ - include/linux/edd.h \ - include/uapi/linux/edd.h \ - arch/x86/include/asm/e820.h \ - $(wildcard include/config/efi.h) \ - arch/x86/include/uapi/asm/e820.h \ - $(wildcard include/config/x86/pmem/legacy.h) \ - $(wildcard include/config/intel/txt.h) \ - include/linux/ioport.h \ - arch/x86/include/asm/ist.h \ - arch/x86/include/uapi/asm/ist.h \ - include/video/edid.h \ - include/uapi/video/edid.h \ - arch/x86/include/asm/apicdef.h \ - arch/x86/include/asm/apic.h \ - $(wildcard include/config/x86/x2apic.h) \ - include/linux/pm.h \ - $(wildcard include/config/vt/console/sleep.h) \ - $(wildcard include/config/pm.h) \ - $(wildcard include/config/pm/clk.h) \ - $(wildcard include/config/pm/generic/domains.h) \ - arch/x86/include/asm/fixmap.h \ - $(wildcard include/config/paravirt/clock.h) \ - $(wildcard include/config/provide/ohci1394/dma/init.h) \ - $(wildcard include/config/pci/mmconfig.h) \ - $(wildcard include/config/x86/intel/mid.h) \ - arch/x86/include/asm/acpi.h \ - $(wildcard include/config/acpi/apei.h) \ - $(wildcard include/config/acpi.h) \ - $(wildcard include/config/acpi/numa.h) \ - include/acpi/pdc_intel.h \ - arch/x86/include/asm/numa.h \ - $(wildcard include/config/numa/emu.h) \ - arch/x86/include/asm/topology.h \ - include/asm-generic/topology.h \ - arch/x86/include/asm/mmu.h \ - $(wildcard include/config/modify/ldt/syscall.h) \ - arch/x86/include/asm/realmode.h \ - $(wildcard include/config/acpi/sleep.h) \ - arch/x86/include/asm/io.h \ - $(wildcard include/config/mtrr.h) \ - $(wildcard include/config/x86/pat.h) \ - arch/x86/include/generated/asm/early_ioremap.h \ - include/asm-generic/early_ioremap.h \ - $(wildcard include/config/generic/early/ioremap.h) \ - include/asm-generic/iomap.h \ - $(wildcard include/config/has/ioport/map.h) \ - $(wildcard include/config/pci.h) \ - $(wildcard include/config/generic/iomap.h) \ - include/asm-generic/pci_iomap.h \ - $(wildcard include/config/no/generic/pci/ioport/map.h) \ - $(wildcard include/config/generic/pci/iomap.h) \ - include/xen/xen.h \ - $(wildcard include/config/xen/dom0.h) \ - $(wildcard include/config/xen/pvh.h) \ - include/xen/interface/xen.h \ - arch/x86/include/asm/xen/interface.h \ - arch/x86/include/asm/xen/interface_64.h \ - arch/x86/include/asm/pvclock-abi.h \ - arch/x86/include/asm/xen/hypervisor.h \ - include/xen/features.h \ - include/xen/interface/features.h \ - arch/x86/include/asm/pvclock.h \ - $(wildcard include/config/kvm/guest.h) \ - include/linux/clocksource.h \ - $(wildcard include/config/arch/clocksource/data.h) \ - $(wildcard include/config/clocksource/watchdog.h) \ - $(wildcard include/config/clksrc/probe.h) \ - arch/x86/include/asm/clocksource.h \ - arch/x86/include/uapi/asm/vsyscall.h \ - include/asm-generic/fixmap.h \ - arch/x86/include/asm/hardirq.h \ - $(wildcard include/config/kvm/intel.h) \ - $(wildcard include/config/have/kvm.h) \ - $(wildcard include/config/x86/thermal/vector.h) \ - $(wildcard include/config/x86/mce/threshold.h) \ - $(wildcard include/config/x86/mce/amd.h) \ - $(wildcard include/config/hyperv.h) \ - arch/x86/include/asm/idle.h \ - arch/x86/include/asm/io_apic.h \ - arch/x86/include/asm/irq_vectors.h \ - $(wildcard include/config/pci/msi.h) \ - include/linux/topology.h \ - $(wildcard include/config/use/percpu/numa/node/id.h) \ - $(wildcard include/config/sched/smt.h) \ - include/linux/smp.h \ - $(wildcard include/config/up/late/init.h) \ - include/linux/llist.h \ - $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \ - include/linux/percpu.h \ - $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \ - $(wildcard include/config/need/per/cpu/page/first/chunk.h) \ - include/linux/debug_locks.h \ - $(wildcard include/config/debug/locking/api/selftests.h) \ - include/linux/mm_types.h \ - $(wildcard include/config/split/ptlock/cpus.h) \ - $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \ - $(wildcard include/config/have/cmpxchg/double.h) \ - $(wildcard include/config/have/aligned/struct/page.h) \ - $(wildcard include/config/userfaultfd.h) \ - $(wildcard include/config/aio.h) \ - $(wildcard include/config/mmu/notifier.h) \ - $(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \ - include/linux/auxvec.h \ - include/uapi/linux/auxvec.h \ - arch/x86/include/uapi/asm/auxvec.h \ - include/linux/uprobes.h \ - $(wildcard include/config/uprobes.h) \ - arch/x86/include/asm/uprobes.h \ - include/linux/bit_spinlock.h \ - include/linux/shrinker.h \ - include/linux/resource.h \ - include/uapi/linux/resource.h \ - arch/x86/include/uapi/asm/resource.h \ - include/asm-generic/resource.h \ - include/uapi/asm-generic/resource.h \ - include/linux/page_ext.h \ - $(wildcard include/config/idle/page/tracking.h) \ - $(wildcard include/config/page/owner.h) \ - include/linux/stacktrace.h \ - $(wildcard include/config/stacktrace.h) \ - $(wildcard include/config/user/stacktrace/support.h) \ - arch/x86/include/asm/pgtable.h \ - $(wildcard include/config/debug/wx.h) \ - $(wildcard include/config/have/arch/soft/dirty.h) \ - arch/x86/include/asm/pgtable_64.h \ - arch/x86/include/asm/pgtable-invert.h \ - include/asm-generic/pgtable.h \ - $(wildcard include/config/have/arch/huge/vmap.h) \ - include/linux/page-flags.h \ - $(wildcard include/config/arch/uses/pg/uncached.h) \ - $(wildcard include/config/memory/failure.h) \ - $(wildcard include/config/swap.h) \ - $(wildcard include/config/ksm.h) \ - include/linux/huge_mm.h \ - include/linux/vmstat.h \ - $(wildcard include/config/vm/event/counters.h) \ - $(wildcard include/config/debug/tlbflush.h) \ - $(wildcard include/config/debug/vm/vmacache.h) \ - include/linux/vm_event_item.h \ - $(wildcard include/config/migration.h) \ - $(wildcard include/config/memory/balloon.h) \ - $(wildcard include/config/balloon/compaction.h) \ - include/linux/interrupt.h \ - $(wildcard include/config/irq/forced/threading.h) \ - $(wildcard include/config/generic/irq/probe.h) \ - include/linux/irqreturn.h \ - include/linux/irqnr.h \ - include/uapi/linux/irqnr.h \ - include/linux/hardirq.h \ - include/linux/ftrace_irq.h \ - $(wildcard include/config/ftrace/nmi/enter.h) \ - include/linux/vtime.h \ - $(wildcard include/config/virt/cpu/accounting/native.h) \ - $(wildcard include/config/virt/cpu/accounting/gen.h) \ - $(wildcard include/config/virt/cpu/accounting.h) \ - $(wildcard include/config/irq/time/accounting.h) \ - include/linux/context_tracking_state.h \ - $(wildcard include/config/context/tracking.h) \ - include/linux/hrtimer.h \ - $(wildcard include/config/high/res/timers.h) \ - $(wildcard include/config/time/low/res.h) \ - $(wildcard include/config/timerfd.h) \ - include/linux/timerqueue.h \ - include/linux/kref.h \ - arch/x86/include/asm/irq.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.h \ - $(wildcard include/config/block/id.h) \ - include/generated/uapi/linux/version.h \ - include/linux/uaccess.h \ - include/linux/sched.h \ - $(wildcard include/config/sched/debug.h) \ - $(wildcard include/config/lockup/detector.h) \ - $(wildcard include/config/detect/hung/task.h) \ - $(wildcard include/config/core/dump/default/elf/headers.h) \ - $(wildcard include/config/sched/autogroup.h) \ - $(wildcard include/config/bsd/process/acct.h) \ - $(wildcard include/config/taskstats.h) \ - $(wildcard include/config/audit.h) \ - $(wildcard include/config/inotify/user.h) \ - $(wildcard include/config/fanotify.h) \ - $(wildcard include/config/epoll.h) \ - $(wildcard include/config/posix/mqueue.h) \ - $(wildcard include/config/keys.h) \ - $(wildcard include/config/perf/events.h) \ - $(wildcard include/config/bpf/syscall.h) \ - $(wildcard include/config/sched/info.h) \ - $(wildcard include/config/task/delay/acct.h) \ - $(wildcard include/config/schedstats.h) \ - $(wildcard include/config/sched/mc.h) \ - $(wildcard include/config/fair/group/sched.h) \ - $(wildcard include/config/rt/group/sched.h) \ - $(wildcard include/config/cgroup/sched.h) \ - $(wildcard include/config/blk/dev/io/trace.h) \ - $(wildcard include/config/memcg/kmem.h) \ - $(wildcard include/config/compat/brk.h) \ - $(wildcard include/config/cgroups.h) \ - $(wildcard include/config/sysvipc.h) \ - $(wildcard include/config/auditsyscall.h) \ - $(wildcard include/config/rt/mutexes.h) \ - $(wildcard include/config/block.h) \ - $(wildcard include/config/task/xacct.h) \ - $(wildcard include/config/cpusets.h) \ - $(wildcard include/config/futex.h) \ - $(wildcard include/config/fault/injection.h) \ - $(wildcard include/config/latencytop.h) \ - $(wildcard include/config/function/graph/tracer.h) \ - $(wildcard include/config/bcache.h) \ - $(wildcard include/config/arch/wants/dynamic/task/struct.h) \ - $(wildcard include/config/have/unstable/sched/clock.h) \ - $(wildcard include/config/have/copy/thread/tls.h) \ - $(wildcard include/config/debug/stack/usage.h) \ - include/uapi/linux/sched.h \ - include/linux/sched/prio.h \ - include/linux/capability.h \ - $(wildcard include/config/multiuser.h) \ - include/uapi/linux/capability.h \ - include/linux/plist.h \ - $(wildcard include/config/debug/pi/list.h) \ - include/linux/cputime.h \ - arch/x86/include/generated/asm/cputime.h \ - include/asm-generic/cputime.h \ - include/asm-generic/cputime_jiffies.h \ - include/linux/sem.h \ - include/uapi/linux/sem.h \ - include/linux/ipc.h \ - include/linux/uidgid.h \ - $(wildcard include/config/user/ns.h) \ - include/linux/highuid.h \ - include/uapi/linux/ipc.h \ - arch/x86/include/uapi/asm/ipcbuf.h \ - include/uapi/asm-generic/ipcbuf.h \ - arch/x86/include/uapi/asm/sembuf.h \ - include/linux/shm.h \ - include/uapi/linux/shm.h \ - arch/x86/include/uapi/asm/shmbuf.h \ - include/uapi/asm-generic/shmbuf.h \ - arch/x86/include/asm/shmparam.h \ - include/linux/signal.h \ - $(wildcard include/config/old/sigaction.h) \ - include/uapi/linux/signal.h \ - arch/x86/include/asm/signal.h \ - arch/x86/include/uapi/asm/signal.h \ - include/uapi/asm-generic/signal-defs.h \ - arch/x86/include/uapi/asm/siginfo.h \ - include/asm-generic/siginfo.h \ - include/uapi/asm-generic/siginfo.h \ - include/linux/pid.h \ - include/linux/proportions.h \ - include/linux/percpu_counter.h \ - include/linux/seccomp.h \ - $(wildcard include/config/seccomp.h) \ - $(wildcard include/config/have/arch/seccomp/filter.h) \ - $(wildcard include/config/seccomp/filter.h) \ - $(wildcard include/config/checkpoint/restore.h) \ - include/uapi/linux/seccomp.h \ - arch/x86/include/asm/seccomp.h \ - arch/x86/include/asm/unistd.h \ - $(wildcard include/config/x86/x32/abi.h) \ - arch/x86/include/uapi/asm/unistd.h \ - arch/x86/include/generated/uapi/asm/unistd_64.h \ - arch/x86/include/generated/asm/unistd_64_x32.h \ - arch/x86/include/asm/ia32_unistd.h \ - arch/x86/include/generated/asm/unistd_32_ia32.h \ - include/asm-generic/seccomp.h \ - include/uapi/linux/unistd.h \ - include/linux/rculist.h \ - include/linux/rtmutex.h \ - $(wildcard include/config/debug/rt/mutexes.h) \ - include/linux/task_io_accounting.h \ - $(wildcard include/config/task/io/accounting.h) \ - include/linux/latencytop.h \ - include/linux/cred.h \ - $(wildcard include/config/debug/credentials.h) \ - $(wildcard include/config/security.h) \ - include/linux/key.h \ - include/linux/assoc_array.h \ - $(wildcard include/config/associative/array.h) \ - include/linux/selinux.h \ - $(wildcard include/config/security/selinux.h) \ - include/uapi/linux/magic.h \ - include/linux/cgroup-defs.h \ - include/uapi/linux/limits.h \ - include/linux/idr.h \ - include/linux/percpu-refcount.h \ - include/linux/percpu-rwsem.h \ - include/linux/rcu_sync.h \ - include/linux/cgroup_subsys.h \ - $(wildcard include/config/cgroup/cpuacct.h) \ - $(wildcard include/config/blk/cgroup.h) \ - $(wildcard include/config/cgroup/device.h) \ - $(wildcard include/config/cgroup/freezer.h) \ - $(wildcard include/config/cgroup/net/classid.h) \ - $(wildcard include/config/cgroup/perf.h) \ - $(wildcard include/config/cgroup/net/prio.h) \ - $(wildcard include/config/cgroup/hugetlb.h) \ - $(wildcard include/config/cgroup/pids.h) \ - $(wildcard include/config/cgroup/debug.h) \ - arch/x86/include/asm/uaccess.h \ - $(wildcard include/config/x86/intel/usercopy.h) \ - $(wildcard include/config/debug/strict/user/copy/checks.h) \ - arch/x86/include/asm/smap.h \ - $(wildcard include/config/x86/smap.h) \ - arch/x86/include/asm/uaccess_64.h \ - include/linux/module.h \ - $(wildcard include/config/module/sig.h) \ - $(wildcard include/config/modules/tree/lookup.h) \ - $(wildcard include/config/kallsyms.h) \ - $(wildcard include/config/tracepoints.h) \ - $(wildcard include/config/event/tracing.h) \ - $(wildcard include/config/livepatch.h) \ - $(wildcard include/config/module/unload.h) \ - $(wildcard include/config/constructors.h) \ - $(wildcard include/config/debug/set/module/ronx.h) \ - include/linux/stat.h \ - arch/x86/include/uapi/asm/stat.h \ - include/uapi/linux/stat.h \ - include/linux/kmod.h \ - include/linux/elf.h \ - arch/x86/include/asm/elf.h \ - arch/x86/include/asm/user.h \ - arch/x86/include/asm/user_64.h \ - arch/x86/include/asm/vdso.h \ - $(wildcard include/config/x86/x32.h) \ - include/uapi/linux/elf.h \ - include/uapi/linux/elf-em.h \ - include/linux/kobject.h \ - $(wildcard include/config/uevent/helper.h) \ - $(wildcard include/config/debug/kobject/release.h) \ - include/linux/sysfs.h \ - include/linux/kernfs.h \ - $(wildcard include/config/kernfs.h) \ - include/linux/kobject_ns.h \ - include/linux/moduleparam.h \ - $(wildcard include/config/alpha.h) \ - $(wildcard include/config/ppc64.h) \ - include/linux/rbtree_latch.h \ - arch/x86/include/asm/module.h \ - $(wildcard include/config/m486.h) \ - $(wildcard include/config/m586.h) \ - $(wildcard include/config/m586tsc.h) \ - $(wildcard include/config/m586mmx.h) \ - $(wildcard include/config/mcore2.h) \ - $(wildcard include/config/m686.h) \ - $(wildcard include/config/mpentiumii.h) \ - $(wildcard include/config/mpentiumiii.h) \ - $(wildcard include/config/mpentiumm.h) \ - $(wildcard include/config/mpentium4.h) \ - $(wildcard include/config/mk6.h) \ - $(wildcard include/config/mk8.h) \ - $(wildcard include/config/melan.h) \ - $(wildcard include/config/mcrusoe.h) \ - $(wildcard include/config/mefficeon.h) \ - $(wildcard include/config/mwinchipc6.h) \ - $(wildcard include/config/mwinchip3d.h) \ - $(wildcard include/config/mcyrixiii.h) \ - $(wildcard include/config/mviac3/2.h) \ - $(wildcard include/config/mviac7.h) \ - $(wildcard include/config/mgeodegx1.h) \ - $(wildcard include/config/mgeode/lx.h) \ - include/asm-generic/module.h \ - $(wildcard include/config/have/mod/arch/specific.h) \ - $(wildcard include/config/modules/use/elf/rel.h) \ - $(wildcard include/config/modules/use/elf/rela.h) \ - include/linux/dma-mapping.h \ - $(wildcard include/config/has/dma.h) \ - $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \ - $(wildcard include/config/have/dma/attrs.h) \ - $(wildcard include/config/need/dma/map/state.h) \ - include/linux/sizes.h \ - include/linux/device.h \ - $(wildcard include/config/debug/devres.h) \ - $(wildcard include/config/generic/msi/irq/domain.h) \ - $(wildcard include/config/pinctrl.h) \ - $(wildcard include/config/generic/msi/irq.h) \ - $(wildcard include/config/dma/cma.h) \ - $(wildcard include/config/of.h) \ - $(wildcard include/config/devtmpfs.h) \ - $(wildcard include/config/sysfs/deprecated.h) \ - include/linux/klist.h \ - include/linux/pinctrl/devinfo.h \ - include/linux/pinctrl/consumer.h \ - include/linux/seq_file.h \ - include/linux/fs.h \ - $(wildcard include/config/fs/posix/acl.h) \ - $(wildcard include/config/cgroup/writeback.h) \ - $(wildcard include/config/ima.h) \ - $(wildcard include/config/fsnotify.h) \ - $(wildcard include/config/file/locking.h) \ - $(wildcard include/config/quota.h) \ - $(wildcard include/config/blk/dev/loop.h) \ - $(wildcard include/config/fs/dax.h) \ - include/linux/kdev_t.h \ - include/uapi/linux/kdev_t.h \ - include/linux/dcache.h \ - include/linux/rculist_bl.h \ - include/linux/list_bl.h \ - include/linux/lockref.h \ - $(wildcard include/config/arch/use/cmpxchg/lockref.h) \ - include/linux/path.h \ - include/linux/list_lru.h \ - include/linux/radix-tree.h \ - include/linux/semaphore.h \ - include/uapi/linux/fiemap.h \ - include/linux/migrate_mode.h \ - include/linux/blk_types.h \ - $(wildcard include/config/blk/dev/integrity.h) \ - include/uapi/linux/fs.h \ - include/linux/quota.h \ - $(wildcard include/config/quota/netlink/interface.h) \ - include/uapi/linux/dqblk_xfs.h \ - include/linux/dqblk_v1.h \ - include/linux/dqblk_v2.h \ - include/linux/dqblk_qtree.h \ - include/linux/projid.h \ - include/uapi/linux/quota.h \ - include/linux/nfs_fs_i.h \ - include/linux/fcntl.h \ - include/uapi/linux/fcntl.h \ - arch/x86/include/uapi/asm/fcntl.h \ - include/uapi/asm-generic/fcntl.h \ - include/linux/pinctrl/pinctrl-state.h \ - include/linux/ratelimit.h \ - arch/x86/include/asm/device.h \ - $(wildcard include/config/x86/dev/dma/ops.h) \ - $(wildcard include/config/intel/iommu.h) \ - $(wildcard include/config/amd/iommu.h) \ - include/linux/pm_wakeup.h \ - include/linux/dma-attrs.h \ - include/linux/dma-direction.h \ - arch/x86/include/asm/dma-mapping.h \ - $(wildcard include/config/isa.h) \ - $(wildcard include/config/x86/dma/remap.h) \ - include/linux/kmemcheck.h \ - include/linux/dma-debug.h \ - $(wildcard include/config/dma/api/debug.h) \ - arch/x86/include/asm/swiotlb.h \ - $(wildcard include/config/swiotlb.h) \ - include/linux/swiotlb.h \ - include/linux/dma-contiguous.h \ - include/asm-generic/dma-mapping-common.h \ - include/asm-generic/dma-coherent.h \ - $(wildcard include/config/have/generic/dma/coherent.h) \ - include/linux/pci.h \ - $(wildcard include/config/pci/iov.h) \ - $(wildcard include/config/pcieaspm.h) \ - $(wildcard include/config/pci/ats.h) \ - $(wildcard include/config/pci/domains/generic.h) \ - $(wildcard include/config/pci/bus/addr/t/64bit.h) \ - $(wildcard include/config/pcieportbus.h) \ - $(wildcard include/config/pcie/ecrc.h) \ - $(wildcard include/config/ht/irq.h) \ - $(wildcard include/config/pci/domains.h) \ - $(wildcard include/config/pci/quirks.h) \ - $(wildcard include/config/hibernate/callbacks.h) \ - $(wildcard include/config/acpi/mcfg.h) \ - $(wildcard include/config/hotplug/pci.h) \ - $(wildcard include/config/eeh.h) \ - include/linux/mod_devicetable.h \ - include/linux/uuid.h \ - include/uapi/linux/uuid.h \ - include/linux/io.h \ - include/linux/resource_ext.h \ - include/linux/slab.h \ - $(wildcard include/config/debug/slab.h) \ - $(wildcard include/config/failslab.h) \ - $(wildcard include/config/slab.h) \ - $(wildcard include/config/slub.h) \ - $(wildcard include/config/slob.h) \ - include/linux/kmemleak.h \ - $(wildcard include/config/debug/kmemleak.h) \ - include/linux/kasan.h \ - include/uapi/linux/pci.h \ - include/uapi/linux/pci_regs.h \ - include/linux/pci_ids.h \ - include/linux/pci-dma.h \ - include/linux/dmapool.h \ - arch/x86/include/asm/pci.h \ - $(wildcard include/config/pci/msi/irq/domain.h) \ - arch/x86/include/asm/pci_64.h \ - $(wildcard include/config/calgary/iommu.h) \ - include/asm-generic/pci-dma-compat.h \ - include/asm-generic/pci.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.h \ - include/linux/cdev.h \ - include/linux/delay.h \ - arch/x86/include/asm/delay.h \ - include/asm-generic/delay.h \ - include/linux/fb.h \ - $(wildcard include/config/fb/deferred/io.h) \ - $(wildcard include/config/fb/tileblitting.h) \ - $(wildcard include/config/fb/backlight.h) \ - $(wildcard include/config/fb/foreign/endian.h) \ - $(wildcard include/config/fb/both/endian.h) \ - $(wildcard include/config/fb/big/endian.h) \ - $(wildcard include/config/fb/little/endian.h) \ - include/linux/kgdb.h \ - $(wildcard include/config/have/arch/kgdb.h) \ - $(wildcard include/config/kgdb.h) \ - $(wildcard include/config/serial/kgdb/nmi.h) \ - arch/x86/include/asm/kgdb.h \ - include/uapi/linux/fb.h \ - include/linux/i2c.h \ - $(wildcard include/config/i2c.h) \ - $(wildcard include/config/i2c/slave.h) \ - $(wildcard include/config/i2c/boardinfo.h) \ - $(wildcard include/config/i2c/mux.h) \ - include/linux/of.h \ - $(wildcard include/config/sparc.h) \ - $(wildcard include/config/of/dynamic.h) \ - $(wildcard include/config/attach/node.h) \ - $(wildcard include/config/detach/node.h) \ - $(wildcard include/config/add/property.h) \ - $(wildcard include/config/remove/property.h) \ - $(wildcard include/config/update/property.h) \ - $(wildcard include/config/of/numa.h) \ - $(wildcard include/config/no/change.h) \ - $(wildcard include/config/change/add.h) \ - $(wildcard include/config/change/remove.h) \ - $(wildcard include/config/of/resolve.h) \ - $(wildcard include/config/of/overlay.h) \ - include/linux/property.h \ - include/linux/fwnode.h \ - include/uapi/linux/i2c.h \ - include/linux/backlight.h \ - include/linux/poll.h \ - include/uapi/linux/poll.h \ - arch/x86/include/uapi/asm/poll.h \ - include/uapi/asm-generic/poll.h \ - include/linux/vmalloc.h \ - include/linux/aio.h \ - include/uapi/linux/aio_abi.h \ - include/linux/splice.h \ - include/linux/pipe_fs_i.h \ - include/linux/uio.h \ - include/uapi/linux/uio.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_cdev.h \ - /home/wangxuan/pcie_xdma_host_software/driver/xdma/version.h \ - -/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.o: $(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.o) - -$(deps_/home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma_mod.o): diff --git a/host_software/driver/xdma/Module.symvers b/host_software/driver/xdma/Module.symvers deleted file mode 100644 index 22ac4f1..0000000 --- a/host_software/driver/xdma/Module.symvers +++ /dev/null @@ -1,14 +0,0 @@ -0xbbbebfae xdma_device_online /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x9aca3f0a xdma_user_isr_disable /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0xc53cdaca xdev_find_by_pdev /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x35125a44 enable_perf /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x7e5ef4e4 xdma_device_restart /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x8fe1a762 xdma_performance_submit /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0xde603d17 xdma_device_close /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x763aa2cd xdma_xfer_submit /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x335e0f18 xdma_device_open /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x11b39090 engine_cyclic_stop /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x138e6908 xdma_user_isr_register /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x82bdcc10 xdma_device_offline /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0xfe6e6574 get_perf_stats /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL -0x9ce7b42d xdma_user_isr_enable /home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma EXPORT_SYMBOL_GPL diff --git a/host_software/driver/xdma/cdev_sgdma.c b/host_software/driver/xdma/cdev_sgdma.c deleted file mode 100644 index 410ef45..0000000 --- a/host_software/driver/xdma/cdev_sgdma.c +++ /dev/null @@ -1,552 +0,0 @@ -/* - * This file is part of the Xilinx DMA IP Core driver for Linux - * - * Copyright (c) 2016-present, Xilinx, Inc. - * All rights reserved. - * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ - -#include -#include "libxdma_api.h" -#include "xdma_cdev.h" -#include "cdev_sgdma.h" - -/* Module Parameters */ -unsigned int sgdma_timeout = 10; -module_param(sgdma_timeout, uint, 0644); -MODULE_PARM_DESC(sgdma_timeout, "timeout in seconds for sgdma, default is 10 sec."); - -/* - * character device file operations for SG DMA engine - */ -static loff_t char_sgdma_llseek(struct file *file, loff_t off, int whence) -{ - loff_t newpos = 0; - - switch (whence) { - case 0: /* SEEK_SET */ - newpos = off; - break; - case 1: /* SEEK_CUR */ - newpos = file->f_pos + off; - break; - case 2: /* SEEK_END, @TODO should work from end of address space */ - newpos = UINT_MAX + off; - break; - default: /* can't happen */ - return -EINVAL; - } - if (newpos < 0) - return -EINVAL; - file->f_pos = newpos; - dbg_fops("char_sgdma_llseek: pos=%lld\n", (signed long long)newpos); - -#if 0 - pr_err("0x%p, off 0x%lld, whence %d -> pos %lld.\n", - file, (signed long long)off, whence, (signed long long)off); -#endif - - return newpos; -} - -/* char_sgdma_read_write() -- Read from or write to the device - * - * @buf userspace buffer - * @count number of bytes in the userspace buffer - * @pos byte-address in device - * @dir_to_device If !0, a write to the device is performed - * - * Iterate over the userspace buffer, taking at most 255 * PAGE_SIZE bytes for - * each DMA transfer. - * - * For each transfer, get the user pages, build a sglist, map, build a - * descriptor table. submit the transfer. wait for the interrupt handler - * to wake us on completion. - */ - -static int check_transfer_align(struct xdma_engine *engine, - const char __user *buf, size_t count, loff_t pos, int sync) -{ - BUG_ON(!engine); - - /* AXI ST or AXI MM non-incremental addressing mode? */ - if (engine->non_incr_addr) { - int buf_lsb = (int)((uintptr_t)buf) & (engine->addr_align - 1); - size_t len_lsb = count & ((size_t)engine->len_granularity - 1); - int pos_lsb = (int)pos & (engine->addr_align - 1); - - dbg_tfr("AXI ST or MM non-incremental\n"); - dbg_tfr("buf_lsb = %d, pos_lsb = %d, len_lsb = %ld\n", buf_lsb, - pos_lsb, len_lsb); - - if (buf_lsb != 0) { - dbg_tfr("FAIL: non-aligned buffer address %p\n", buf); - return -EINVAL; - } - - if ((pos_lsb != 0) && (sync)) { - dbg_tfr("FAIL: non-aligned AXI MM FPGA addr 0x%llx\n", - (unsigned long long)pos); - return -EINVAL; - } - - if (len_lsb != 0) { - dbg_tfr("FAIL: len %d is not a multiple of %d\n", - (int)count, - (int)engine->len_granularity); - return -EINVAL; - } - /* AXI MM incremental addressing mode */ - } else { - int buf_lsb = (int)((uintptr_t)buf) & (engine->addr_align - 1); - int pos_lsb = (int)pos & (engine->addr_align - 1); - - if (buf_lsb != pos_lsb) { - dbg_tfr("FAIL: Misalignment error\n"); - dbg_tfr("host addr %p, FPGA addr 0x%llx\n", buf, pos); - return -EINVAL; - } - } - - return 0; -} - -/* - * Map a user memory range into a scatterlist - * inspired by vhost_scsi_map_to_sgl() - * Returns the number of scatterlist entries used or -errno on error. - */ -static inline void xdma_io_cb_release(struct xdma_io_cb *cb) -{ - int i; - - for (i = 0; i < cb->pages_nr; i++) - put_page(cb->pages[i]); - - sg_free_table(&cb->sgt); - kfree(cb->pages); - - memset(cb, 0, sizeof(*cb)); -} - -static void char_sgdma_unmap_user_buf(struct xdma_io_cb *cb, bool write) -{ - int i; - - sg_free_table(&cb->sgt); - - if (!cb->pages || !cb->pages_nr) - return; - - for (i = 0; i < cb->pages_nr; i++) { - if (cb->pages[i]) { - if (!write) - set_page_dirty_lock(cb->pages[i]); - put_page(cb->pages[i]); - } else - break; - } - - if (i != cb->pages_nr) - pr_info("sgl pages %d/%u.\n", i, cb->pages_nr); - - kfree(cb->pages); - cb->pages = NULL; -} - -static int char_sgdma_map_user_buf_to_sgl(struct xdma_io_cb *cb, bool write) -{ - struct sg_table *sgt = &cb->sgt; - unsigned long len = cb->len; - char *buf = cb->buf; - struct scatterlist *sg; - unsigned int pages_nr = (((unsigned long)buf + len + PAGE_SIZE -1) - - ((unsigned long)buf & PAGE_MASK)) - >> PAGE_SHIFT; - int i; - int rv; - - if (pages_nr == 0) { - return -EINVAL; - } - - if (sg_alloc_table(sgt, pages_nr, GFP_KERNEL)) { - pr_err("sgl OOM.\n"); - return -ENOMEM; - } - - cb->pages = kcalloc(pages_nr, sizeof(struct page *), GFP_KERNEL); - if (!cb->pages) { - pr_err("pages OOM.\n"); - rv = -ENOMEM; - goto err_out; - } - - rv = get_user_pages_fast((unsigned long)buf, pages_nr, 1/* write */, - cb->pages); - /* No pages were pinned */ - if (rv < 0) { - pr_err("unable to pin down %u user pages, %d.\n", - pages_nr, rv); - goto err_out; - } - /* Less pages pinned than wanted */ - if (rv != pages_nr) { - pr_err("unable to pin down all %u user pages, %d.\n", - pages_nr, rv); - rv = -EFAULT; - cb->pages_nr = rv; - goto err_out; - } - - for (i = 1; i < pages_nr; i++) { - if (cb->pages[i - 1] == cb->pages[i]) { - pr_err("duplicate pages, %d, %d.\n", - i - 1, i); - rv = -EFAULT; - cb->pages_nr = pages_nr; - goto err_out; - } - } - - sg = sgt->sgl; - for (i = 0; i < pages_nr; i++, sg = sg_next(sg)) { - //unsigned int offset = (uintptr_t)buf & ~PAGE_MASK; - unsigned int offset = offset_in_page(buf); - unsigned int nbytes = min_t(unsigned int, PAGE_SIZE - offset, len); - - flush_dcache_page(cb->pages[i]); - sg_set_page(sg, cb->pages[i], nbytes, offset); - - buf += nbytes; - len -= nbytes; - } - - BUG_ON(len); - cb->pages_nr = pages_nr; - return 0; - -err_out: - char_sgdma_unmap_user_buf(cb, write); - - return rv; -} - -static ssize_t char_sgdma_read_write(struct file *file, char __user *buf, - size_t count, loff_t *pos, bool write) -{ - int rv; - ssize_t res = 0; - struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; - struct xdma_dev *xdev; - struct xdma_engine *engine; - struct xdma_io_cb cb; - - rv = xcdev_check(__func__, xcdev, 1); - if (rv < 0) - return rv; - xdev = xcdev->xdev; - engine = xcdev->engine; - - dbg_tfr("file 0x%p, priv 0x%p, buf 0x%p,%llu, pos %llu, W %d, %s.\n", - file, file->private_data, buf, (u64)count, (u64)*pos, write, - engine->name); - - if ((write && engine->dir != DMA_TO_DEVICE) || - (!write && engine->dir != DMA_FROM_DEVICE)) { - pr_err("r/w mismatch. W %d, dir %d.\n", - write, engine->dir); - return -EINVAL; - } - - rv = check_transfer_align(engine, buf, count, *pos, 1); - if (rv) { - pr_info("Invalid transfer alignment detected\n"); - return rv; - } - - memset(&cb, 0, sizeof(struct xdma_io_cb)); - cb.buf = buf; - cb.len = count; - rv = char_sgdma_map_user_buf_to_sgl(&cb, write); - if (rv < 0) - return rv; - - res = xdma_xfer_submit(xdev, engine->channel, write, *pos, &cb.sgt, - 0, sgdma_timeout * 1000); - //pr_err("xfer_submit return=%lld.\n", (s64)res); - - //interrupt_status(xdev); - - char_sgdma_unmap_user_buf(&cb, write); - - return res; -} - - -static ssize_t char_sgdma_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) -{ - return char_sgdma_read_write(file, (char *)buf, count, pos, 1); -} - -static ssize_t char_sgdma_read(struct file *file, char __user *buf, - size_t count, loff_t *pos) -{ - struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; - struct xdma_engine *engine; - int rv; - - rv = xcdev_check(__func__, xcdev, 1); - if (rv < 0) - return rv; - - engine = xcdev->engine; - - if (engine->streaming && engine->dir == DMA_FROM_DEVICE) { - rv = xdma_cyclic_transfer_setup(engine); - if (rv < 0 && rv != -EBUSY) - return rv; - /* 600 sec. timeout */ - return xdma_engine_read_cyclic(engine, buf, count, 600000); - } - - return char_sgdma_read_write(file, (char *)buf, count, pos, 0); -} - -static int ioctl_do_perf_start(struct xdma_engine *engine, unsigned long arg) -{ - int rv; - struct xdma_dev *xdev; - - BUG_ON(!engine); - xdev = engine->xdev; - BUG_ON(!xdev); - - /* performance measurement already running on this engine? */ - if (engine->xdma_perf) { - dbg_perf("IOCTL_XDMA_PERF_START failed!\n"); - dbg_perf("Perf measurement already seems to be running!\n"); - return -EBUSY; - } - engine->xdma_perf = kzalloc(sizeof(struct xdma_performance_ioctl), - GFP_KERNEL); - - if (!engine->xdma_perf) - return -ENOMEM; - - rv = copy_from_user(engine->xdma_perf, - (struct xdma_performance_ioctl *)arg, - sizeof(struct xdma_performance_ioctl)); - - if (rv < 0) { - dbg_perf("Failed to copy from user space 0x%lx\n", arg); - return -EINVAL; - } - if (engine->xdma_perf->version != IOCTL_XDMA_PERF_V1) { - dbg_perf("Unsupported IOCTL version %d\n", - engine->xdma_perf->version); - return -EINVAL; - } - - enable_perf(engine); - dbg_perf("transfer_size = %d\n", engine->xdma_perf->transfer_size); - /* initialize wait queue */ - init_waitqueue_head(&engine->xdma_perf_wq); - xdma_performance_submit(xdev, engine); - - return 0; -} - -static int ioctl_do_perf_stop(struct xdma_engine *engine, unsigned long arg) -{ - struct xdma_transfer *transfer = NULL; - int rv; - - dbg_perf("IOCTL_XDMA_PERF_STOP\n"); - - /* no performance measurement running on this engine? */ - if (!engine->xdma_perf) { - dbg_perf("No measurement in progress\n"); - return -EINVAL; - } - - /* stop measurement */ - transfer = engine_cyclic_stop(engine); - dbg_perf("Waiting for measurement to stop\n"); - - if (engine->xdma_perf) { - get_perf_stats(engine); - - rv = copy_to_user((void __user *)arg, engine->xdma_perf, - sizeof(struct xdma_performance_ioctl)); - if (rv) { - dbg_perf("Error copying result to user\n"); - return -EINVAL; - } - } else { - dbg_perf("engine->xdma_perf == NULL?\n"); - } - - kfree(engine->xdma_perf); - engine->xdma_perf = NULL; - - return 0; -} - -static int ioctl_do_perf_get(struct xdma_engine *engine, unsigned long arg) -{ - int rc; - - BUG_ON(!engine); - - dbg_perf("IOCTL_XDMA_PERF_GET\n"); - - if (engine->xdma_perf) { - get_perf_stats(engine); - - rc = copy_to_user((void __user *)arg, engine->xdma_perf, - sizeof(struct xdma_performance_ioctl)); - if (rc) { - dbg_perf("Error copying result to user\n"); - return -EINVAL; - } - } else { - dbg_perf("engine->xdma_perf == NULL?\n"); - return -EPROTO; - } - - return 0; -} - -static int ioctl_do_addrmode_set(struct xdma_engine *engine, unsigned long arg) -{ - return engine_addrmode_set(engine, arg); -} - -static int ioctl_do_addrmode_get(struct xdma_engine *engine, unsigned long arg) -{ - int rv; - unsigned long src; - - BUG_ON(!engine); - src = !!engine->non_incr_addr; - - dbg_perf("IOCTL_XDMA_ADDRMODE_GET\n"); - rv = put_user(src, (int __user *)arg); - - return rv; -} - -static int ioctl_do_align_get(struct xdma_engine *engine, unsigned long arg) -{ - BUG_ON(!engine); - - dbg_perf("IOCTL_XDMA_ALIGN_GET\n"); - return put_user(engine->addr_align, (int __user *)arg); -} - -static long char_sgdma_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; - struct xdma_dev *xdev; - struct xdma_engine *engine; - - int rv = 0; - - rv = xcdev_check(__func__, xcdev, 1); - if (rv < 0) - return rv; - - xdev = xcdev->xdev; - engine = xcdev->engine; - - switch (cmd) { - case IOCTL_XDMA_PERF_START: - rv = ioctl_do_perf_start(engine, arg); - break; - case IOCTL_XDMA_PERF_STOP: - rv = ioctl_do_perf_stop(engine, arg); - break; - case IOCTL_XDMA_PERF_GET: - rv = ioctl_do_perf_get(engine, arg); - break; - case IOCTL_XDMA_ADDRMODE_SET: - rv = ioctl_do_addrmode_set(engine, arg); - break; - case IOCTL_XDMA_ADDRMODE_GET: - rv = ioctl_do_addrmode_get(engine, arg); - break; - case IOCTL_XDMA_ALIGN_GET: - rv = ioctl_do_align_get(engine, arg); - break; - default: - dbg_perf("Unsupported operation\n"); - rv = -EINVAL; - break; - } - - return rv; -} - -static int char_sgdma_open(struct inode *inode, struct file *file) -{ - struct xdma_cdev *xcdev; - struct xdma_engine *engine; - - char_open(inode, file); - - xcdev = (struct xdma_cdev *)file->private_data; - engine = xcdev->engine; - - if (engine->streaming && engine->dir == DMA_FROM_DEVICE) { - if (engine->device_open == 1) - return -EBUSY; - else - engine->device_open = 1; - } - - return 0; -} - -static int char_sgdma_close(struct inode *inode, struct file *file) -{ - struct xdma_cdev *xcdev = (struct xdma_cdev *)file->private_data; - struct xdma_engine *engine; - int rv; - - rv = xcdev_check(__func__, xcdev, 1); - if (rv < 0) - return rv; - - engine = xcdev->engine; - - if (engine->streaming && engine->dir == DMA_FROM_DEVICE) { - engine->device_open = 0; - if (engine->cyclic_req) - return xdma_cyclic_transfer_teardown(engine); - } - - return 0; -} -static const struct file_operations sgdma_fops = { - .owner = THIS_MODULE, - .open = char_sgdma_open, - .release = char_sgdma_close, - .write = char_sgdma_write, - .read = char_sgdma_read, - .unlocked_ioctl = char_sgdma_ioctl, - .llseek = char_sgdma_llseek, -}; - -void cdev_sgdma_init(struct xdma_cdev *xcdev) -{ - cdev_init(&xcdev->cdev, &sgdma_fops); -} diff --git a/host_software/driver/xdma/cdev_xvc.h b/host_software/driver/xdma/cdev_xvc.h deleted file mode 100644 index e689706..0000000 --- a/host_software/driver/xdma/cdev_xvc.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of the Xilinx DMA IP Core driver for Linux - * - * Copyright (c) 2016-present, Xilinx, Inc. - * All rights reserved. - * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. - */ - -#ifndef __XVC_IOCTL_H__ -#define __XVC_IOCTL_H__ - -#include - -/* - * !!! TODO !!! - * need a better way set the bar offset dynamicly - */ -#define XVC_BAR_OFFSET_DFLT 0x40000 /* DSA 4.0 */ - -#define XVC_MAGIC 0x58564344 // "XVCD" - -struct xvc_ioc { - unsigned int opcode; - unsigned int length; - unsigned char *tms_buf; - unsigned char *tdi_buf; - unsigned char *tdo_buf; -}; - -#define XDMA_IOCXVC _IOWR(XVC_MAGIC, 1, struct xvc_ioc) - -#endif /* __XVC_IOCTL_H__ */ diff --git a/host_software/driver/xdma/libxdma.o.ur-safe b/host_software/driver/xdma/libxdma.o.ur-safe deleted file mode 100644 index befa7eb..0000000 --- a/host_software/driver/xdma/libxdma.o.ur-safe +++ /dev/null @@ -1,3 +0,0 @@ -/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o-.text-29f300000001 -/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o-.text-2a5f00000001 -/home/wangxuan/pcie_xdma_host_software/driver/xdma/libxdma.o-.text-2ac300000001 diff --git a/host_software/driver/xdma/modules.order b/host_software/driver/xdma/modules.order deleted file mode 100644 index 0ade9ac..0000000 --- a/host_software/driver/xdma/modules.order +++ /dev/null @@ -1 +0,0 @@ -kernel//home/wangxuan/pcie_xdma_host_software/driver/xdma/xdma.ko diff --git a/host_software/driver/xdma/version.h b/host_software/driver/xdma/version.h deleted file mode 100644 index edd3abf..0000000 --- a/host_software/driver/xdma/version.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * This file is part of the Xilinx DMA IP Core driver for Linux - * - * Copyright (c) 2016-present, Xilinx, Inc. - * All rights reserved. - * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. - */ - -#ifndef __XDMA_VERSION_H__ -#define __XDMA_VERSION_H__ - -#define DRV_MOD_MAJOR 2017 -#define DRV_MOD_MINOR 1 -#define DRV_MOD_PATCHLEVEL 47 - -#define DRV_MODULE_VERSION \ - __stringify(DRV_MOD_MAJOR) "." \ - __stringify(DRV_MOD_MINOR) "." \ - __stringify(DRV_MOD_PATCHLEVEL) - -#define DRV_MOD_VERSION_NUMBER \ - ((DRV_MOD_MAJOR)*1000 + (DRV_MOD_MINOR)*100 + DRV_MOD_PATCHLEVEL) - -#endif /* ifndef __XDMA_VERSION_H__ */ diff --git a/host_software/driver/xdma/xdma.mod.c b/host_software/driver/xdma/xdma.mod.c deleted file mode 100644 index c4e906f..0000000 --- a/host_software/driver/xdma/xdma.mod.c +++ /dev/null @@ -1,178 +0,0 @@ -#include -#include -#include - -MODULE_INFO(vermagic, VERMAGIC_STRING); - -__visible struct module __this_module -__attribute__((section(".gnu.linkonce.this_module"))) = { - .name = KBUILD_MODNAME, - .init = init_module, -#ifdef CONFIG_MODULE_UNLOAD - .exit = cleanup_module, -#endif - .arch = MODULE_ARCH_INIT, -}; - -#ifdef RETPOLINE -MODULE_INFO(retpoline, "Y"); -#endif - -static const struct modversion_info ____versions[] -__used -__attribute__((section("__versions"))) = { - { 0x89c51293, __VMLINUX_SYMBOL_STR(module_layout) }, - { 0x8e2f32a6, __VMLINUX_SYMBOL_STR(alloc_pages_current) }, - { 0x2d3385d3, __VMLINUX_SYMBOL_STR(system_wq) }, - { 0xbdc6b187, __VMLINUX_SYMBOL_STR(cpu_tss) }, - { 0x232e610a, __VMLINUX_SYMBOL_STR(cdev_del) }, - { 0xe31697f9, __VMLINUX_SYMBOL_STR(kmalloc_caches) }, - { 0x827f70bf, __VMLINUX_SYMBOL_STR(pci_bus_read_config_byte) }, - { 0xd2b09ce5, __VMLINUX_SYMBOL_STR(__kmalloc) }, - { 0x5c323e32, __VMLINUX_SYMBOL_STR(cdev_init) }, - { 0xda3e43d1, __VMLINUX_SYMBOL_STR(_raw_spin_unlock) }, - { 0xd6ee688f, __VMLINUX_SYMBOL_STR(vmalloc) }, - { 0x27d1be59, __VMLINUX_SYMBOL_STR(pcie_set_readrq) }, - { 0x75f2ad62, __VMLINUX_SYMBOL_STR(boot_cpu_data) }, - { 0x5183e5fe, __VMLINUX_SYMBOL_STR(pci_disable_device) }, - { 0x57e85623, __VMLINUX_SYMBOL_STR(pci_disable_msix) }, - { 0x1337872a, __VMLINUX_SYMBOL_STR(set_page_dirty_lock) }, - { 0x44b1d426, __VMLINUX_SYMBOL_STR(__dynamic_pr_debug) }, - { 0xaecf7e88, __VMLINUX_SYMBOL_STR(device_destroy) }, - { 0xa49d2674, __VMLINUX_SYMBOL_STR(kobject_set_name) }, - { 0x6729d3df, __VMLINUX_SYMBOL_STR(__get_user_4) }, - { 0x3fec048f, __VMLINUX_SYMBOL_STR(sg_next) }, - { 0x178f6728, __VMLINUX_SYMBOL_STR(pci_release_regions) }, - { 0x51ed2cb, __VMLINUX_SYMBOL_STR(pcie_capability_clear_and_set_word) }, - { 0x91b95795, __VMLINUX_SYMBOL_STR(mutex_unlock) }, - { 0x7485e15e, __VMLINUX_SYMBOL_STR(unregister_chrdev_region) }, - { 0x999e8297, __VMLINUX_SYMBOL_STR(vfree) }, - { 0xc9f60e27, __VMLINUX_SYMBOL_STR(pci_bus_write_config_word) }, - { 0x7a2af7b4, __VMLINUX_SYMBOL_STR(cpu_number) }, - { 0x91715312, __VMLINUX_SYMBOL_STR(sprintf) }, - { 0x15ba50a6, __VMLINUX_SYMBOL_STR(jiffies) }, - { 0xf432dd3d, __VMLINUX_SYMBOL_STR(__init_waitqueue_head) }, - { 0x4f8b5ddb, __VMLINUX_SYMBOL_STR(_copy_to_user) }, - { 0x4ff8cf3f, __VMLINUX_SYMBOL_STR(pci_set_master) }, - { 0x7e526bfa, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_r10) }, - { 0xfb578fc5, __VMLINUX_SYMBOL_STR(memset) }, - { 0x5632f5a5, __VMLINUX_SYMBOL_STR(pci_enable_msix) }, - { 0x8ac48649, __VMLINUX_SYMBOL_STR(pci_restore_state) }, - { 0x6355b6e1, __VMLINUX_SYMBOL_STR(pci_iounmap) }, - { 0x8f64aa4, __VMLINUX_SYMBOL_STR(_raw_spin_unlock_irqrestore) }, - { 0x27e1a049, __VMLINUX_SYMBOL_STR(printk) }, - { 0xa1c76e0a, __VMLINUX_SYMBOL_STR(_cond_resched) }, - { 0x16305289, __VMLINUX_SYMBOL_STR(warn_slowpath_null) }, - { 0x7ba1676c, __VMLINUX_SYMBOL_STR(mutex_lock) }, - { 0x5c9a0cac, __VMLINUX_SYMBOL_STR(device_create) }, - { 0xc2cdbf1, __VMLINUX_SYMBOL_STR(synchronize_sched) }, - { 0x2072ee9b, __VMLINUX_SYMBOL_STR(request_threaded_irq) }, - { 0x76ecc95b, __VMLINUX_SYMBOL_STR(pci_find_capability) }, - { 0x7cb63639, __VMLINUX_SYMBOL_STR(cdev_add) }, - { 0xb3822de, __VMLINUX_SYMBOL_STR(arch_dma_alloc_attrs) }, - { 0x9c491f60, __VMLINUX_SYMBOL_STR(sg_alloc_table) }, - { 0x78764f4e, __VMLINUX_SYMBOL_STR(pv_irq_ops) }, - { 0xf8c41092, __VMLINUX_SYMBOL_STR(__free_pages) }, - { 0xb601be4c, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_rdx) }, - { 0xb2fd5ceb, __VMLINUX_SYMBOL_STR(__put_user_4) }, - { 0xff8913b7, __VMLINUX_SYMBOL_STR(pci_bus_read_config_word) }, - { 0x5944d015, __VMLINUX_SYMBOL_STR(__cachemode2pte_tbl) }, - { 0xb0efe3d3, __VMLINUX_SYMBOL_STR(pci_cleanup_aer_uncorrect_error_status) }, - { 0xdb7305a1, __VMLINUX_SYMBOL_STR(__stack_chk_fail) }, - { 0xd62c833f, __VMLINUX_SYMBOL_STR(schedule_timeout) }, - { 0x1000e51, __VMLINUX_SYMBOL_STR(schedule) }, - { 0x2ea2c95c, __VMLINUX_SYMBOL_STR(__x86_indirect_thunk_rax) }, - { 0xbdfb6dbb, __VMLINUX_SYMBOL_STR(__fentry__) }, - { 0xea40e2cf, __VMLINUX_SYMBOL_STR(pci_enable_msi_range) }, - { 0xab5589d9, __VMLINUX_SYMBOL_STR(pci_unregister_driver) }, - { 0x386d8fc2, __VMLINUX_SYMBOL_STR(kmem_cache_alloc_trace) }, - { 0xd52bf1ce, __VMLINUX_SYMBOL_STR(_raw_spin_lock) }, - { 0x9327f5ce, __VMLINUX_SYMBOL_STR(_raw_spin_lock_irqsave) }, - { 0xcf21d241, __VMLINUX_SYMBOL_STR(__wake_up) }, - { 0x34f22f94, __VMLINUX_SYMBOL_STR(prepare_to_wait_event) }, - { 0x37a0cba, __VMLINUX_SYMBOL_STR(kfree) }, - { 0x69ba99d1, __VMLINUX_SYMBOL_STR(remap_pfn_range) }, - { 0x67ab2926, __VMLINUX_SYMBOL_STR(pci_request_regions) }, - { 0x1908ca5, __VMLINUX_SYMBOL_STR(pci_disable_msi) }, - { 0xcd40f77f, __VMLINUX_SYMBOL_STR(dma_supported) }, - { 0x6128b5fc, __VMLINUX_SYMBOL_STR(__printk_ratelimit) }, - { 0x8c76c736, __VMLINUX_SYMBOL_STR(__pci_register_driver) }, - { 0x198434aa, __VMLINUX_SYMBOL_STR(put_page) }, - { 0xc7ba2c33, __VMLINUX_SYMBOL_STR(class_destroy) }, - { 0xfa66f77c, __VMLINUX_SYMBOL_STR(finish_wait) }, - { 0xb1645a2e, __VMLINUX_SYMBOL_STR(sg_free_table) }, - { 0x2e0d2f7f, __VMLINUX_SYMBOL_STR(queue_work_on) }, - { 0xad4a697b, __VMLINUX_SYMBOL_STR(pci_iomap) }, - { 0xe50fa66e, __VMLINUX_SYMBOL_STR(pci_enable_device_mem) }, - { 0x7f02188f, __VMLINUX_SYMBOL_STR(__msecs_to_jiffies) }, - { 0x436c2179, __VMLINUX_SYMBOL_STR(iowrite32) }, - { 0x9dde0499, __VMLINUX_SYMBOL_STR(pci_enable_device) }, - { 0x4f6b400b, __VMLINUX_SYMBOL_STR(_copy_from_user) }, - { 0xdeb1aafa, __VMLINUX_SYMBOL_STR(param_ops_uint) }, - { 0x490b4d86, __VMLINUX_SYMBOL_STR(__class_create) }, - { 0xb24d80c5, __VMLINUX_SYMBOL_STR(dma_ops) }, - { 0x29537c9e, __VMLINUX_SYMBOL_STR(alloc_chrdev_region) }, - { 0xe484e35f, __VMLINUX_SYMBOL_STR(ioread32) }, - { 0xa4921e57, __VMLINUX_SYMBOL_STR(get_user_pages_fast) }, - { 0x833c4e37, __VMLINUX_SYMBOL_STR(pcie_capability_read_word) }, - { 0xf20dabd8, __VMLINUX_SYMBOL_STR(free_irq) }, - { 0xffd9eac0, __VMLINUX_SYMBOL_STR(pci_save_state) }, -}; - -static const char __module_depends[] -__used -__attribute__((section(".modinfo"))) = -"depends="; - -MODULE_ALIAS("pci:v000010EEd0000903Fsv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009038sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009028sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009018sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009034sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009024sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009014sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009032sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009022sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009012sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009031sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009021sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00009011sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008011sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008012sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008014sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008018sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008021sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008022sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008024sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008028sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008031sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008032sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008034sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00008038sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007011sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007012sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007014sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007018sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007021sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007022sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007024sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007028sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007031sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007032sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007034sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00007038sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00006828sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00006830sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00006928sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00006930sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00006A28sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00006A30sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00006D30sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00004808sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00004828sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00004908sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00004A28sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00004B28sv*sd*bc*sc*i*"); -MODULE_ALIAS("pci:v000010EEd00002808sv*sd*bc*sc*i*"); - -MODULE_INFO(srcversion, "7F40379C2ABE3F8094CCBAC");