mirror of
git://nv-tegra.nvidia.com/tegra/kernel-src/nv-kernel-display-driver.git
synced 2025-12-22 09:11:48 +03:00
d13779dbbab1c776db15f462cd46b29f2c0f8c7c - Makefile 7d577fdb9594ae572ff38fdda682a4796ab832ca - COPYING 5728867ce2e96b63b29367be6aa1c0e47bcafc8f - SECURITY.md 6b73bf6a534ddc0f64e8ba88739381c3b7fb4b5c - nv-compiler.sh 05e911b99b109a721d2045f025b21189e2718e60 - README.md ec5f1eb408e0b650158e0310fb1ddd8e9b323a6f - CONTRIBUTING.md af3ee56442f16029cb9b13537477c384226b22fc - CODE_OF_CONDUCT.md 07bd07999f296d935386a8edf719d0e296f63227 - kernel-open/Kbuild 45b68e3eacda04dcadce48a8238574302a71a3ca - kernel-open/Makefile 70bd025d834add7e40a0ee69e48612a289df1f07 - kernel-open/conftest.sh 0b1508742a1c5a04b6c3a4be1b48b506f4180848 - kernel-open/dkms.conf 19a5da412ce1557b721b8550a4a80196f6162ba6 - kernel-open/common/inc/os_dsi_panel_props.h 4750735d6f3b334499c81d499a06a654a052713d - kernel-open/common/inc/nv-caps.h 92de3baafe321dd0dcf8665aae4614d5ac670718 - kernel-open/common/inc/rs_access.h 60ef64c0f15526ae2d786e5cec07f28570f0663b - kernel-open/common/inc/conftest.h 880e45b68b19fdb91ac94991f0e6d7fc3b406b1f - kernel-open/common/inc/nv-pci-types.h 6d2f660ef0942edf664874f260266ec81cd0ff08 - kernel-open/common/inc/nvtypes.h d580300f41118dacc5569fffa9f47e78c5883141 - kernel-open/common/inc/nv-modeset-interface.h 5bc7a748c7d3dfa6559ca4f9fe6199e17098ec8f - kernel-open/common/inc/nv-lock.h b249abc0a7d0c9889008e98cb2f8515a9d310b85 - kernel-open/common/inc/nvgputypes.h e4a4f57abb8769d204468b2f5000c81f5ea7c92f - kernel-open/common/inc/nv-procfs.h 8b19b93e958aca626899f035334a4c96f8776eb6 - kernel-open/common/inc/nv.h ede1f77acb43e28391bceac058e00a7a8d799b0d - kernel-open/common/inc/nvmisc.h ae374d3e438f8d3b60df8c4602618c58564b73f9 - kernel-open/common/inc/rm-gpu-ops.h 3f7b20e27e6576ee1f2f0557d269697a0b8af7ec - kernel-open/common/inc/nv-firmware-registry.h 5fd1da24ae8263c43dc5dada4702564b6f0ca3d9 - kernel-open/common/inc/dce_rm_client_ipc.h 3e8075872e2efa843b74b884ef5098468edc4f18 - kernel-open/common/inc/nvimpshared.h befb2c0bf0a31b61be5469575ce3c73a9204f4e9 - kernel-open/common/inc/nv_stdarg.h 0e70d16576584082ee4c7f3ff9944f3bd107b1c1 - kernel-open/common/inc/cpuopsys.h d7ab0ee225361daacd280ff98848851933a10a98 - kernel-open/common/inc/nv-list-helpers.h b02c378ac0521c380fc2403f0520949f785b1db6 - kernel-open/common/inc/nv-dmabuf.h a3d1e51c0f4217f1dc4cb0c48aa0eafd054d4e5e - kernel-open/common/inc/nv-procfs-utils.h 81592e5c17bebad04cd11d73672c859baa070329 - kernel-open/common/inc/nv-chardev-numbers.h 61cf8f3fd32142dc402f6802b5d4c9af6c875c35 - kernel-open/common/inc/nv-firmware.h d5253e7e4abd3ad8d72375260aa80037adcd8973 - kernel-open/common/inc/nv_dpy_id.h 61a9589e4a8ec122e5a6c2258658d493ee747897 - kernel-open/common/inc/nv-platform.h b986bc6591ba17a74ad81ec4c93347564c6d5165 - kernel-open/common/inc/nvkms-format.h 4f487eccd762f3ca645a685d5c333ff569e7987c - kernel-open/common/inc/nv-kthread-q-os.h 4015c4557ea0790a2bdf5695832c89e31d75aee9 - kernel-open/common/inc/nvlimits.h 143051f69a53db0e7c5d2f846a9c14d666e264b4 - kernel-open/common/inc/nv-kref.h 56f432032bef4683c2801f46bec5065923475fb1 - kernel-open/common/inc/nv-kthread-q.h b4c5d759f035b540648117b1bff6b1701476a398 - kernel-open/common/inc/nvCpuUuid.h ea5d5f391b3d634e97c8f9463045bd314c81fe14 - kernel-open/common/inc/nv-linux.h 7c7888550b12eeb98128ea9ac771b897327f538e - kernel-open/common/inc/nv-hypervisor.h f9cb3701681994ff6f32833892d900b0da2b89f6 - kernel-open/common/inc/nv-pgprot.h b8700a911ac85770bf25d70b9692308af63966bd - kernel-open/common/inc/nvstatuscodes.h 3a5f4f105672921b857fec7f2b577d9d525afe37 - kernel-open/common/inc/nv-timer.h 5cd0b3f9c7f544e9064efc9b5ba4f297e5494315 - kernel-open/common/inc/nv-time.h 7a78f354e0b68f03d6ab566d5b755e299456f361 - kernel-open/common/inc/os_gpio.h 3d5aa82afa27ba6edd0ebbf500e8b07a8d1dd788 - kernel-open/common/inc/nv-proto.h 2eb11e523a3ecba2dcd68f3146e1e666a44256ae - kernel-open/common/inc/nv-ioctl.h 1328058925b64e97588d670fe70466b31af7c7c1 - kernel-open/common/inc/nv-mm.h fba1f7a11efe4362f60cbf3ec71a9a2a3b28a9d8 - kernel-open/common/inc/nv-pci.h 95bf694a98ba78d5a19e66463b8adda631e6ce4c - kernel-open/common/inc/nvstatus.h d74a8d4a9ae3d36e92b39bc7c74b27df44626b1c - kernel-open/common/inc/nv_mig_types.h b3258444b6a2c2399f5f00c7cac5b470c41caeaa - kernel-open/common/inc/nv-hash.h 29309411e2bf1c2e6492a104dcb9f53705c2e9aa - kernel-open/common/inc/nvkms-kapi.h 44cb5bc2bc87a5c3447bcb61f2ce5aef08c07fa7 - kernel-open/common/inc/nv_uvm_interface.h 1e7eec6561b04d2d21c3515987aaa116e9401c1f - kernel-open/common/inc/nv-kernel-interface-api.h c54c62de441828282db9a4f5b35c2fa5c97d94f1 - kernel-open/common/inc/nvkms-api-types.h ade7410c1c0572dbed49b4b0d97b87245ca59115 - kernel-open/common/inc/os-interface.h 2ffd0138e1b3425ade16b962c3ff02a82cde2e64 - kernel-open/common/inc/nv-ioctl-numa.h 995d8447f8539bd736cc09d62983ae8ebc7e3436 - kernel-open/common/inc/nv_common_utils.h c75bfc368c6ce3fc2c1a0c5062834e90d822b365 - kernel-open/common/inc/nv-memdbg.h dfd7b82a7f2939d4c1869840059705c6b71bffe3 - kernel-open/common/inc/nv-msi.h 3b12d770f8592b94a8c7774c372e80ad08c5774c - kernel-open/common/inc/nvi2c.h 894ef9e230604572bbceabdfd5f241059d54aa10 - kernel-open/common/inc/nv_speculation_barrier.h 107d1ecb8a128044260915ea259b1e64de3defea - kernel-open/common/inc/nv-ioctl-numbers.h 19cfcbf5a3021aa9aaa0ceacbb6711e7f7a6e09e - kernel-open/common/inc/nv_uvm_user_types.h cfcd2ef5eaec92f8e4647fff02a3b7e16473cbff - kernel-open/common/inc/nv_uvm_types.h b642fb649ce2ba17f37c8aa73f61b38f99a74986 - kernel-open/common/inc/nv-retpoline.h 3a26838c4edd3525daa68ac6fc7b06842dc6fc07 - kernel-open/common/inc/nv-gpu-info.h cda75171ca7d8bf920aab6d56ef9aadec16fd15d - kernel-open/common/inc/os/nv_memory_type.h 70b67003fda6bdb8a01fa1e41c3b0e25136a856c - kernel-open/common/inc/os/nv_memory_area.h 11b09260232a88aa1f73f109fdfab491a7b73576 - kernel-open/nvidia/nv-nano-timer.c dcf4427b83cce7737f2b784d410291bf7a9612dc - kernel-open/nvidia/nv-reg.h 0b8ff957fb14f20ba86f61e556d1ab15bf5acd74 - kernel-open/nvidia/nv-imp.c 6b09b5ef8a37f78c8e82074b06b40ef593c81807 - kernel-open/nvidia/libspdm_rsa.c b8d361216db85fe897cbced2a9600507b7708c61 - kernel-open/nvidia/libspdm_hkdf_sha.c 66e2bfc490fb77e0b72a8192b719d3dc74d25d59 - kernel-open/nvidia/nv-pat.c 26a30f2d26c2a97a6e2ee457d97d32f48b0bf25b - kernel-open/nvidia/nv-vm.c b8a770cea0629c57d8b0b3d7414d7b0f043ee8cf - kernel-open/nvidia/libspdm_ecc.c 4c183eb39251cd78d90868ec6f75ebc7a37e6644 - kernel-open/nvidia/os-usermap.c 8c30b6230439edcbec62636cc93be512bca8637f - kernel-open/nvidia/nv-usermap.c 7af675f85642229b7e7de05dcadd622550fe7ad7 - kernel-open/nvidia/nv-vtophys.c d11ab03a617b29efcf00f85e24ebce60f91cf82c - kernel-open/nvidia/nv-backlight.c ef8fd76c55625aeaa71c9b789c4cf519ef6116b2 - kernel-open/nvidia/libspdm_hkdf.c 1590794925ebd9cbc14aae8c47e0cc205a3f4b52 - kernel-open/nvidia/nv-rsync.h 934a686ba8d7b77cce2d928cb3b04f611d9f9187 - kernel-open/nvidia/libspdm_aead.c f16e6a33b5004566333fb8b99504a0fb95d51226 - kernel-open/nvidia/nv-gpio.c 8ed2c3b93eeaa52342d944e794180fd5d386688a - kernel-open/nvidia/libspdm_rsa_ext.c 2e5d18118835c19c5ca7edee9bceeae613b9d7f9 - kernel-open/nvidia/nv-procfs.c 23009178fd74b867836e8c23055544a900aeea7a - kernel-open/nvidia/nv.c 65fe797fb5d4af2db67544ddb79d49ab1b7ca859 - kernel-open/nvidia/nv-dsi-parse-panel-props.c e3efae4ed920545062a2d06064df8be1a2a42135 - kernel-open/nvidia/nv-caps-imex.h 8c64e75aaaa9ac6f17aae7ed62db23eb2e5b9953 - kernel-open/nvidia/nv_uvm_interface.c 4563589496a93a2720e25807ca1be2565f03554c - kernel-open/nvidia/nv-bpmp.c aea97021d9aa023a357f009fcddc710f710ceb5e - kernel-open/nvidia/libspdm_x509.c f29e5bc1c7bd2c670780cdbb7275900a69f4d205 - kernel-open/nvidia/internal_crypt_lib.h 22418fb7ae38c7f153af94edf2f5bd1cbcacb889 - kernel-open/nvidia/nv-modeset-interface.c 6ae527b69eebb44224b05e8cb3546757532d8a16 - kernel-open/nvidia/nv-dma.c fe204e3820d206b5b0c34a51084f39b97310305a - kernel-open/nvidia/nv-ipc-soc.c 60d6ff5becc0ddbcf4b489b9d88c1dec8ccc67be - kernel-open/nvidia/nv-platform-pm.c c1f7c81018a414b7a657431b115a1b86d3ebe3e7 - kernel-open/nvidia/os-mlock.c c762aa186dc72ed0b9183492f9bd187c301d33d3 - kernel-open/nvidia/nv-kthread-q.c 70bece14e12b9ffc92816ee8159a4ce596579d78 - kernel-open/nvidia/os-pci.c a677049bb56fa5ebe22fe43b0c4a12acd58a6677 - kernel-open/nvidia/nv-p2p.c e4d12f027cb5f74124da71bbbc23bcb33651834a - kernel-open/nvidia/nv-pci-table.c 5aec112c8a7eca49686f36efefe6d6e3e9548e32 - kernel-open/nvidia/nv-pci.c 6dfc57ac42bed97c6ff81d82e493f05b369e0b84 - kernel-open/nvidia/nvspdm_cryptlib_extensions.h bba706cfbc04b3a880b5e661066f92e765fad663 - kernel-open/nvidia/nv-caps-imex.c ed3c83f62e4ccc4b53d886eedd4b47518a361393 - kernel-open/nvidia/nv-dmabuf.c 66b7fad4d73a23153298ce777afb14d2c8be42c1 - kernel-open/nvidia/libspdm_internal_crypt_lib.c 6d4fbea733fdcd92fc6a8a5884e8bb359f9e8abd - kernel-open/nvidia/rmp2pdefines.h b71bf4426322ab59e78e2a1500509a5f4b2b71ab - kernel-open/nvidia/nv-pat.h 9a5a58bd6eb71a4c32e334a1a4e3326a17143cce - kernel-open/nvidia/os-interface.c 1a91f5e6d517856303da448bea80d167b238e41c - kernel-open/nvidia/nv-i2c.c 7d409e3f0255d17457bffbf318e2f9ea160680a5 - kernel-open/nvidia/nv-pci-table.h c50865d3070a0c3476ce24ff1ab4cc4e3f9ea4be - kernel-open/nvidia/detect-self-hosted.h 7ae9a57b9e99fd2a3534798e52e57f7784738a53 - kernel-open/nvidia/nv-report-err.c 3b27e4eaa97bd6fa71f1a075b50af69b1ec16454 - kernel-open/nvidia/libspdm_ec.c dd9e367cba9e0672c998ec6d570be38084a365ab - kernel-open/nvidia/libspdm_rand.c d8b8077adb7fd70eb9528d421bdef98c4378b57a - kernel-open/nvidia/nv-msi.c 23ae2957e6d58ab1b41398b6fdeecb7c475300b9 - kernel-open/nvidia/nv-platform.c dd819a875c584bc469082fcf519779ea00b1d952 - kernel-open/nvidia/libspdm_aead_aes_gcm.c 74958745f83b14c04aaa60248bf5c86ceef6b5cb - kernel-open/nvidia/nv-acpi.c 4d19a1756af848d25fd2fd8cc691dcbcf0afb776 - kernel-open/nvidia/os-registry.c 80f9ac558a57c60cbf70f3ecaf73c71e60c98885 - kernel-open/nvidia/nv-rsync.c 7f5d251db1db4a179a67efea0178fbfda94f95d0 - kernel-open/nvidia/nv_gpu_ops.h 642c3a7d10b263ab9a63073f83ad843566927b58 - kernel-open/nvidia/libspdm_hmac_sha.c 7d53c2d27580d1b2cc56246d9972f3f310a3cd34 - kernel-open/nvidia/nv-clk.c 0f28ebcdb723e836c923e40642429838fa9e86dc - kernel-open/nvidia/nvidia-sources.Kbuild 99540efd2dfa6907b84e628e12370eefb0222850 - kernel-open/nvidia/nv-mmap.c 11ac7a3a3b4def7fa31a289f5f8461ad90eca06b - kernel-open/nvidia/nv-tracepoint.h a14b9115cff1e5e7491737083588a5646c8c227b - kernel-open/nvidia/nv-report-err.h 011f975d4f94f7b734efa23d3c8075321eaaf0e8 - kernel-open/nvidia/nv-memdbg.c c0cf3914fcda832f27472ba2fdb9c0f831f05733 - kernel-open/nvidia/nvidia.Kbuild ac976b92e83f19125d6b3f7e95d9523e430b9b09 - kernel-open/nvidia/nv-p2p.h 9b036018501d9b8543aabe7ec35dbe33023bb3e0 - kernel-open/nvidia/nv-host1x.c 11778961efc78ef488be5387fa3de0c1b761c0d9 - kernel-open/nvidia/libspdm_sha.c 02b1936dd9a9e30141245209d79b8304b7f12eb9 - kernel-open/nvidia/nv-cray.c 2d61ad39b2356c9cfd8d57c1842e80a20272e37f - kernel-open/nvidia/nv-caps.c fc199c04b321db79ab5446574d9b994f8bfe6c24 - kernel-open/nvidia/libspdm_shash.c fa178a7209f56008e67b553a2c5ad1b2dd383aac - kernel-open/nvidia/hal/library/cryptlib/cryptlib_rng.h 34de62da6f880ba8022299c77eddbb11d7fc68d2 - kernel-open/nvidia/hal/library/cryptlib/cryptlib_hash.h 8af43a3f0e4201aa6ff0099221a371fb1801e818 - kernel-open/nvidia/hal/library/cryptlib/cryptlib_rsa.h cf94004b7b5729982806f7d6ef7cc6db53e3de56 - kernel-open/nvidia/hal/library/cryptlib/cryptlib_aead.h 9a6e164ec60c2feb1eb8782e3028afbffe420927 - kernel-open/nvidia/hal/library/cryptlib/cryptlib_mac.h 4991dfa8852edbdd1ffbd2d44f7b6ac4e1c8c752 - kernel-open/nvidia/hal/library/cryptlib/cryptlib_ec.h 7694b027d74d65561ce6cd15a8c0822e4b32b73a - kernel-open/nvidia/hal/library/cryptlib/cryptlib_sm2.h 8b84a0cc1127f39652362007e048ea568c9cf80b - kernel-open/nvidia/hal/library/cryptlib/cryptlib_ecd.h 2d7b566655ba8a05fae4ea4f6c806b75d7ebb5f3 - kernel-open/nvidia/hal/library/cryptlib/cryptlib_cert.h 0dcb1fd3982e6307b07c917cb453cddbcd1d2f43 - kernel-open/nvidia/hal/library/cryptlib/cryptlib_dh.h 7ff12b437215b77c920a845943e4101dcde289c4 - kernel-open/nvidia/hal/library/cryptlib/cryptlib_hkdf.h 16dd525c52448a32cc8da75d6a644d8a35efbfee - kernel-open/nvidia/library/spdm_lib_config.h 53a9acf65cad6bc4869a15d8086990365c987456 - kernel-open/nvidia/library/cryptlib.h cfbaebb1091f7b1a8d2e3c54c2301ac45ade6c40 - kernel-open/nvidia/internal/libspdm_lib_config.h 2ea094687fbee1e116cd0362cbeba7592439e0b6 - kernel-open/nvidia-drm/nvidia-drm-crtc.h bed7b5053d09473188061b0d7f6a3a65b64f72e0 - kernel-open/nvidia-drm/nvidia-drm-linux.c 0f8e4535cf97fadea23c9848483355583f492131 - kernel-open/nvidia-drm/nvidia-drm-utils.c 35034b6f174cd6a14b7d94a07f777794570959b4 - kernel-open/nvidia-drm/nvidia-drm-gem-dma-buf.h 072e1d6a260e348dada181162949eee190321ed8 - kernel-open/nvidia-drm/nvidia-drm-gem-nvkms-memory.c e86dac2985f4e61f4e2676b3290e47cdcb951c46 - kernel-open/nvidia-drm/nvidia-drm-modeset.c f00a605cac7ffc7f309e3952c5d4cea7cbfc0b7e - kernel-open/nvidia-drm/nvidia-drm-gem-user-memory.h 99642b76e9a84b5a1d2e2f4a8c7fb7bcd77a44fd - kernel-open/nvidia-drm/nvidia-drm.h 763833186eabf1a0501434426c18161febf624d4 - kernel-open/nvidia-drm/nvidia-drm-fb.h 4bada3ff7bfee8b7e222fc4cafb2ac97c67d7898 - kernel-open/nvidia-drm/nvidia-drm-gem-nvkms-memory.h 99a2e922a448b4d76318ec151378c8bbf5971595 - kernel-open/nvidia-drm/nvidia-drm-helper.c ace74442a1a573cee5ed1f67801ab1bdc142b4ae - kernel-open/nvidia-drm/nvidia-drm.c 94c28482252c983fd97532634ffafea0bf77337a - kernel-open/nvidia-drm/nvidia-drm-ioctl.h a4f77f8ce94f63f3ca2a970c1935d8da48ab5ccc - kernel-open/nvidia-drm/nvidia-drm-format.c 6ea6eeaae58c4ced3fb2d6bc1128b895165e5a9a - kernel-open/nvidia-drm/nvidia-drm-drv.h 4154c5562cebd2747bd15fb302c19cb0cefe1c9c - kernel-open/nvidia-drm/nvidia-drm-connector.h c762aa186dc72ed0b9183492f9bd187c301d33d3 - kernel-open/nvidia-drm/nv-kthread-q.c e4d12f027cb5f74124da71bbbc23bcb33651834a - kernel-open/nvidia-drm/nv-pci-table.c 47110750cf788e7d9ddb5db85be3658ac660a109 - kernel-open/nvidia-drm/nvidia-drm-fence.h 73a1acab50e65c468cb71b65238a051bc306ae70 - kernel-open/nvidia-drm/nvidia-drm-encoder.h aa388c0d44060b8586967240927306006531cdb7 - kernel-open/nvidia-drm/nvidia-drm-helper.h d0b4f4383a7d29be40dd22e36faa96dae12d2364 - kernel-open/nvidia-drm/nvidia-drm-os-interface.h 63a2fec1f2c425e084bdc07ff05bda62ed6b6ff1 - kernel-open/nvidia-drm/nvidia-drm-gem-user-memory.c 0e2d8b82e79dfd18fff7ce45e42e501e2e7a06c2 - kernel-open/nvidia-drm/nvidia-drm-drv.c 19031f2eaaaeb0fa1da61681fa6048c3e303848b - kernel-open/nvidia-drm/nvidia-drm-gem.c 71ea2d5b02bf8fb3e8cf6b7c84686e2edbc244d0 - kernel-open/nvidia-drm/nvidia-drm-encoder.c 7d409e3f0255d17457bffbf318e2f9ea160680a5 - kernel-open/nvidia-drm/nv-pci-table.h 9f57b8724205e03ca66b32fe710cd36b82932528 - kernel-open/nvidia-drm/nvidia-drm-conftest.h 6e9838b169beffe149ba12625acb496504d36d50 - kernel-open/nvidia-drm/nvidia-drm-gem-dma-buf.c d2525a36b7aec71982df80a89b861f220312103d - kernel-open/nvidia-drm/nvidia-dma-resv-helper.h a505f0aa98ebcf438307f6bacf9bf5a5be189839 - kernel-open/nvidia-drm/nvidia-drm-connector.c d5518597469dc874ee7e264b9400db51af2fcd44 - kernel-open/nvidia-drm/nvidia-drm-format.h 437d87e7e4bd34ae3c67b27c2faaa394575acf70 - kernel-open/nvidia-drm/nvidia-drm-priv.h 88b2035ddbba8c7f455209e61256b4e7b09c11dd - kernel-open/nvidia-drm/nvidia-drm-fence.c eff6a0b72274c8824b7a79e9aee261da3a6fb4f1 - kernel-open/nvidia-drm/nvidia-drm-gem.h 6528efa1f8061678b8543c5c0be8761cab860858 - kernel-open/nvidia-drm/nvidia-drm-modeset.h 46a41b0b3470190abcdc57a739238a9cd773812b - kernel-open/nvidia-drm/nvidia-drm.Kbuild 995d8447f8539bd736cc09d62983ae8ebc7e3436 - kernel-open/nvidia-drm/nv_common_utils.h 40b5613d1fbbe6b74bff67a5d07974ad321f75f0 - kernel-open/nvidia-drm/nvidia-drm-utils.h d924c494620760887546f428f87387d8ed5b99a6 - kernel-open/nvidia-drm/nvidia-drm-fb.c 5eb8385042f3efa5c2e14d168cdb40b211467552 - kernel-open/nvidia-drm/nvidia-drm-crtc.c 62a9b9b30fd7417d9ab085b2bfc731aadd9826f9 - kernel-open/nvidia-drm/nvidia-drm-os-interface.c ca86fee8bd52e6c84e376199c5f3890078bc2031 - kernel-open/nvidia-modeset/nvidia-modeset-os-interface.h 73d346cb00350ecef5cb841316f24021d8b15e8d - kernel-open/nvidia-modeset/nvidia-modeset-linux.c 885370cd7fc5f4d9d685d9d8d3e21460fd30cb38 - kernel-open/nvidia-modeset/nvkms.h c762aa186dc72ed0b9183492f9bd187c301d33d3 - kernel-open/nvidia-modeset/nv-kthread-q.c 8ef1c6aa1976e45bdf9c3eded10434daa5b79341 - kernel-open/nvidia-modeset/nvidia-modeset.Kbuild 2ea1436104463c5e3d177e8574c3b4298976d37e - kernel-open/nvidia-modeset/nvkms-ioctl.h 13d4f9648118dd25b790be0d8d72ebaa12cc8d0e - src/common/sdk/nvidia/inc/rs_access.h 579be4859587206460d8729804aab19180fb69bb - src/common/sdk/nvidia/inc/nvtypes.h 993f17e3094243623f793ae16bd84b5fa3f335ec - src/common/sdk/nvidia/inc/g_finn_rm_api.h a54d77d45f9b0c5ae3fa8b59d2117145260800b6 - src/common/sdk/nvidia/inc/cc_drv.h b249abc0a7d0c9889008e98cb2f8515a9d310b85 - src/common/sdk/nvidia/inc/nvgputypes.h 78a4b6b19a38de41527ef8b290754deca5906817 - src/common/sdk/nvidia/inc/nvcd.h ede1f77acb43e28391bceac058e00a7a8d799b0d - src/common/sdk/nvidia/inc/nvmisc.h 46966ed7fc8d85931b49b12683c42666181f33f6 - src/common/sdk/nvidia/inc/nvimpshared.h befb2c0bf0a31b61be5469575ce3c73a9204f4e9 - src/common/sdk/nvidia/inc/nv_stdarg.h f5a682339a89d2b119b43e5b9263dd67346ed3bc - src/common/sdk/nvidia/inc/cpuopsys.h cf1de27d5bcbd0adbe3c3b64466193b7d9094c71 - src/common/sdk/nvidia/inc/nverror.h 4015c4557ea0790a2bdf5695832c89e31d75aee9 - src/common/sdk/nvidia/inc/nvlimits.h 7c7888550b12eeb98128ea9ac771b897327f538e - src/common/sdk/nvidia/inc/nv-hypervisor.h b8700a911ac85770bf25d70b9692308af63966bd - src/common/sdk/nvidia/inc/nvstatuscodes.h 95bf694a98ba78d5a19e66463b8adda631e6ce4c - src/common/sdk/nvidia/inc/nvstatus.h a506a41b8dcf657fb39a740ffc1dfd83835d6c89 - src/common/sdk/nvidia/inc/nvcfg_sdk.h 1e7eec6561b04d2d21c3515987aaa116e9401c1f - src/common/sdk/nvidia/inc/nv-kernel-interface-api.h af0bc90b3ad4767de53b8ff91e246fdab0146e8b - src/common/sdk/nvidia/inc/nvsecurityinfo.h 5cec5038e1f4a395a08b765c8361a9560f3312b7 - src/common/sdk/nvidia/inc/nvdisptypes.h c8b96af9d498f87cb9acde064648f9e84d789055 - src/common/sdk/nvidia/inc/nv_vgpu_types.h 3b12d770f8592b94a8c7774c372e80ad08c5774c - src/common/sdk/nvidia/inc/nvi2c.h bbf6c09ef9bb10ab63d337bf011872f9073c3e5b - src/common/sdk/nvidia/inc/nvos.h 9bca638f5832d831880f090c583fac6fc8cf6ee6 - src/common/sdk/nvidia/inc/dpringbuffertypes.h 7de14a0c3cc8460a9c41e1ee32fda5409c5b9988 - src/common/sdk/nvidia/inc/mmu_fmt_types.h 774318ced0fdcb199e99cf0fee9688259dd01a51 - src/common/sdk/nvidia/inc/nvfixedtypes.h ed51b6e2d454af3da36f9c5f4a8a7958d2c5f156 - src/common/sdk/nvidia/inc/alloc/alloc_channel.h ffe618524466cbbff64de55d88fd987e198bb8c9 - src/common/sdk/nvidia/inc/class/cl9271.h cef74c734fc7d2f32ff74095c59212d9e1d4cafc - src/common/sdk/nvidia/inc/class/cl84a0.h 9f8a45cb986e3ad2bd4a8900469fe5f8b0c9463a - src/common/sdk/nvidia/inc/class/cl9870.h a6bb32861fa3f93ccb16490f0f2751a1ef333eed - src/common/sdk/nvidia/inc/class/cl0101.h e6818f1728a66a70080e87dac15a6f92dd875b4e - src/common/sdk/nvidia/inc/class/cl927d.h 522682a17bacd5c1d6081c0020d094ee3d5c4a30 - src/common/sdk/nvidia/inc/class/clcb97.h 89d4eeb421fc2be3b9717e333e9ff67bfffa24e8 - src/common/sdk/nvidia/inc/class/cl2080.h f558fddfdc088b86a1b479542b8e782e42a5bdce - src/common/sdk/nvidia/inc/class/clc37a.h d301edef2d1dd42382670e5a6ceef0d8caf67d28 - src/common/sdk/nvidia/inc/class/cl90cd.h 1dfae8f11f8e92908f59a1c9493e84ce40d53b90 - src/common/sdk/nvidia/inc/class/cl0070.h 95d99f0805c8451f0f221483b3618e4dbd1e1dd8 - src/common/sdk/nvidia/inc/class/cl90f1.h 99a34eee22f584d5dfb49c3018a8cb9a7b1035ed - src/common/sdk/nvidia/inc/class/cl5070_notification.h c4f090f0dae5bdebf28c514c1b5a9bd8606aa56c - src/common/sdk/nvidia/inc/class/cl9097.h 4b77798281f3754a80961308d44a70b1a717283b - src/common/sdk/nvidia/inc/class/clc46f.h bd2a88f8dbc64add00ad366aa3e76d116cb090b3 - src/common/sdk/nvidia/inc/class/cl0073.h e587a693bc1cee68983a7039ddbf16a3d3461d64 - src/common/sdk/nvidia/inc/class/cl9471.h ddbffcce44afa7c07924fd64a608f7f3fe608ccc - src/common/sdk/nvidia/inc/class/cl0071.h 74c75472658eea77d031bf3979dd7fe695b4293f - src/common/sdk/nvidia/inc/class/cl0092_callback.h fd16daebcd23a680b988dde4ae99625434dcb8fa - src/common/sdk/nvidia/inc/class/cl0000.h c2d8bb02052e80cd0d11695e734f5e05ab7faeb5 - src/common/sdk/nvidia/inc/class/cl907dswspare.h 5ca1d01dab6b9e814160ddce868d00aa9a1ead58 - src/common/sdk/nvidia/inc/class/clc873.h 7c7406d40a09372dcae2aaf3fcad225c3dd2cf3f - src/common/sdk/nvidia/inc/class/cl9010_callback.h 2240664ad950c9c2e64b6f4d18e05349bc91443c - src/common/sdk/nvidia/inc/class/clc573.h 593384ce8938ceeec46c782d6869eda3c7b8c274 - src/common/sdk/nvidia/inc/class/cl900e.h 101da471fe4e167815425793491e43193e407d9a - src/common/sdk/nvidia/inc/class/clc397.h dec74b9cf8062f1a0a8bbeca58b4f98722fd94b0 - src/common/sdk/nvidia/inc/class/cl0076.h 46f74fc51a7ec532330e966cad032782e80808b8 - src/common/sdk/nvidia/inc/class/clcc7b.h 053e3c0de24348d3f7e7fe9cbd1743f46be7a978 - src/common/sdk/nvidia/inc/class/cl0004.h 71e34a03bcfa70edfbec4dbdeade82a932057938 - src/common/sdk/nvidia/inc/class/clc637.h 447fe99b23c5dbe3d2a7601e8228a1a1831c6705 - src/common/sdk/nvidia/inc/class/clcc70.h 89ed6dd37fca994e18e03a5410d865b88e1ff776 - src/common/sdk/nvidia/inc/class/clc87e.h 03d873c3a0e0376440f23171640d9c517f7a34e9 - src/common/sdk/nvidia/inc/class/cl902d.h 78259dc2a70da76ef222ac2dc460fe3caa32457a - src/common/sdk/nvidia/inc/class/clc37e.h b7a5b31a8c3606aa98ba823e37e21520b55ba95c - src/common/sdk/nvidia/inc/class/cl402c.h 5ee1adc8d952212b37211c6f4f677ba672f5117c - src/common/sdk/nvidia/inc/class/clcc71.h bd12f7cdc3a01668b9c486dc6456f9263dd459ea - src/common/sdk/nvidia/inc/class/clc57b.h 4b2f2194a1655cc6ae707866f130bbe357d0c21f - src/common/sdk/nvidia/inc/class/clb097tex.h 5409e5af182ac18ef8d13380bdfe7cf2e83d37d7 - src/common/sdk/nvidia/inc/class/clc37b.h aeb4cbab8d1d0fbd0a5747fa36d6f56c00234b2d - src/common/sdk/nvidia/inc/class/clc097tex.h 36fd6906e2688dad2e7ab648be7e070b9eb6f11d - src/common/sdk/nvidia/inc/class/clc971.h 513c505274565fa25c5a80f88a7d361ffbcb08c3 - src/common/sdk/nvidia/inc/class/cl0005.h 53e6252cd85a60698c49a721f4e41da1cb14e5bd - src/common/sdk/nvidia/inc/class/clc97dswspare.h 645adeb829dbcf315bf67ff8387e7a5d982d7b6e - src/common/sdk/nvidia/inc/class/cl00de.h 0f91db32d9e346b4d9f3762c9e59a8f8e5fd0903 - src/common/sdk/nvidia/inc/class/clcc7d.h a24c2a943c7ceceb8d015f5cd02148f8c4e7c23d - src/common/sdk/nvidia/inc/class/clb097.h 691bb932ea3f60d2b9ad3e4d7fa53ab1a2a5e6c5 - src/common/sdk/nvidia/inc/class/clc870.h 758e2fb8b5d89079f03be09d74964e9246cb180c - src/common/sdk/nvidia/inc/class/clc797.h f4af32374be4d05a2e55c97053a4f0d1f4b85154 - src/common/sdk/nvidia/inc/class/cl0000_notification.h 1e578eb23dacca047e0b342cce3024b3134f8de9 - src/common/sdk/nvidia/inc/class/clc7b5.h 941a031920c0b3bb16473a6a3d4ba8c52c1259d7 - src/common/sdk/nvidia/inc/class/cl917e.h b23cdfb66f40c6d9a903f602b8ff4526063b5a2d - src/common/sdk/nvidia/inc/class/clc097.h 0de3548dde4e076cbd0446330b2d5ae4862c1501 - src/common/sdk/nvidia/inc/class/clc973.h ddb996ff90b80c0f58729b9ac89fa6d2d3950e49 - src/common/sdk/nvidia/inc/class/cla16f.h cb610aaae807d182b4a2ee46b9b43ebfa4a49a08 - src/common/sdk/nvidia/inc/class/clc57e.h 9e1d2f90d77e23f1d2163a8f8d8d747058e21947 - src/common/sdk/nvidia/inc/class/cl9010.h 7a14243de2b228f086810f968a1712627f1333fd - src/common/sdk/nvidia/inc/class/clc36f.h 7c8e1f1055f9522cfb2935ea0aae612ef172c26e - src/common/sdk/nvidia/inc/class/clc370_notification.h 64ad2ab88e2006bcdace06e7109981496c39f265 - src/common/sdk/nvidia/inc/class/clc87d.h 36c6162356ac39346c8900b1e0074e4b614d4b5a - src/common/sdk/nvidia/inc/class/clc370.h 5df0ce4eb733554e963eb3c7938396f58f2dd4d5 - src/common/sdk/nvidia/inc/class/cl2081.h a4d82d12346918edd0a7564a5c6cbfe849532b7f - src/common/sdk/nvidia/inc/class/clca70.h 159b78a13e43a2afe6c17714a6f8619675480346 - src/common/sdk/nvidia/inc/class/clc86f.h 6ddba2e93c046ae04f48685c73f8f2d9fe74a398 - src/common/sdk/nvidia/inc/class/clc67a.h 83c6378ef27c8b640895a123801d27e6c4fd3754 - src/common/sdk/nvidia/inc/class/clc671.h 7f75433a769a020d9f36996c855c8ce6ab39dd83 - src/common/sdk/nvidia/inc/class/clc37dcrcnotif.h 31ac68401e642baf44effb681d42374f42cf86b1 - src/common/sdk/nvidia/inc/class/cl00c3.h 95ca0b08eed54d1c6dd76fdf9cf4715007df1b20 - src/common/sdk/nvidia/inc/class/cl0020.h 20d5608c2d6e55efd6d1756a00739f7a05d3a2b3 - src/common/sdk/nvidia/inc/class/clc361.h 9797f4758d534181eeaa6bc88d576de43ba56045 - src/common/sdk/nvidia/inc/class/clc574.h a39d75d3e479aebaf3849415e156c3cfe427298a - src/common/sdk/nvidia/inc/class/clc771.h eac86d7180236683b86f980f89ec7ebfe6c85791 - src/common/sdk/nvidia/inc/class/cl957d.h f7a2fea4725d59e95294c397ede001504b777b0d - src/common/sdk/nvidia/inc/class/clc697.h f3f33f70ec85c983acec8862ccaabf5b186de2bb - src/common/sdk/nvidia/inc/class/cl9270.h 8b94512c9746c6976c4efeee0291bf44bb5e0152 - src/common/sdk/nvidia/inc/class/clcc73.h 60d0c7923699599a5a4732decfbcb89e1d77b69e - src/common/sdk/nvidia/inc/class/cl9770.h e0c9a155f829c158c02c21b49c083168f8b00cbe - src/common/sdk/nvidia/inc/class/clc37dswspare.h 499bc681107a2b7ad7af3d2211b582b8fb9d9761 - src/common/sdk/nvidia/inc/class/clcc7a.h e1bfd0c78f397e7c924c9521f87da8286bebe3f1 - src/common/sdk/nvidia/inc/class/cl84a0_deprecated.h 2f291dc867e71f625c59f72787b9fb391a16d0e6 - src/common/sdk/nvidia/inc/class/clc638.h 8d2dcc086f892dd58270c9e53e747513ed4b2f93 - src/common/sdk/nvidia/inc/class/clb06f.h 3d262347ab41547d9ccc28a892d24c83c6b1158e - src/common/sdk/nvidia/inc/class/cla06f.h bae36cac0a8d83003ded2305409192995d264d04 - src/common/sdk/nvidia/inc/class/cl0001.h ba8f5899df4287b8440bcb9c8e09e10db73ebf12 - src/common/sdk/nvidia/inc/class/clc97a.h 7bfcd7cf1735b2a54839e8a734e2227060ebf570 - src/common/sdk/nvidia/inc/class/clc197.h e231c552afb3a78da7341ee49bf36940f1f65202 - src/common/sdk/nvidia/inc/class/clc77d.h 821396a58944ba4620f43cf6ee833b7a04d67193 - src/common/sdk/nvidia/inc/class/clc970.h 1f1879fcddf3c3f1f6c44df0e51822ad1bfa1aae - src/common/sdk/nvidia/inc/class/cl9171.h a23967cf3b15eefe0cc37fef5d03dfc716770d85 - src/common/sdk/nvidia/inc/class/clc372sw.h 02ff42b6686954e4571b8a318575372239db623b - src/common/sdk/nvidia/inc/class/cl30f1_notification.h 4be055f206ef1049e8a5b824f9f4830eba0e224c - src/common/sdk/nvidia/inc/class/cla26f.h ef173136a93cdd2e02ec82d7db05dc223b93c0e1 - src/common/sdk/nvidia/inc/class/clc770.h a3e011723b5863277a453bfcfb59ce967cee0673 - src/common/sdk/nvidia/inc/class/clc670.h f33b9fdad6ceb534530fecfd16b40a71f5f5cfdc - src/common/sdk/nvidia/inc/class/clc56f.h 02906b5ba8aab0736a38fd1f6d7b4f6026a5185b - src/common/sdk/nvidia/inc/class/clc57esw.h aa6387d7ce55a88789c5731e89dedde57115131c - src/common/sdk/nvidia/inc/class/clc97b.h 86ab048c67a075349622c597fa9c4f2a9a3d8635 - src/common/sdk/nvidia/inc/class/cl9571.h 9b2d08d7a37beea802642f807d40413c7f9a8212 - src/common/sdk/nvidia/inc/class/clc37d.h bd9f406625e6c0cce816a5ddfb9078723e7f7fb5 - src/common/sdk/nvidia/inc/class/clb0b5sw.h ab27db8414f1400a3f4d9011e83ac49628b4fe91 - src/common/sdk/nvidia/inc/class/cl987d.h 2614a83d383b540f23ef721ec49af1dfde629098 - src/common/sdk/nvidia/inc/class/cl0080.h 9db39be032023bff165cd9d36bee2466617015a5 - src/common/sdk/nvidia/inc/class/cl0002.h 094bec72bfa8c618edc139bc353b20433f1c1da2 - src/common/sdk/nvidia/inc/class/cl2080_notification.h e72a7871d872b2eb823cc67c0a7d4cafb3d0ca18 - src/common/sdk/nvidia/inc/class/cl90ec.h 0ad3b3e00dc83a0487bd96abd5fe467213aa51ad - src/common/sdk/nvidia/inc/class/clc597.h 869e41c3ba08d704fcf00541075986de43d6b090 - src/common/sdk/nvidia/inc/class/cl917b.h b685769b5f3fed613227498866d06cc3c1caca28 - src/common/sdk/nvidia/inc/class/cl2082.h 4c0d054bd0d9935d8d2cedba3f5e910d6b6f8ed3 - src/common/sdk/nvidia/inc/class/clc997.h 1697a9ed528d633a1e78c0071868d7dff899af26 - src/common/sdk/nvidia/inc/class/clc57a.h 8e85d29d4006dbd3a913fcc088be5e8c87bbdabb - src/common/sdk/nvidia/inc/class/cl0100.h 15d1f928a9b3f36065e377e29367577ae92ab065 - src/common/sdk/nvidia/inc/class/cl0080_notification.h e3bd2cacd357e411bc1b6b7d7660ffa97c3a7ee3 - src/common/sdk/nvidia/inc/class/clb197.h 16f9950a48c4e670b939a89724b547c5be9938bf - src/common/sdk/nvidia/inc/class/clc570.h 060722ac6a529a379375bb399785cbf2380db4fd - src/common/sdk/nvidia/inc/class/clc373.h bd910ff84b9920af83e706a8ab37c68157a372c8 - src/common/sdk/nvidia/inc/class/clc97e.h b71d1f698a3e3c4ac9db1f5824db983cf136981a - src/common/sdk/nvidia/inc/class/cl9170.h 2a031d85b85c4b1e5b278f6010ca8f33b2192de1 - src/common/sdk/nvidia/inc/class/cl90e7.h 9ceb4ec8538818c8b1dcc7ffe885584b8e0f435e - src/common/sdk/nvidia/inc/class/cla097.h a9503a5558b08071f35b11df9a917310947c378b - src/common/sdk/nvidia/inc/class/cl00da.h d8000ab8ef59e64d17b4089c43953ca69b7f605f - src/common/sdk/nvidia/inc/class/clc67e.h 6400b9ad3460dafe00424e3c1b1b7a05ab865a63 - src/common/sdk/nvidia/inc/class/cl50a0.h 7032fd79731907df00a2fe0bbf6c0f4ce87f021d - src/common/sdk/nvidia/inc/class/cl917dcrcnotif.h b11e7b13106fd6656d1b8268ffc15700fba58628 - src/common/sdk/nvidia/inc/class/clc371.h ff47d8a4b4bdb3b9cd04ddb7666005ac7fcf2231 - src/common/sdk/nvidia/inc/class/cl003e.h 0285aed652c6aedd392092cdf2c7b28fde13a263 - src/common/sdk/nvidia/inc/class/cl00fc.h 81b4e4432da8412c119e795662819cfe7558711f - src/common/sdk/nvidia/inc/class/cl917a.h 38265d86eb7c771d2d3fc5102d53e6a170a7f560 - src/common/sdk/nvidia/inc/class/cl0041.h 848c89981de73d681615266e4e983b74c2ef418f - src/common/sdk/nvidia/inc/class/cla06fsubch.h 2d76476dba432ffc1292d2d5dd2a84ff3a359568 - src/common/sdk/nvidia/inc/class/cl0092.h b46b2cfcf72fc2f9722bd42cea8daaeeda861471 - src/common/sdk/nvidia/inc/class/clc871.h 022e8405220e482f83629dd482efee81cc49f665 - src/common/sdk/nvidia/inc/class/clc77f.h fe7484d17bc643ad61faabee5419ddc81cf9bfd6 - src/common/sdk/nvidia/inc/class/cl9570.h bb79bbd1b0a37283802bc59f184abe0f9ced08a5 - src/common/sdk/nvidia/inc/class/cl0040.h 6249715d9876f5825ad62f563bf070e93710a2ad - src/common/sdk/nvidia/inc/class/clc67d.h b1133e9abe15cf7b22c04d9627afa2027e781b81 - src/common/sdk/nvidia/inc/class/cl917c.h 7ef21c4f4fd4032c8f25f8fb33669e692a26e700 - src/common/sdk/nvidia/inc/class/clcb97tex.h 73b706e4916f4c70302387c88c8e14e7b2c1f4e6 - src/common/sdk/nvidia/inc/class/clc67b.h c40fd87fa6293d483b5bf510e2e331143ded9fa4 - src/common/sdk/nvidia/inc/class/cl9470.h 20894d974d1f8f993c290463f1c97c71fd2e40b1 - src/common/sdk/nvidia/inc/class/cl30f1.h 9f7f04825f3f218cc0c4610938935e2f0a73e13b - src/common/sdk/nvidia/inc/class/clc97d.h 04ab1761d913030cb7485149ecd365f2f9c0f7da - src/common/sdk/nvidia/inc/class/cl0005_notification.h da8d312d2fdc6012e354df4fa71ed62ae4aac369 - src/common/sdk/nvidia/inc/class/cl927c.h 158c98c8721d558ab64a025e6fdd04ce7a16ba9e - src/common/sdk/nvidia/inc/class/cl947d.h 5416c871e8d50a4e76cbad446030dbedbe1644fd - src/common/sdk/nvidia/inc/class/cl00f2.h 0b35244321b1f2f6647f8389f6fa7254c34790e2 - src/common/sdk/nvidia/inc/class/cl90cdtrace.h 39161706917567f434a6fff736b22f3358923e68 - src/common/sdk/nvidia/inc/class/clc06f.h bc3674f2384cb3695ce5f035ed16e9c39bba4d1b - src/common/sdk/nvidia/inc/class/cl00fe.h dd4f75c438d19c27e52f25b36fc8ded1ce02133c - src/common/sdk/nvidia/inc/class/cl917cswspare.h 435a34753d445eb9711c7132d70bd26df2b8bdab - src/common/sdk/nvidia/inc/class/cl917d.h b31019107ada7b0fb8247c09d93b95a630821fa8 - src/common/sdk/nvidia/inc/class/clcc7e.h 31939808cd46382b1c63bc1e0bd4af953302773f - src/common/sdk/nvidia/inc/class/cl977d.h 83427e3172c64c3b9ef393205ccc3b961ec65190 - src/common/sdk/nvidia/inc/class/cl5070.h db8dd50ad3e64fe0472d82c0940908d5da5e0321 - src/common/sdk/nvidia/inc/class/cla0b5.h 28867d69a6ceac83da53a11a5e1ef87d9476f0be - src/common/sdk/nvidia/inc/class/clc57d.h 8b07d7aca050be883fdc0d6f4b19eac0b0b6c796 - src/common/sdk/nvidia/inc/class/clc673.h c116d91177c6cbfb8c25e7f35bb49a8d5a51816c - src/common/sdk/nvidia/inc/class/cl008f.h 4fc2133935b8e560c9a1048bc0b1f1c2f0a4464c - src/common/sdk/nvidia/inc/class/cl00c1.h 5a6098f821e8faa19345313477726431f9271cde - src/common/sdk/nvidia/inc/class/clc661.h 6db83e33cb3432f34d4b55c3de222eaf793a90f0 - src/common/sdk/nvidia/inc/class/cl00b1.h 5b573deb4d68ccb67d9cccc11b28203c5db3d2f7 - src/common/sdk/nvidia/inc/ctrl/ctrl0002.h 88947927d79e15df8cbf77a59ac883a29e970413 - src/common/sdk/nvidia/inc/ctrl/ctrlc638.h 625af1df5c9453bd35a9e873ee5c77e73d5fd195 - src/common/sdk/nvidia/inc/ctrl/ctrl90ec.h ade4a731f59c7cd16b4a60d318a19147b9918bb9 - src/common/sdk/nvidia/inc/ctrl/ctrl0004.h 90843f8173a341deb7f1466cd69a17114c6b9e4f - src/common/sdk/nvidia/inc/ctrl/ctrl90f1.h a305225ceda0a39c76ed61b819a1f4165f5644f5 - src/common/sdk/nvidia/inc/ctrl/ctrl00fe.h be3c9e2de8b8d33fe04389b224fa6ad95ecd089b - src/common/sdk/nvidia/inc/ctrl/ctrla06f.h c3e3213f548f93592f7d3dfd76e63a2102d800ec - src/common/sdk/nvidia/inc/ctrl/ctrl0076.h d7415e78725899f9d10fa2d5f03f3d62cef42f26 - src/common/sdk/nvidia/inc/ctrl/ctrlc36f.h 9e343f73f46238075cef766cad499533559dfa28 - src/common/sdk/nvidia/inc/ctrl/ctrl00da.h f7601ce8c7c2d7a1143bff5280e3e5d9b5c4c147 - src/common/sdk/nvidia/inc/ctrl/ctrl906f.h 97ac039e796faca6c9f78e16020fe96225b33492 - src/common/sdk/nvidia/inc/ctrl/ctrlc637.h fe7ce28fe76174a6de68236b44ea565ba2ea687b - src/common/sdk/nvidia/inc/ctrl/ctrl00de.h 3ba6904c69aa7710c4561d5643b18fc41e141d4e - src/common/sdk/nvidia/inc/ctrl/ctrlxxxx.h b178067ba5f93e7fafb4c2ee0f5032acf9bc55d7 - src/common/sdk/nvidia/inc/ctrl/ctrla081.h 58a5d3a55b2d9b29d4f1b1e7b5d4d02ae6885e30 - src/common/sdk/nvidia/inc/ctrl/ctrl003e.h 16a24249210637987d17af6069ae5168404743ee - src/common/sdk/nvidia/inc/ctrl/ctrl30f1.h 58f8e48d5851cc10e3c5fd3655d7948b9f327ca0 - src/common/sdk/nvidia/inc/ctrl/ctrl2080.h b86c4d68c5758f9813f00cc562110c72ef602da7 - src/common/sdk/nvidia/inc/ctrl/ctrl90e7.h c042a366bc755def9e4132e2768c1675871dbe65 - src/common/sdk/nvidia/inc/ctrl/ctrl0041.h c8b2e0e64bb3cf3c562dee5fa7913035f82d8247 - src/common/sdk/nvidia/inc/ctrl/ctrl402c.h 352825959d98fe9b47a474cfdd154d380c80d24e - src/common/sdk/nvidia/inc/ctrl/ctrl90cd.h 9d908bb15aecc9d8094e1b6c13301efba6032079 - src/common/sdk/nvidia/inc/ctrl/ctrl0080.h 3fcf5dbb82508d88a040981a7ab21eac1466bb2b - src/common/sdk/nvidia/inc/ctrl/ctrl0073.h bfee287b190fd698735c5660592741ba5c25a8ea - src/common/sdk/nvidia/inc/ctrl/ctrl0020.h 2e65ccd2704919780a152c69f53400a0dc5e6e41 - src/common/sdk/nvidia/inc/ctrl/ctrlb06f.h 4fb7753f3502303314d9e8f853ee3b752f7e9317 - src/common/sdk/nvidia/inc/ctrl/ctrl0100.h 8764e07e9d348163db4eb41b0c3cf32c76172c0d - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000client.h 5782a19aeaf9695c13940cf4532e41523a8460e3 - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000base.h f21c15122509a8843e676a2bd5e799c58cd96379 - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000system.h 326b61039197db58d8369256f6d7dc9764aea421 - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000unix.h e7452921bdbd036ca3a37c60c49829c05e95c2d5 - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000vgpu.h 5f3b68d39f14137d33f239408a6a13543f4ac966 - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000gpu.h d08ef822e97ee56984618d52ed3ed55ee395eadb - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000gsync.h 8fcc64b22b0f6cde40d5ecd23e5e2444277a5999 - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000nvd.h 70d65d4f923ec0efd8931433ae50930d12f78a07 - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000diag.h a33a1c1173962183793d84276e46c61d27ca867e - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000gpuacct.h 1b594c39d1439c3d1ecc24c4325b2ea8c2724548 - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000syncgpuboost.h 0146d2b3ecec8760e76dacd8ce6bb75c343c6cac - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000proc.h 11abea0cdf485863196de56169451980ee6c016a - src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000event.h 4f0ccb0667bd3e3070e40f3f83bede7849bc78e4 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080nvjpg.h 08dda80bac8d3418ad08e291012cf315dc9e5805 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080host.h 28b06c8f8152dce2b2e684a4ba84acd25a8b8c26 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080base.h add9e3867e3dbd2c11bed36604680af4aaa0f164 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080dma.h 2ffb93d092df65570b074ad97f0bb436a1c66dff - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080gpu.h 79fd7ed84cb238ea90ea3691f40ea7140034d3dc - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080bif.h 2ea79d79223b06633fb7f541ebbe5a300ba3885f - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080perf.h 44c9aa512eb0b9b92cace9e674299f2a9227c37c - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080internal.h a3328cf6633f9b04258eff05ce30e66cc6930310 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080cipher.h a427892e601a4ca4f88cc5778ff78895324f3728 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080unix.h 92ff82d1045933baa79958a9f6efd451b0123e95 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080bsp.h 7ef9e10955708592e92e127eb3fb372adff44818 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080msenc.h 3c1bd0db339456c335acd50a75ace42cb8bbe6f8 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080fifo.h be10e3f4a9dd2f2ab35305ee0af628ef339b25a7 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080gr.h db66195c8e7252c5f424953275cbb7be90a17ba8 - src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080fb.h c74ac448c3382d92e662804b56e73edd748e2678 - src/common/sdk/nvidia/inc/ctrl/ctrl83de/ctrl83debase.h 7318f74523bb6a015e561dba1a06b47a278d856d - src/common/sdk/nvidia/inc/ctrl/ctrl83de/ctrl83dedebug.h 702d9cb471a344a25911449cc580f69f7155ab1c - src/common/sdk/nvidia/inc/ctrl/ctrlc372/ctrlc372chnc.h 3f747a4fc98291329e0245a971248cf2c28a1b60 - src/common/sdk/nvidia/inc/ctrl/ctrlc372/ctrlc372base.h 19c7eff334c591c803dcd93fc0818798c281df48 - src/common/sdk/nvidia/inc/ctrl/ctrl208f/ctrl208fbase.h c7dcbc0ae7454df6523c6deb5f07a70dc2fdbc15 - src/common/sdk/nvidia/inc/ctrl/ctrl208f/ctrl208fgpu.h 882b13d54585a6fc5534d12b9cdcec29c8cde337 - src/common/sdk/nvidia/inc/ctrl/ctrl208f/ctrl208fucodecoverage.h 76fb63a6782ff1236303fdd7bf2698f42965a266 - src/common/sdk/nvidia/inc/ctrl/ctrl90e7/ctrl90e7base.h 00d2655f569187190bd117bdf37fe4ddd5e92320 - src/common/sdk/nvidia/inc/ctrl/ctrl90e7/ctrl90e7bbx.h 8064c31eb1e447561c415f9835aecac97d5f3517 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073stereo.h 713aa1291aef3f79304ad35c5143a7576f242f63 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073common.h bb7955387f6a286927e7922019676ca0aba713e6 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073internal.h 35367f08b96510a5312653b5197d6bb34c0a3d00 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073event.h a0cf9dfb520e3320cd9c154c01cd2f1a7bbbd864 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073dp.h c2066c407f81538047c435fffca2705c28107663 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073specific.h d727b328e995a7d969ec036f2d5b52264568a7bf - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073system.h 52f251090780737f14eb993150f3ae73be303921 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073dpu.h 77eb4fab61225663a3f49b868c983d5d532ca184 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073svp.h 6ca26c7149455e43f32e8b83b74f4a34a24a2d29 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073base.h 134d43961ea1d42fc36d75685fdd7944f92b0b53 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073dfp.h 022feef64678b2f71ab70dc67d5d604054990957 - src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073psr.h 2a00952f0f3988c5425fec957a19d926ae75ba28 - src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370verif.h 79b38bbe679d397b48b78266aa5f50459fe5b5bc - src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370base.h 514d012dbfd9e056b7f729bccb213fa9193d433e - src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370or.h 6ef99465758f71f420ac17765380cc37dbcac68a - src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370event.h 5f70c2eb6a144bc4d7ca8be63fa46391909e8201 - src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370rg.h f4ed3ccff4720114d1aaed82484ed70cf07626db - src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370chnc.h ba3b73356bf0d1409ecfd963b623c50ec83f1813 - src/common/sdk/nvidia/inc/ctrl/ctrla06f/ctrla06finternal.h bb0a5ff091ef854b19e7da0043b7b7b10232c3de - src/common/sdk/nvidia/inc/ctrl/ctrla06f/ctrla06fbase.h 1f25c9f215991f34fee94dafac5fad0e7460db1c - src/common/sdk/nvidia/inc/ctrl/ctrla06f/ctrla06fgpfifo.h ddeb0df51d5f662948f9098a5d85b40c8ab6504b - src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070base.h e3fb93f0ff3469ec76cecdc6f0bf1c296551a2b1 - src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070impoverrides.h a138379dd76c468072f1862b8fc6ae79ee876b4e - src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070common.h ee99443c1bd3441df474566622486b04c4502ac0 - src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070verif.h 44e1b06211eee31e42e81879f5220f26ddec70ae - src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070rg.h ff789d585a7f001b8bd32e07a268c635d39b17ab - src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070or.h 03f54e22b39ad5cf682eada7147c6c155f16b385 - src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070chnc.h e8d883de767aa995a374d8da56b5c9da8787cb1d - src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070system.h 8fdb493bda6119025c1d00f289a6394e7dcd1b53 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080flcn.h cfa32c37f373eeef53aedc3f4dffff1634c122e8 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpumon.h 41a0a14e04527fa2c349d2895bb41affd154c999 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080dmabuf.h ecd312fabb249a25655e151cee3615c5ab61ffa7 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080pmgr.h c30b5995d353e68623b32fea398f461351e3b8f1 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080lpwr.h aa0f685b94bdae99a58aa1a45735b0593a2e6f5a - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080vfe.h aa86ffd04a55436ecacbedb1626f6187bbddedf7 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080perf_cf.h 3423a69bba50e1405b5a7d631bfff1f6f0a1673f - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080grmgr.h 1990d0c4fa84c6d078282d4d7d0624ccb0325ce7 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080unix.h 146263409e5304f661da349b56761ab7403144bd - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fb.h 8b622186edb156e980d02bd59a71c01923d1aa23 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080tmr.h 70dc706ea4ee7b143a716aae9e4f8c0bcef6c249 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080clk.h 0a156fc54f45386fabd06ef5ec11ba3a816fbfb7 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080boardobj.h c157e185d3c64ee9476ddc75881bfc5a5b8b997f - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080nvd.h 785d96360f86bc53eb428fd3f4fbeda395400c8a - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080bios.h b8e8c5ccab01d7997d1fd5579a690cb3279a8ab3 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080base.h b2eecbca32d87b939858bf0b22f93c06b49b3a04 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080i2c.h 24a891a02e1a882769d4da3454e4dfcf42b1ea6c - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080ecc.h 6969b092708d57f88b0f0fdbb3464c786f90710c - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080bus.h 013bd8d50841ea314f5ea2bd507470f2c3aff831 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fifo.h d63388ff48ca055c82bcd6148506eacd0e26b4dc - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080vgpumgrinternal.h 96f72ec608cd198be995f3acd9c04afe7c7e6dc8 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080volt.h 359c6b06f2712a527d1ef08465179c14a8b4a751 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080acr.h 4c2af959d06536294d62b2366a6ba61ca744bd50 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080dma.h d15e8e86ca66b3a69a774e322dfdd349b9f978b9 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080spdm.h 898fa08818b657c27b456d952e7a4e09d8d197ee - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080illum.h 9933e90ad92eb7df2f64dcc30dcd680d5f7c530d - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080ce.h 18d1a44b7113c1707bbf5c65fb1be790304c0bed - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpu.h 0cd5e883dfafb74ce2ec9bccca6e688a27e6cfa9 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080perf_cf_pwr_model.h 07f82ae90cde3c6e2e6c5af135c40e01660c39a3 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080boardobjgrpclasses.h c8f1c115d78bab309c0a887324b0dabfb8f9ea2d - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gsp.h ecceb8f7382c8f55c6ccd0330e14ccbc49fcd09c - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080mc.h 2577a1d505a3d682e223fbcbc6d4c7d13162749d - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080nvlink.h d3969094e68f9d584ba9c6fb5457801caff6ccc1 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080pmu.h 74f1abf45a2a0f60c82e4825b9abfa6c57cab648 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080power.h 115f683e5926ae130de87e4cea805ef6915ed728 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080pmumon.h d4ba227a522423503e5044c774dbcca692c48247 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080rc.h 97bb79e74b25134fa02a60d310b3e81170df6fd6 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080clkavfs.h baeb07c8bdadf835db754452f63d40956bc6a199 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080event.h 338c7de5d574fe91cda1372c5221e754d4c4b717 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080perf.h 4e4a4f9e94f2d7748064949f4b16845829670bf6 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080thermal.h 5ac6c9a299256935259eaf94323ae58995a97ad7 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpio.h e4441458a7914414a2092f36a9f93389ed65154a - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fuse.h b55e4cf81b6112868eb6f6cd9c1a3b32f8fcda49 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gr.h 302f79771fcdba3122cf61affb53e0a3a3a27e6d - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080internal.h 5c7b955ef5e6f6ca9c0944e8a2b2c4a1ae760e04 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080spi.h 93a9fa93eb3d1099991e4682b6228124220ca293 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fla.h 7f1af5b788616bab285a73bab5098fb6d134b159 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fan.h 51dbd71f1cd5a66dd7a5b0fbb753713d27ff937c - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080ucodefuzzer.h cf1757ff453132fb64be0dec6c50eb935db29784 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080nvlink_common.h 59254e4bdc475b70cfd0b445ef496f27c20faab0 - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080cipher.h 119432bbce99e91484a2bac79ca5257a36a7f98b - src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080hshub.h 7f15697ca8645f77352f88c2a84713f348e98a24 - src/common/unix/nvidia-3d/include/nvidia-3d-vertex-arrays.h 220ac9628fe5afa0191b8c20304402baf0f70353 - src/common/unix/nvidia-3d/include/nvidia-3d-fermi.h 23478354284aa1be69bc70fa4157aa408177829c - src/common/unix/nvidia-3d/include/nvidia-3d-volta.h 75859a11c0fae125a0619c47ead964416ac8d6ed - src/common/unix/nvidia-3d/include/nvidia-3d-pascal.h e621c127011311e8f97c8784d8539751a820bf47 - src/common/unix/nvidia-3d/include/nvidia-3d-maxwell.h 07fc2cd8495309f1218b9ddee4a4809b6dcb65a3 - src/common/unix/nvidia-3d/include/nvidia-3d-types-priv.h 1276b525f23b582e029c2ddc9ed0115f8e9dafb4 - src/common/unix/nvidia-3d/include/nvidia-3d-hopper.h 5030b264e17b70df0c99bc9da4350bdb48f2f60a - src/common/unix/nvidia-3d/include/nvidia-3d-kepler.h 146b4f305bfe710622a878fe3e9afd4f834124b8 - src/common/unix/nvidia-3d/include/nvidia-3d-turing.h 61f0a408812c04a59fb8f12713ce34d2ed544fe3 - src/common/unix/nvidia-3d/include/nvidia-3d-surface.h e7a4acaef431a49ca7efd6bf72b6e8b57fafbab0 - src/common/unix/nvidia-3d/include/nv_xz_mem_hooks.h 40a9c57cca5b2f8acfe3ead472dcf0adc9423050 - src/common/unix/nvidia-3d/src/nvidia-3d-vertex-arrays.c af1a4d99bd19b72de120ba2046f35b95650985b1 - src/common/unix/nvidia-3d/src/nvidia-3d-volta.c f78f737f1dfb52cf248543cced017a8fbad7b270 - src/common/unix/nvidia-3d/src/nvidia-3d-surface.c 4ea7a2a6811239760a1b56833fb07dbf8a99a10e - src/common/unix/nvidia-3d/src/nvidia-3d-hopper.c e43e6ce6b9781d44b68868703fdbb779fc95f5d4 - src/common/unix/nvidia-3d/src/nvidia-3d-kepler.c 09fa5fbae25e08c819277566d7281f17305863f8 - src/common/unix/nvidia-3d/src/nvidia-3d-turing.c e0ef9ab77cfdf207c800a9c067739add28632047 - src/common/unix/nvidia-3d/src/nvidia-3d-pascal.c 57f19f6aa7b896794aafacd978b2469d976f6f78 - src/common/unix/nvidia-3d/src/nvidia-3d-maxwell.c 08c29625af227debb72dd703630a754ac4fbeee0 - src/common/unix/nvidia-3d/src/nvidia-3d-core.c 7ca41841cc54bd597f5c10cc346b8f574b1c2acf - src/common/unix/nvidia-3d/src/nvidia-3d-fermi.c d0331b7ebba0537af50bdf5815d9c048cbeb3388 - src/common/unix/nvidia-3d/src/nvidia-3d-init.c 569a662ce5f79dc450f44eeb7a0ff36580ba27fe - src/common/unix/nvidia-3d/interface/nvidia-3d-types.h a06524af04de90562b08b6b26783232cf7ff01d4 - src/common/unix/nvidia-3d/interface/nvidia-3d-utils.h 3e97ecc773087c0c7f370faf0a9ff838793c9bd6 - src/common/unix/nvidia-3d/interface/nvidia-3d-color-targets.h 2d91e6f3ad425d3ca95de79ecb929b22cac57f52 - src/common/unix/nvidia-3d/interface/nvidia-3d-shaders.h fd454a2318e970e6b1cb4a4b7b5633e4cb2e8b45 - src/common/unix/nvidia-3d/interface/nvidia-3d.h 34daeec12bbf45f0f85406afc56414da45afc2e6 - src/common/unix/nvidia-3d/interface/nvidia-3d-shader-constants.h 727210acfe72963aa6dddf1bcee91dc122897113 - src/common/unix/nvidia-3d/interface/nvidia-3d-constant-buffers.h 069b576dc1f03143999512cd03fc48fe18ed6706 - src/common/unix/nvidia-3d/interface/nvidia-3d-imports.h 2476f128437c0520204e13a4ddd2239ff3f40c21 - src/common/unix/common/inc/nv-float.h 881cbcc7ed39ea9198279136205dbe40142be35e - src/common/unix/common/inc/nv_assert.h cb7c13757ca480e10b4ef3e3851d82ad5ccca3f1 - src/common/unix/common/inc/nv_mode_timings.h d5253e7e4abd3ad8d72375260aa80037adcd8973 - src/common/unix/common/inc/nv_dpy_id.h 3e64a8fe60bb1266a769be8a5c0716e10c816b38 - src/common/unix/common/inc/nv_amodel_enum.h 995d8447f8539bd736cc09d62983ae8ebc7e3436 - src/common/unix/common/inc/nv_common_utils.h edded9ca3d455444372fe6c497b2d61bd0cc3f96 - src/common/unix/common/utils/nv_memory_tracker.c 7bccb5a3dea9208f0fbd86d36efc369f215d5c3c - src/common/unix/common/utils/unix_rm_handle.c 26f2a36442266c5d2664d509ecfd31094a83e152 - src/common/unix/common/utils/nv_vasprintf.c e903bbbecf4fb3085aaccca0628f0a0e4aba3e58 - src/common/unix/common/utils/nv_mode_timings_utils.c 667b361db93e35d12d979c47e4d7a68be9aa93b6 - src/common/unix/common/utils/interface/nv_mode_timings_utils.h 07c675d22c4f0f4be6647b65b6487e2d6927c347 - src/common/unix/common/utils/interface/nv_memory_tracker.h 8d9c4d69394b23d689a4aa6727eb3da1d383765a - src/common/unix/common/utils/interface/unix_rm_handle.h 9e008270f277e243f9167ab50401602378a2a6e8 - src/common/unix/common/utils/interface/nv_vasprintf.h 673bbd33569f55a900b5388a77d19edd3822ecf3 - src/common/unix/xzminidec/src/xz_dec_stream.c 9c67bdcbea04fbe1a5b2746549e502cdc368b54e - src/common/unix/xzminidec/src/xz_config.h f2cfbcf1e2cb1d7545b5de609a4e7672bf8ae976 - src/common/unix/xzminidec/src/xz_dec_bcj.c 93af3bcdf863afa9655107c86f49aefdf9c05d90 - src/common/unix/xzminidec/src/xz_lzma2.h fba46fe8f4a160d71a708578a85ab6731e4e024f - src/common/unix/xzminidec/src/xz_crc32.c 0ce26be0fb63a7ae52e2bb15a1770c80b9a5ac84 - src/common/unix/xzminidec/src/xz_stream.h 8365ec8d875fad74507d49228ad8959c66bbc360 - src/common/unix/xzminidec/src/xz_dec_lzma2.c 2ade48b4c53fc3bebf1587bc0a1a08b26cd5981d - src/common/unix/xzminidec/src/xz_private.h c2a87873eeff2a8010bb8a2cb8d1df28a20a0097 - src/common/unix/xzminidec/interface/xz.h 4498dc65d71b2b8635b365550e5e521da14c8e6b - src/common/unix/nvidia-push/include/nvidia-push-priv.h 4847b168b4f5e78dbb92cfec80734789a9131b87 - src/common/unix/nvidia-push/include/nvidia-push-priv-imports.h 616dd99d8dda5dbe35032a5fc558ff48f7cc1620 - src/common/unix/nvidia-push/src/nvidia-push-init.c 0916485ec1ff275771d88a725dcbf586663dbc33 - src/common/unix/nvidia-push/src/nvidia-push.c 548f9e591d2c851b157575e1b83e25eb47bc61e6 - src/common/unix/nvidia-push/interface/nvidia-push-methods.h 5f5013bdbda9582252db2e92a105a57f24ca7d96 - src/common/unix/nvidia-push/interface/nvidia-push-init.h f3576444d1dbcc4e9379bee6151ef8c7a382e276 - src/common/unix/nvidia-push/interface/nvidia-push-utils.h 918c4f2e2edd0a52c7085f758286dacd21b5b4c5 - src/common/unix/nvidia-push/interface/nvidia-push-types.h b54add7dea08ff736ac27ee259f6ccb389c01f09 - src/common/unix/nvidia-headsurface/nvidia-headsurface-types.h 5d014581148b38eede1d31a1f48e388cf6eb7a45 - src/common/unix/nvidia-headsurface/nvidia-headsurface-constants.h e1fbb040ea9d3c773ed07deb9ef5d63c8c8cab7a - src/common/inc/nvSha1.h 8f0d91e1a8f0d3474fb91dc3e6234e55d2c79fcc - src/common/inc/rmosxfac.h bcad75550591ede46152403e40413f87e85b0a80 - src/common/inc/nvlog_defs.h ebccc5c2af2863509e957fe98b01d9a14d8b0367 - src/common/inc/nv_list.h 0e970acfcadddd89fae91c812647fecb80c98d52 - src/common/inc/pex.h 73e2133709eb920a92fcebf7aaab958020493183 - src/common/inc/nvctassert.h 6fa5359ffe91b624548c226b6139f241771a9289 - src/common/inc/jt.h 489ce9f046d9c2ff95a1284ab5e04b5843b874ae - src/common/inc/nvVer.h 7ab322addb3e1ba880cee07dc0d26d882db097b0 - src/common/inc/nvCpuIntrinsics.h d9c0905f374db0b9cc164ce42eab457d1ba28c53 - src/common/inc/nvop.h d70c17a0693c8b5dbf7c83f693eec352ce22917c - src/common/inc/nv_smg.h b4c5d759f035b540648117b1bff6b1701476a398 - src/common/inc/nvCpuUuid.h 4282574b39d1bcaf394b63aca8769bb52462b89b - src/common/inc/nvBinSegment.h 8c41b32c479f0de04df38798c56fd180514736fc - src/common/inc/nvBldVer.h 62e510fa46465f69e9c55fabf1c8124bee3091c4 - src/common/inc/nvHdmiFrlCommon.h 82aadec9509f41eab58727c3498dc24a30a0128e - src/common/inc/nvrmcontext.h d74a8d4a9ae3d36e92b39bc7c74b27df44626b1c - src/common/inc/nv_mig_types.h a346380cebac17412b4efc0aef2fad27c33b8fb5 - src/common/inc/nvlog_inc2.h e670ffdd499c13e5025aceae5541426ab2ab0925 - src/common/inc/gps.h 963aebc9ec7bcb9c445eee419f72289b21680cdd - src/common/inc/hdmi_spec.h 987027bed503d8ce5ad01706aae4a16ee37f3e2d - src/common/inc/nvSemaphoreCommon.h 5257e84f2048b01258c78cec70987f158f6b0c44 - src/common/inc/nvlog_inc.h 4a88a536b71995db70e3a83a48d47072693ec69d - src/common/inc/nv_speculation_barrier.h 2408132586b69e580ff909f7f66451aa2882abff - src/common/inc/nvPNPVendorIds.h 4f7ca8fb43d6885cf60869ed241476032f20f5f3 - src/common/inc/nvUnixVersion.h 23edf9cce2608c494dad045b9466b8f3a18bab56 - src/common/inc/displayport/dpcd20.h ecc26f6fae35818791733c1a56ea1b556bba7f4f - src/common/inc/displayport/displayport2x.h aad6f14dacdb166a8d884cae6c5f382d98e5c46c - src/common/inc/displayport/dpcd14.h 27572a26d0a0a32f38606323ea6da65096bac039 - src/common/inc/displayport/displayport.h 8f7c9c19a76eca84fc2556841042c2f1c3d07a1a - src/common/inc/displayport/dpcd.h 4ee8a4d2a0fe12d348ac4c1a1e0a22bd272e146d - src/common/inc/swref/common_def_nvlink.h e182f9538fea08b5d25f3e74083a7a12a7d49809 - src/common/inc/swref/published/nv_ref.h 641e9803749cbeeca1149c43fe2da5e6edf25137 - src/common/inc/swref/published/nv_arch.h 059493ce7d5390b7e859a19d1a24752df8126ace - src/common/inc/swref/published/turing/tu102/kind_macros.h 86a59440492fd6f869aef3509f0e64a492b4550d - src/common/inc/swref/published/turing/tu102/dev_mmu.h 38589617aab40efdd86b401a18d1e28b5d3b9f8e - src/common/inc/swref/published/disp/v05_02/dev_disp.h 1ea0c3d6ea0c79c01accc7b25d15b421ab49a55d - src/common/inc/swref/published/disp/v04_02/dev_disp.h c01e4a95ede641ff5a9e6918b39db4d2099c91cb - src/common/inc/swref/published/disp/v05_01/dev_disp.h 04345c77f8c7a8b4825f0cb7fc96ca7c876af51c - src/common/inc/swref/published/disp/v04_01/dev_disp.h 1604a3fa3e3142118c82a1dc621cdac81806195a - src/common/inc/swref/published/disp/v03_00/dev_disp.h c4f12d6055573a19f9211fdddd3778575e2a17fd - src/common/inc/swref/published/disp/v02_04/dev_disp.h 64c123c90018c5ee122b02b02cbccfcd5ec32cab - src/common/inc/swref/published/t23x/t234/dev_fuse.h b5ce995e9e5afcd73d39642e31998e087ea133e8 - src/common/shared/nvstatus/nvstatus.c 08816a33e698308c76f3a026c29d0dcb41c5ee20 - src/common/shared/inc/compat.h 9231ac111286772170925e8f6cf92bde5914abb8 - src/common/shared/inc/nvdevid.h 750ecc85242882a9e428d5a5cf1a64f418d59c5f - src/common/displayport/inc/dp_object.h a6ff1a7aee138f6771c5b0bbedb593a2641e1114 - src/common/displayport/inc/dp_messages.h 80380945c76c58648756446435d615f74630f2da - src/common/displayport/inc/dp_timeout.h cdb1e7797c250b0a7c0449e2df5ce71e42b83432 - src/common/displayport/inc/dp_merger.h 070b4f6216f19feebb6a67cbb9c3eb22dc60cf74 - src/common/displayport/inc/dp_buffer.h 02b65d96a7a345eaa87042faf6dd94052235009c - src/common/displayport/inc/dp_messageheader.h 78595e6262d5ab0e6232392dc0852feaf83c7585 - src/common/displayport/inc/dp_auxbus.h e27519c72e533a69f7433638a1d292fb9df8772e - src/common/displayport/inc/dp_crc.h b2db6b37515f7c979e18686694546b9fa5145459 - src/common/displayport/inc/dp_hostimp.h 29ee5f4ef6670f06e96c07b36c11e3bad8bee6aa - src/common/displayport/inc/dp_address.h 575f4f97189ad6b4944bdd4127cdbee79d8c688d - src/common/displayport/inc/dp_groupimpl.h cf09c061fa898cd84edd34a9457726abc501b03c - src/common/displayport/inc/dp_configcaps.h afa1135330de2ce8f1a6d20e99b54f507b5adbbd - src/common/displayport/inc/dp_evoadapter.h 01f1dd58ed5bb12503fa45be7a6657cde0a857e2 - src/common/displayport/inc/dp_guid.h cca426d571c6b01f7953180e2e550e55c629f0f4 - src/common/displayport/inc/dp_auxretry.h a086546bf92d7e5e9adf66dcac012b3dc81c2597 - src/common/displayport/inc/dp_internal.h f6e1b0850f5ed0f23f263d4104523d9290bb8669 - src/common/displayport/inc/dp_vrr.h 2f134665b274bb223c3f74e0ec5c6a0392fa6387 - src/common/displayport/inc/dp_discovery.h 07d22f84e6a386dad251761278a828dab64b6dd5 - src/common/displayport/inc/dp_bitstream.h f09aae8321de23e0a48072d0e082aecb84a3ebbe - src/common/displayport/inc/dp_mainlink.h cae50568f7bef4a2a69c4d718a5297b9ae15da3f - src/common/displayport/inc/dp_deviceimpl.h eb9cdbb0a907926b1afd2a551ec19830f06ae205 - src/common/displayport/inc/dp_splitter.h 5bd3706ceea585df76a75dda7f9581b91ee8f998 - src/common/displayport/inc/dp_tracing.h 4a098c4d09dedc33b86748d5fe9a30d097675e9f - src/common/displayport/inc/dp_list.h 6c87ce702f215b21c1ab0064a2a85b3eda96ecec - src/common/displayport/inc/dp_edid.h be558902391fb6cb5085652b560391b54befca4b - src/common/displayport/inc/dp_printf.h 379d3933c90eaf9c35a0bad2bd6af960a321465f - src/common/displayport/inc/dp_wardatabase.h 2016714a04d46ac8412ef55d2156d86ba4d594eb - src/common/displayport/inc/dp_auxdefs.h e2075486b392d6b231f2f133922ac096ca4bc095 - src/common/displayport/inc/dp_ringbuffer.h 09c80a469f1e7e0edd6381578d66fd0e789bc0db - src/common/displayport/inc/dp_regkeydatabase.h 7622cb576c2ebbfe65c0f6132d8561ab1815f668 - src/common/displayport/inc/dp_qse.h dd420c9e7c271d8bea047d431667524105473e95 - src/common/displayport/inc/dp_linkconfig.h e02e5621eaea52a2266a86dcd587f4714680caf4 - src/common/displayport/inc/dp_linkedlist.h 430f42522a1e60f2420aa2e4e471aa20945d0253 - src/common/displayport/inc/dp_timer.h 0f71b80d0a0d53fc6581ef341a4e637a467a3795 - src/common/displayport/inc/dp_connectorimpl.h c8c55dfc7b085b421b01bd9dc7b74abe6f9a0932 - src/common/displayport/inc/dp_connector.h 78ef30b2caf2cf4ff441b5613a796b93ae8973bd - src/common/displayport/inc/dp_messagecodings.h 1363fca23628f312c4b6b0c868b8a43f4a8a5a24 - src/common/displayport/inc/dp_watermark.h d2b00a849a81f6c6092e3b2c4e7ed20fcee62b39 - src/common/displayport/inc/dptestutil/dp_testmessage.h 70b155b0da07a92ede884a9cec715f67e6b5c3e8 - src/common/displayport/src/dp_list.cpp 107b170d4496a754f22819e66794bcdc51256b7c - src/common/displayport/src/dp_sst_edid.cpp fea946e5320e7de8e9229bca8d4a6a14b9e8db59 - src/common/displayport/src/dp_crc.cpp 2caf1cd4a99e55126883dbdd9f6b74883c71e171 - src/common/displayport/src/dp_messagecodings.cpp ef3fefa8dd819d4086c054919b769ca18d058469 - src/common/displayport/src/dp_wardatabase.cpp c49e37f3e225e60a74c71a2b571e542e12fd9bc9 - src/common/displayport/src/dp_watermark.cpp e874ffeaeb6deec57605bf91eaa2af116a9762bd - src/common/displayport/src/dp_bitstream.cpp d699ce22e5e2d641caa2fbacca3095d7dd7b3ffe - src/common/displayport/src/dp_evoadapter.cpp 5f2fb1683cff15175e3ef2276b721863886adc79 - src/common/displayport/src/dp_vrr.cpp 0717b87aafecbe2216e0f0b53ee088a980ef7ad4 - src/common/displayport/src/dp_auxretry.cpp 0670fb5302b1bd3fc65daa848f23e4086619b5e6 - src/common/displayport/src/dp_discovery.cpp 5c12759c27407e8df4c8f1f7bc6ec1595b6b1a63 - src/common/displayport/src/dp_messages.cpp 93ba2409667997fdbcb7af1a8f24ec4a0e15b62c - src/common/displayport/src/dp_timer.cpp ffdd039884b1400eaf4d6d7cc81d0faba5282014 - src/common/displayport/src/dp_deviceimpl.cpp c625716e5516a290ac501563e2a73eef9b4f7dd6 - src/common/displayport/src/dp_edid.cpp af1672e8abb92d8d574d9605285753a8580c5d10 - src/common/displayport/src/dp_groupimpl.cpp 2cda981a5e36285ba4173573d074f8761e74f186 - src/common/displayport/src/dp_qse.cpp 5c7adbdfe295f7e1a1d4899a62bf95b456f84412 - src/common/displayport/src/dp_messageheader.cpp d3c4c54f96cc02d37fab45521685426e5c38fb4d - src/common/displayport/src/dp_mst_edid.cpp f56f92e32710b0342805b785d34ba1a9f2a54ed3 - src/common/displayport/src/dp_guid.cpp eb7e47407bd04e871f891038cc08736d066ffaa9 - src/common/displayport/src/dp_connectorimpl.cpp a62b774b7c45882b5854b91b600987c343c24966 - src/common/displayport/src/dp_linkconfig.cpp 0a8818da34b5321763c1f60cb8b6ea5e1a2837f1 - src/common/displayport/src/dp_splitter.cpp 24c0787ce5ec691c6b8edb351000265f47e0156a - src/common/displayport/src/dp_buffer.cpp 422a5d3426d5e1cc2346d9d5f86ccde66062ffdc - src/common/displayport/src/dp_merger.cpp 41589d1d5bfa4316d5d066a7201226baed5332db - src/common/displayport/src/dp_configcaps.cpp a0b68fce10eb0b95518cfd291e2d282872225295 - src/common/displayport/src/dptestutil/dp_testmessage.cpp f0a73cd173382d8abd4b0c70da8b32e144740bb5 - src/common/modeset/timing/nvt_dmt.c 15d7c508b621c877887962b2c27cdb6c7d1144a0 - src/common/modeset/timing/nvt_util.c 1341b987df8336c882e31d22d2141cadfb67272d - src/common/modeset/timing/nvtiming.h f8faf3eabd24a1239e1d4faebdc40c0ffa713ff9 - src/common/modeset/timing/nvt_edid.c c95a1c7914b0d1cba366f2a29e08eb93e0ad033d - src/common/modeset/timing/nvt_edidext_displayid.c 3d3a0889baed7a15c2adce54ba56c1dc783faffd - src/common/modeset/timing/dpsdp.h ff92b05f8648cb4bc31c0f64707065bb56ff3eb3 - src/common/modeset/timing/nvt_dsc_pps.c f75b1d98895bdccda0db2d8dd8feba53b88180c5 - src/common/modeset/timing/displayid.h 1997adbf2f6f5be7eb6c7a88e6660391a85d891b - src/common/modeset/timing/nvt_gtf.c 2737ed1d1eccd163f9cd12b1944f96a03c526b31 - src/common/modeset/timing/nvtiming_pvt.h 58b68f1272b069bb7819cbe86fd9e19d8acd0571 - src/common/modeset/timing/edid.h 6d221aad371436ba304448ba2cf04f89148a09bb - src/common/modeset/timing/nvt_edidext_displayid20.c 48761f63bc2794dfbde10492cc53137458cfcd0e - src/common/modeset/timing/nvt_dsc_pps.h 08ef97092899a3dc80251f61cedc73a851d70baa - src/common/modeset/timing/nvt_edidext_861.c d7cb716eeae50ecfe44fb3c4c4476de598ab78d7 - src/common/modeset/timing/nvt_tv.c 080c1de64d099ecb1aeb9b0b2f176f7be2d609b5 - src/common/modeset/timing/displayid20.h 1c2e163802849848e9ae1586d38c4cd82494217f - src/common/modeset/timing/nvt_ovt.c 54aa88075d9ceb9c6ef99d9c15cb32751a33f8d0 - src/common/modeset/timing/nvt_cvt.c e13cbe77f864afcddaccff7aeb1923cd02f1482f - src/common/modeset/timing/nvt_displayid20.c f8911888bdd441666c03fe27381d7730b7dd9131 - src/common/modeset/hdmipacket/nvhdmipkt_internal.h 12118b508a757fd0a162d1e740d93685a67363ea - src/common/modeset/hdmipacket/nvhdmipkt.c 5b541b9ab6fe9333815a760d4043fef725b1c848 - src/common/modeset/hdmipacket/nvhdmipkt_C971.c 83d94f0a5eb7318d00d96115b0139f9f99052ddc - src/common/modeset/hdmipacket/nvhdmipkt_CC71.c b390bf4f74d690068ff24dce90b79b227769ac2f - src/common/modeset/hdmipacket/nvhdmipkt_C671.c 206727972ab3a5f8a2cde0e153d63aef929b6c01 - src/common/modeset/hdmipacket/nvhdmipkt_0073.c a71968671ce6b64e235de6902bebc2a06da7ae04 - src/common/modeset/hdmipacket/nvhdmipkt_9171.c 54a1b5e5aaf0848a72befc896ed12f1de433ad4f - src/common/modeset/hdmipacket/nvhdmipkt_9471.c 57dbf547549c6fe24eb51cc54185b321c263108f - src/common/modeset/hdmipacket/nvhdmipkt.h 9be7b7be94a35d1d9a04f269ff560dbbb7860a2a - src/common/modeset/hdmipacket/nvhdmipkt_9571.c 559406ebdbd7f810f1ecbeb3e78b6518834b90fe - src/common/modeset/hdmipacket/nvhdmipkt_class.h e1df3885cd76f5159801c1f66f20b18537eaecf3 - src/common/modeset/hdmipacket/nvhdmipkt_C871.c 5e12a290fc91202e4ba9e823b6d8457594ed72d3 - src/common/modeset/hdmipacket/nvhdmi_frlInterface.h 67db549636b67a32d646fb7fc6c8db2f13689ecc - src/common/modeset/hdmipacket/nvhdmipkt_9271.c e6d500269128cbd93790fe68fbcad5ba45c2ba7d - src/common/modeset/hdmipacket/nvhdmipkt_C371.c 764d216e9941d0dcf41e89b2a0ddd8acf55902c8 - src/common/modeset/hdmipacket/nvhdmipkt_common.h b882497ae393bf66a728dae395b64ac53602a1a5 - src/common/softfloat/nvidia/nv-softfloat.h be9407a273620c0ba619b53ed72d59d52620c3e4 - src/common/softfloat/nvidia/platform.h f6d98979ab2d1e2b0d664333104130af6abbcad5 - src/common/softfloat/source/f64_to_i64_r_minMag.c 21a6232d93734b01692689258a3fdfbbf4ff089d - src/common/softfloat/source/s_roundToUI32.c 29321080baa7eab86947ac825561fdcff54a0e43 - src/common/softfloat/source/i32_to_f32.c dafa667ee5dd52c97fc0c3b7144f6b619406c225 - src/common/softfloat/source/s_mulAddF64.c 108eec2abf1cddb397ce9f652465c2e52f7c143b - src/common/softfloat/source/f64_roundToInt.c 513a7d1c3053fc119efcd8ae1bcc9652edc45315 - src/common/softfloat/source/f32_lt.c d19ff7dfece53875f2d6c6f7dd9e7772f7b0b7ec - src/common/softfloat/source/f32_to_i64_r_minMag.c 2db07bbb8242bc55a24ef483af6d648db0660de0 - src/common/softfloat/source/f32_add.c c951c9dffa123e4f77ed235eca49ef9b67f9f3d2 - src/common/softfloat/source/s_subMagsF64.c 5c1026617c588bcf5f1e59230bd5bb900600b9ac - src/common/softfloat/source/f64_mul.c 5c4ee32cc78efc718aaa60ec31d0b00b1bee3c2c - src/common/softfloat/source/f64_to_ui64_r_minMag.c 6fa7493285fe2f7fdc0ac056a6367e90327905c2 - src/common/softfloat/source/f32_sub.c da3b3f94a817909a3dc93ca5fa7675805c7979e0 - src/common/softfloat/source/f64_isSignalingNaN.c d701741d8d6a92bb890e53deda1b795f5787f465 - src/common/softfloat/source/f64_le.c baa7af4eea226140c26ffe6ab02a863d07f729fb - src/common/softfloat/source/f64_eq_signaling.c 2e5c29d842a8ebc5fbf987068dc9394cee609cc7 - src/common/softfloat/source/f32_to_ui64.c 054b23a974fc8d0bab232be433c4e516e6c1250a - src/common/softfloat/source/f64_lt_quiet.c dde685423af544e5359efdb51b4bf9457c67fa3b - src/common/softfloat/source/f32_sqrt.c fb062ecbe62a1f5878fd47f0c61490f2bde279dd - src/common/softfloat/source/s_roundToI32.c 8e58f0258218475616ff4e6317516d40ad475626 - src/common/softfloat/source/f32_lt_quiet.c ab19c6b50c40b8089cb915226d4553d1aa902b0e - src/common/softfloat/source/f64_to_i32_r_minMag.c 86fdc2472526375539216461732d1db6a9f85b55 - src/common/softfloat/source/s_roundPackToF32.c 9266c83f3e50093cc45d7be6ab993a0e72af1685 - src/common/softfloat/source/s_roundPackToF64.c 2e0fec421f4defd293cf55c5f3af7d91f4b7d2cc - src/common/softfloat/source/ui64_to_f32.c 68843a93e1f46195243ef1164f611b759cf19d17 - src/common/softfloat/source/f32_le_quiet.c 00ab2120f71117161d4f6daaa9b90a3036a99841 - src/common/softfloat/source/f32_to_ui32.c d0f8f08c225b60d88b6358d344404ba9df3038ec - src/common/softfloat/source/s_normSubnormalF32Sig.c 0108fe6f0d394ad72083aff9bb58507f97a0b669 - src/common/softfloat/source/ui32_to_f64.c 7bc81f5bc894118c08bfd52b59e010bc068ed762 - src/common/softfloat/source/ui32_to_f32.c 0adfa7e174cdb488bb22b06642e14e7fc6f49c67 - src/common/softfloat/source/s_roundToI64.c c3ce12c227d25bc0de48fbcf914fc208e2448741 - src/common/softfloat/source/f64_sub.c b9fd15957f7ae5effeccb5d8adaa7434b43f44e1 - src/common/softfloat/source/s_roundToUI64.c 29396b7c23941024a59d5ea06698d2fbc7e1a6ca - src/common/softfloat/source/f64_to_i64.c ae25eea499b3ea5bdd96c905fd0542da11083048 - src/common/softfloat/source/s_normRoundPackToF64.c b22876b0695f58ee56143c9f461f1dde32fefbf3 - src/common/softfloat/source/f64_to_ui64.c b8c5ccc1e511637d8b2ba2657de4937b80c01c07 - src/common/softfloat/source/f32_le.c 0126e0fceb1fa7912f4d5b8c3a6ebb4a048eb98a - src/common/softfloat/source/f16_to_f32.c 1ff879eca2a273293b5cd6048419b2d2d8063b93 - src/common/softfloat/source/f64_mulAdd.c 0e9694d551848d88531f5461a9b3b91611652e9a - src/common/softfloat/source/f64_to_ui32_r_minMag.c 5a5e0d9f1ee7e8c0d1d4f9fbcf6eba330a5f1792 - src/common/softfloat/source/f32_isSignalingNaN.c bc992c88f3de09e3a82447cf06dbde7c6604f7f8 - src/common/softfloat/source/f64_to_f32.c 1a86a6948bf6768bd23a19f1f05d40968c1d2b15 - src/common/softfloat/source/f64_rem.c 50daf9186bc5d0180d1453c957164b136d5ffc89 - src/common/softfloat/source/f64_eq.c 09cb0cdb90eb23b53cd9c1a76ba26021084710d1 - src/common/softfloat/source/s_addMagsF32.c 9f4d355d85fbe998e243fe4c7bbf8ad23062b6e2 - src/common/softfloat/source/i64_to_f64.c fd40a71c7ebf9d632a384fadf9487cfef4f3ea98 - src/common/softfloat/source/s_shiftRightJam128.c aaf6ccb77a1a89fa055a0fb63513297b35e2e54b - src/common/softfloat/source/f64_le_quiet.c 38bd00e9c4d2f1354c611404cca6209a6c417669 - src/common/softfloat/source/s_countLeadingZeros64.c d9a86343e6cc75714f65f690082dd4b0ba724be9 - src/common/softfloat/source/s_roundPackToF16.c 0bf499c0e3a54186fa32b38b310cc9d98ccdcfe3 - src/common/softfloat/source/f32_eq.c d4b26dc407a891e9ff5324853f1845a99c5d5cd2 - src/common/softfloat/source/f32_to_i32.c 296c40b0589536cb9af3231ad3dcd7f2baaa6887 - src/common/softfloat/source/f64_lt.c 0d8e42636a3409a647291fdb388001c2b11bba07 - src/common/softfloat/source/f32_to_f16.c 9a60700ce25578100d83d529e49f08f71cf35e17 - src/common/softfloat/source/s_normSubnormalF16Sig.c ec1a797b11f6e846928a4a49a8756f288bda1dfa - src/common/softfloat/source/i32_to_f64.c 729e790328168c64d65a1355e990274c249bbb3a - src/common/softfloat/source/f32_to_i32_r_minMag.c 9a5b93459ace2da23964da98617d6b18006fab86 - src/common/softfloat/source/s_countLeadingZeros8.c 84b0a01ba2a667eb28b166d45bd91352ead83e69 - src/common/softfloat/source/i64_to_f32.c 4b37be398b3e73ae59245f03b2ba2394fc902b4d - src/common/softfloat/source/s_normSubnormalF64Sig.c 6f83fa864007e8227ae09bb36a7fdc18832d4445 - src/common/softfloat/source/f32_mul.c daeb408588738b3eb4c8b092d7f92ac597cf1fc6 - src/common/softfloat/source/f32_rem.c a94c8c2bd74633027e52e96f41d24714d8081eb4 - src/common/softfloat/source/s_approxRecipSqrt_1Ks.c 69dc4cc63b2a9873a6eb636ee7cb704cbd502001 - src/common/softfloat/source/f64_to_ui32.c 50b3147f8413f0595a4c3d6e6eeab84c1ffecada - src/common/softfloat/source/s_normRoundPackToF32.c bbc70102b30f152a560eb98e7a1a4b11b9ede85e - src/common/softfloat/source/f64_sqrt.c 760fd7c257a1f915b61a1089b2acb143c18a082e - src/common/softfloat/source/s_addMagsF64.c ebb4f674b6213fec29761fc4e05c1e3ddeda6d17 - src/common/softfloat/source/f32_mulAdd.c 4445b1fbbd507144f038fd939311ff95bc2cf5f1 - src/common/softfloat/source/ui64_to_f64.c 871cb1a4037d7b4e73cb20ad18390736eea7ae36 - src/common/softfloat/source/f32_to_ui64_r_minMag.c ce37cdce572a3b02d42120e81c4969b39d1a67b6 - src/common/softfloat/source/f64_to_i32.c c29536f617d71fe30accac44b2f1df61c98a97dc - src/common/softfloat/source/f64_div.c 54cbeb5872a86e822bda852ec15d3dcdad4511ce - src/common/softfloat/source/f64_add.c e7890082ce426d88b4ec93893da32e306478c0d1 - src/common/softfloat/source/s_approxRecipSqrt32_1.c 824383b03952c611154bea0a862da2b9e2a43827 - src/common/softfloat/source/s_subMagsF32.c 00c612847b3bd227a006a4a2697df85866b80315 - src/common/softfloat/source/s_mulAddF32.c 7c8e5ab3f9bf6b2764ce5fffe80b2674be566a12 - src/common/softfloat/source/softfloat_state.c e4930e155580a0f5aa7f3694a6205bc9aebfe7aa - src/common/softfloat/source/f32_to_f64.c 1484fc96d7731695bda674e99947280a86990997 - src/common/softfloat/source/f32_to_i64.c 2960704c290f29aae36b8fe006884d5c4abcabb4 - src/common/softfloat/source/f32_div.c 23b76c1d0be64e27a6f7e2ea7b8919f1a45a8e7c - src/common/softfloat/source/f32_to_ui32_r_minMag.c fe06512577e642b09196d46430d038d027491e9f - src/common/softfloat/source/f32_eq_signaling.c 5e6f9e120a17cc73297a35e4d57e4b9cbce01780 - src/common/softfloat/source/s_mul64To128.c e0ad81cfb5d2c0e74dc4ece9518ca15ffc77beaf - src/common/softfloat/source/f32_roundToInt.c d8b0c55a49c4fa0b040541db6d5ff634d7d103e7 - src/common/softfloat/source/8086-SSE/s_propagateNaNF64UI.c a6d5c83f6a0542b33ac9c23ac65ef69002cfff9d - src/common/softfloat/source/8086-SSE/s_propagateNaNF32UI.c 8efb3f7cd3217b5cd25896b4bad058c72fe5b89a - src/common/softfloat/source/8086-SSE/specialize.h 3d0dbc0a672d039a6346e1c21ddf87ffc9181978 - src/common/softfloat/source/8086-SSE/s_f32UIToCommonNaN.c d152bc457b655725185bdff42b36bb96d6e6715e - src/common/softfloat/source/8086-SSE/s_commonNaNToF16UI.c 1dd1b424087d9c872684df0c1b4063b077992d5f - src/common/softfloat/source/8086-SSE/s_f64UIToCommonNaN.c 252c816378fddab616b1f2a61e9fedd549224483 - src/common/softfloat/source/8086-SSE/s_commonNaNToF64UI.c 21a11759ed2afd746a47c4d78b67640c2d052165 - src/common/softfloat/source/8086-SSE/s_commonNaNToF32UI.c 98a850359fe08a7e39212f89ce96014ba80910da - src/common/softfloat/source/8086-SSE/s_f16UIToCommonNaN.c 0cbae7a5abc336331d460cbd3640d2cda02af434 - src/common/softfloat/source/8086-SSE/softfloat_raiseFlags.c 4cd1d6cfca3936a39aab9bc0eb622f5c7c848be1 - src/common/softfloat/source/include/softfloat_types.h 1ded4df85ff5fa904fa54c27d681265425be1658 - src/common/softfloat/source/include/primitiveTypes.h 5f589a4d48cc59a0e5762303df9ea4a06ca398da - src/common/softfloat/source/include/softfloat.h 9d8a025889f3ec0e1cca7c4b52308158e1f39226 - src/common/softfloat/source/include/primitives.h f118cad66d3c8ee17a52cec97cd3dc7e7a1cf2bc - src/common/softfloat/source/include/internals.h 14045fa6330dc6ed20d35eac5b4c5909631bca90 - src/common/src/nv_smg.c abccf0a8732b881d904d937287ced46edcde45ac - src/nvidia/Makefile c5f16fdf43ca3d2845d120c219d1da11257072b0 - src/nvidia/nv-kernel.ld dcf4427b83cce7737f2b784d410291bf7a9612dc - src/nvidia/arch/nvalloc/unix/include/nv-reg.h 4750735d6f3b334499c81d499a06a654a052713d - src/nvidia/arch/nvalloc/unix/include/nv-caps.h 3c61881e9730a8a1686e422358cdfff59616b670 - src/nvidia/arch/nvalloc/unix/include/nv_escape.h 7fc52a43b242a8a921c2707589fa07c8c44da11c - src/nvidia/arch/nvalloc/unix/include/nv.h 81592e5c17bebad04cd11d73672c859baa070329 - src/nvidia/arch/nvalloc/unix/include/nv-chardev-numbers.h e69045379ed58dc0110d16d17eb39a6f600f0d1d - src/nvidia/arch/nvalloc/unix/include/nv-ioctl-lockless-diag.h d1b1a1bc1fa30c1a966e95447f7831a06340d2d0 - src/nvidia/arch/nvalloc/unix/include/nv-priv.h 7e0175a8006f06b1d5f5be078d851a4f01648b96 - src/nvidia/arch/nvalloc/unix/include/nv-nb-regs.h 2eb11e523a3ecba2dcd68f3146e1e666a44256ae - src/nvidia/arch/nvalloc/unix/include/nv-ioctl.h 5f004c33f130e6c5cd275f9c85d46185e4e9b757 - src/nvidia/arch/nvalloc/unix/include/os_custom.h 499e72dad20bcc283ee307471f8539b315211da4 - src/nvidia/arch/nvalloc/unix/include/nv-unix-nvos-params-wrappers.h 824ffbe85c591c7423855bee7bf3193473ef2b70 - src/nvidia/arch/nvalloc/unix/include/osapi.h 669bd0c054b00a74e8996c18063fa9bbf5cd7690 - src/nvidia/arch/nvalloc/unix/include/os-interface.h 2ffd0138e1b3425ade16b962c3ff02a82cde2e64 - src/nvidia/arch/nvalloc/unix/include/nv-ioctl-numa.h b3ecb82f142a50bdc37eafaeb86d67f10fbcf73f - src/nvidia/arch/nvalloc/unix/include/rmobjexportimport.h af45762b6eeae912cc2602acf7dc31d30775ade7 - src/nvidia/arch/nvalloc/unix/include/nv-kernel-rmapi-ops.h 107d1ecb8a128044260915ea259b1e64de3defea - src/nvidia/arch/nvalloc/unix/include/nv-ioctl-numbers.h 3a26838c4edd3525daa68ac6fc7b06842dc6fc07 - src/nvidia/arch/nvalloc/unix/include/nv-gpu-info.h 98a5a3bd7b94e69f4e7d2c3a1769583c17ef5b57 - src/nvidia/arch/nvalloc/unix/src/os.c a659a503a6fcffdcacd2b76ae6b1f156b4b9216c - src/nvidia/arch/nvalloc/unix/src/osmemdesc.c b5ae9b8d551a3e5489605c13686fb6cce4579598 - src/nvidia/arch/nvalloc/unix/src/power-management-tegra.c a17aae37486b325442e447489b64add3694ab8b0 - src/nvidia/arch/nvalloc/unix/src/osunix.c b5b409625fde1b640e4e93276e35248f0fccfa4c - src/nvidia/arch/nvalloc/unix/src/gcc_helper.c 07f9c0995f1fbbba9eb819321996b57c1d2b86cd - src/nvidia/arch/nvalloc/unix/src/exports-stubs.c d8815125dbf79831b8fe55367bba60e7115243cc - src/nvidia/arch/nvalloc/unix/src/osinit.c b1e9f004152562aebd967505fcc1f52b774aef15 - src/nvidia/arch/nvalloc/unix/src/osapi.c a7383deea9dcab093323d8dde1ede73f85f93343 - src/nvidia/arch/nvalloc/unix/src/rmobjexportimport.c b1a6d0a1ca4307b8e8d9cf136c94ef7c9efbae4c - src/nvidia/arch/nvalloc/unix/src/registry.c 915ee6dbffff92a86d68ac38549b25aa1e146872 - src/nvidia/arch/nvalloc/unix/src/os-hypervisor-stubs.c ffea38efca6a43af9bc61bb6cb8c2b14c3d6fc20 - src/nvidia/arch/nvalloc/unix/src/escape.c d1089d8ee0ffcdbf73a42d7c4edb90769aa79d8c - src/nvidia/arch/nvalloc/common/inc/nvrangetypes.h 8530e3d1db60647a9132e10c2119a75295f18060 - src/nvidia/arch/nvalloc/common/inc/nv-firmware.h 1cd024cc06bba6f7c3663ca2d03fe25bd77761d3 - src/nvidia/generated/g_gpu_mgmt_api_nvoc.c 0be1c1ff5f200a9aa68cdf3d03bc4780e757a1ea - src/nvidia/generated/g_traceable_nvoc.h 998d18bc2f6e2cdd00cf383000b66be8e8778baa - src/nvidia/generated/g_nv_debug_dump_nvoc.h 4491368ac52cfda834bdd24df3b6f156c32ec3a9 - src/nvidia/generated/g_client_nvoc.c 4eb2331b2f9f8d8c01d62ad771702e9b42f22b65 - src/nvidia/generated/g_lock_stress_nvoc.h 6b5bf7b2f5dd000bfa2949e14642dd582ba4a378 - src/nvidia/generated/g_event_buffer_nvoc.h cd5f4b0bc23710e5b6277ff214a62c4993e95581 - src/nvidia/generated/g_code_coverage_mgr_nvoc.c b9903d23010ea9d63117c27d5fe0cfba09849fa4 - src/nvidia/generated/g_context_dma_nvoc.c 4b7aaad308f2f25b07d932fc0fe0c3327db522a9 - src/nvidia/generated/g_objtmr_nvoc.h 7bd355d08dc6f2509db22ed56f1c05ab97f5f620 - src/nvidia/generated/g_allclasses.h 4eea9bd7952613f08af07508e2e9c1c0344940e7 - src/nvidia/generated/g_gpu_mgr_nvoc.h c5cad88aa7de5a04a3b6f9836f355347448d6a7b - src/nvidia/generated/g_rmconfig_util.h db1d1e047d00780efbe4c1c1ae6e4fecd3ab49e8 - src/nvidia/generated/g_os_desc_mem_nvoc.h 1ec59322d0874153252a387dcb50bf6d7328d56e - src/nvidia/generated/g_system_mem_nvoc.c 21e57b9c63e847eeb5a29c218db2c5c37db83298 - src/nvidia/generated/g_gpu_nvoc.c 4613f3d42dbc899b278fca71c3aaae79159d7dbe - src/nvidia/generated/g_gpu_user_shared_data_nvoc.c b55573cb02ff8129aa4f5aa050ac53d1f4fcfdb2 - src/nvidia/generated/g_rs_resource_nvoc.h 16c8d551a3a908ec194d39c88c5603cea436c9b7 - src/nvidia/generated/g_binary_api_nvoc.c a232e1da560db2322a921a9f0dc260ad703af2b4 - src/nvidia/generated/g_mem_nvoc.h c503ca5954b8f6ebdba96904a1616a55ce08a2d3 - src/nvidia/generated/g_device_nvoc.c e7cc58e9f8173583bd253fa73df56324e48aa5ad - src/nvidia/generated/g_io_vaspace_nvoc.h b93ab0b9e39ca3c5b397cbdba58e4d9894d4130f - src/nvidia/generated/g_rpc-structures.h afda2b8579ed309e23be0ad1a835ee84fcbe535f - src/nvidia/generated/g_client_nvoc.h e97edab623386f7d1534b4f053a66fc8659167f6 - src/nvidia/generated/g_event_nvoc.h f4b2bffbdbb2b0b398e8dfe3420e46b2bf27839c - src/nvidia/generated/g_hal_nvoc.h 4626f4a1a4eadc3695d79454db25bd0153d1165d - src/nvidia/generated/g_resource_fwd_decls_nvoc.h 30035e0fb1ae8b816fc42b78a17eb30462640ce4 - src/nvidia/generated/g_kernel_head_nvoc.h 52ae6273ddf101e9715aed99991506cad8e96859 - src/nvidia/generated/g_disp_inst_mem_nvoc.c abc769851bd523ee08cf829bf3864cf5475066ec - src/nvidia/generated/g_subdevice_nvoc.h 255c404719b18c2a3aec2a47948c0fbcf4affd4b - src/nvidia/generated/rmconfig.h c7fda8cbe109ad2736694ce9ec0e2ab93d0e3f2c - src/nvidia/generated/g_mem_list_nvoc.h f9bdef39159a8475626a0edcbc3a53505a0ff80a - src/nvidia/generated/g_os_hal.h dc7bbba203ee5ff91b6f14eb3abfad8c15854e1d - src/nvidia/generated/g_mem_desc_nvoc.h 1702c9d021149c0f5c73ebeda7bea29e246af31d - src/nvidia/generated/g_nv_name_released.h 2e0c45e4186d44774286a71daf797c980c2ddf7a - src/nvidia/generated/g_objtmr_nvoc.c 9b78bc02a8fe0ec297167bb4bdb7f8255b94198b - src/nvidia/generated/g_disp_capabilities_nvoc.h 967d8c0d7d5c1271e82f30af992f48322695d367 - src/nvidia/generated/g_eng_state_nvoc.h 831cdf0767703c00918e70ef3933716b201781f1 - src/nvidia/generated/g_syncpoint_mem_nvoc.c ce74dbd8f88f50af0b3ea3b3034395cd98eb08e8 - src/nvidia/generated/g_gpu_access_nvoc.c 08ad957117efefe2e04448bce1cad2dec0e984af - src/nvidia/generated/g_odb.h 033a6d6bac0829783afe8a582fa6c4f329be7f04 - src/nvidia/generated/g_hypervisor_nvoc.h c1471919f6c19e1b576b7c636ba5ae7ab9d58177 - src/nvidia/generated/g_gpu_db_nvoc.c f68b7e209e268d14b0b98686d1766683139b9b5f - src/nvidia/generated/g_system_nvoc.c cdcab5a0094b9e9664f7a0e62ec31783617de5ab - src/nvidia/generated/g_code_coverage_mgr_nvoc.h 5e614b6db957a0ae77502ca6d5966bca506f8020 - src/nvidia/generated/g_gpu_group_nvoc.h eb15207a28b8eed41182de6311ec48f5e321729f - src/nvidia/generated/g_gpu_user_shared_data_nvoc.h ef9def144aaf1b2b292c9815c68a6007eff56dda - src/nvidia/generated/g_rs_server_nvoc.c eb07ee114f8cfc039978cdb7501c3ea03c879864 - src/nvidia/generated/g_generic_engine_nvoc.c d2f3d17e05337992bc031c823186583d62c10235 - src/nvidia/generated/g_chips2halspec_nvoc.h ad94c2430328b91392db363158fa2279b794cc54 - src/nvidia/generated/g_gpu_resource_nvoc.h c77048521f9c9890f14108c2c5457d78a85fe69d - src/nvidia/generated/g_gpu_access_nvoc.h 38a98487eec65d8807e47f99b013619c1537e983 - src/nvidia/generated/g_dce_client_nvoc.c d09bde39b1f12490ea0a696d6915d521c9f13953 - src/nvidia/generated/g_rpc-message-header.h 9becba61ba5ff7580b353abfb87cbe0f37817195 - src/nvidia/generated/g_binary_api_nvoc.h 50f70075eac2515b189e2d07a06b13cfa826945f - src/nvidia/generated/g_rs_client_nvoc.h f8b984c6bc09554753cfe6692dde2eb3171abc57 - src/nvidia/generated/g_disp_channel_nvoc.h 4931b316fc042705a5f094c8c23b0038f980b404 - src/nvidia/generated/g_generic_engine_nvoc.h 2a28557874bd51f567ef42c75fd4e3b09d8ad44d - src/nvidia/generated/g_gpu_arch_nvoc.c a17058fe665949f1e3861fe092e29b229cefbe62 - src/nvidia/generated/g_mem_mgr_nvoc.h 7aa02b964507a8269d35dc56170955025b98bd1a - src/nvidia/generated/g_gpu_arch_nvoc.h 0b9296f7797325b80ff0900f19a3763b564eb26b - src/nvidia/generated/g_context_dma_nvoc.h 4210ff36876e84e0adf1e9d4afb6654c7e6e5060 - src/nvidia/generated/g_resserv_nvoc.h 3613b4ec9b285a4e29edefa833704789c887c189 - src/nvidia/generated/g_tmr_nvoc.c 517b6b986a3749c9a6dd0f22bbef6569cdb48d97 - src/nvidia/generated/g_rs_client_nvoc.c 7670f19682bcd6224c999a8f80e770368e735632 - src/nvidia/generated/g_lock_stress_nvoc.c b348b1b465cb359ca3cf10f5e121714ffb95b582 - src/nvidia/generated/g_standard_mem_nvoc.c 54fa23e7cf0f07d625c25d5c08dad9cd1714f851 - src/nvidia/generated/g_standard_mem_nvoc.h 7e528d775caa7ff2bf4159c94fc2c2e4d3aadffc - src/nvidia/generated/g_chips2halspec_nvoc.c 40aa2c65168c893c725c983b2219ceff03d05608 - src/nvidia/generated/g_gpu_halspec_nvoc.h 17c4ce5e67bf8bc8f48a4e2b1b7752d4597703ad - src/nvidia/generated/g_kernel_head_nvoc.c 3ad8329c7f7d63633b7abf2cdd502e4257fa1726 - src/nvidia/generated/g_event_nvoc.c 7aba35752cd4c6447f844cd9432d7dc1bc77b33d - src/nvidia/generated/g_disp_capabilities_nvoc.c fa3a5418a5d6bd7fb2b375ed7f7b64293fdf5f86 - src/nvidia/generated/g_ioaccess_nvoc.h 3c3961ddf6422294c3322e3b0a3c97ee94bfd010 - src/nvidia/generated/g_gpu_mgr_nvoc.c b73b22368abf741cc0a5108b6c9585a81de28b57 - src/nvidia/generated/g_hal.h 6e219df1367ce7dc8f5f4a1f2209a7808a927871 - src/nvidia/generated/g_hal_mgr_nvoc.c 279538daf54163a7a53aab1330fba2c00fc3f234 - src/nvidia/generated/g_rmconfig_util.c 49e84272bbce137683232275b4f13a19c644c650 - src/nvidia/generated/g_prereq_tracker_nvoc.h 57eb0772bc280690eade3f5d54f786e252c75099 - src/nvidia/generated/g_object_nvoc.c 113297c44e702cd6535e007c1c5b2dd5e6f809dc - src/nvidia/generated/g_ioaccess_nvoc.c 216040d1883e8c4f1e8b47d9f6b279ec111d094d - src/nvidia/generated/g_hal_mgr_nvoc.h 113b10cf6cef2608ff4a288e2944d56da64f355d - src/nvidia/generated/g_gpu_group_nvoc.c 86bb88ccdfa34510d4acf21684e5b8bd32d820b2 - src/nvidia/generated/g_disp_sf_user_nvoc.h 5c0ed2e135f53ca09fbfb542bea88b304a2e1208 - src/nvidia/generated/g_event_buffer_nvoc.c 979082b8c018eee55d880265f7bfd294360816c6 - src/nvidia/generated/g_hda_codec_api_nvoc.c f917323efc9429fcea8643eb9a8d5ee46b1b50a5 - src/nvidia/generated/g_eng_state_nvoc.c 437329a9c6e35e4b02945ec035448e704521280e - src/nvidia/generated/g_hda_codec_api_nvoc.h fba7a2891fe10e837f5897034b8176a7307fbb12 - src/nvidia/generated/g_lock_test_nvoc.h 05269b7e73347b580f11decf0e1b9f467d0cb60c - src/nvidia/generated/g_dce_client_nvoc.h e175ab2ef1fd5b64c9f0d665a26b2ed6f864b106 - src/nvidia/generated/g_vaspace_nvoc.h cc7ec616b034ec01da1c5176b6c62759c3f31a06 - src/nvidia/generated/g_subdevice_nvoc.c 93f9738c0e8aa715592306ddf023adf6b548dcc4 - src/nvidia/generated/g_nvh_state.h 1745f3002758556d1b6d11a24d088ef87ba18bd5 - src/nvidia/generated/g_virt_mem_mgr_nvoc.c 8c9f26e959fa9a6a3c4a5cb8875458cc4a9bfe9e - src/nvidia/generated/g_os_nvoc.c 3b0e038829647cfe0d8807579db33416a420d1d2 - src/nvidia/generated/g_chips2halspec.h a1fad555b8ad36437992afdd6e3e08d236167ac7 - src/nvidia/generated/g_journal_nvoc.h d210a82e3dda39239201cfc1c2fcb2e971915c1e - src/nvidia/generated/g_device_nvoc.h 836f88914b046eadad9435786e1b474ee6690f5f - src/nvidia/generated/g_gpu_nvoc.h ea0d27b0f05818e2e44be7d04b31f8843e1d05b7 - src/nvidia/generated/g_io_vaspace_nvoc.c 10529db24fb0501aa7f2aae25e0a87247ab5405c - src/nvidia/generated/g_resource_nvoc.h 5d47bed309c731bfee4144f61093192e7efcaa55 - src/nvidia/generated/g_disp_channel_nvoc.c 8771d8f2cf58f5e1d91ece01c1962677cebc5e4b - src/nvidia/generated/g_rmconfig_private.h 951c1c8969a621344d4d2a3ec61b1ad51b39ea79 - src/nvidia/generated/g_client_resource_nvoc.c 629b6daac6c9215dc982973b6adcf84314d34d57 - src/nvidia/generated/g_gpu_halspec_nvoc.c 29d5ccf874298c8156314a6eb23c209f2920b779 - src/nvidia/generated/g_gpu_resource_nvoc.c fc26ab853e7c981c271ced30dfd78d95cd9bcdfd - src/nvidia/generated/g_gpu_db_nvoc.h aa76beb8b33254fae884434b688093f9c7f12c87 - src/nvidia/generated/g_hal_private.h 86739259b5059c9b9ea3061bd8d1846385cb95f4 - src/nvidia/generated/g_sdk-structures.h 41bc858f6aca964a8977ad96911ecf1e8b46385d - src/nvidia/generated/g_hal_archimpl.h f87916eae53dbea2f6bdbe80a0e53ecc2071d9fd - src/nvidia/generated/g_lock_test_nvoc.c 6b8597803d509372152e3915f15139186294add5 - src/nvidia/generated/g_gpu_class_list.c 2101385d1332db9a2902370a6b3c6117ca8b2737 - src/nvidia/generated/g_kern_disp_nvoc.h d71ff42bc0fc0faf1999a6cbe88c4492a47e200e - src/nvidia/generated/g_os_nvoc.h e58abb783f7561d0af925c2fca392c5165fcb199 - src/nvidia/generated/g_kern_disp_nvoc.c d6a34926ab710156c9c4b2d9f12a44e6dafd43d1 - src/nvidia/generated/g_tmr_nvoc.h c4c67b0e0284656b32c7b4547e22d521c442124a - src/nvidia/generated/g_disp_objs_nvoc.h 8e49b4d77641c98c6101dbc88a79290ceca6271a - src/nvidia/generated/g_rs_server_nvoc.h af206c390549eff5d690ad07f3e58cd417f07f5f - src/nvidia/generated/g_hal_register.h be659882e731b6a2019639265af46239c5c96ebf - src/nvidia/generated/g_hal_nvoc.c db76e8669776fbfa901c60d9b9908af2fabc4703 - src/nvidia/generated/g_virt_mem_mgr_nvoc.h 797bd0197236fb0afc2c7e052487db803ac5baf0 - src/nvidia/generated/g_rs_resource_nvoc.c 884bed29fb4735ae0b4504fc874702acd29ee541 - src/nvidia/generated/g_mem_mgr_nvoc.c 3168beb42f15591a50339692d502e04977615a7b - src/nvidia/generated/g_prereq_tracker_nvoc.c 8e0071daaf5471a0fb3856705ec993704eaed4b5 - src/nvidia/generated/g_disp_inst_mem_nvoc.h fb464cf839a1e76ac2a27346c7cd46ca921f1f56 - src/nvidia/generated/g_traceable_nvoc.c 8588d6f88ab5e8682952063fe0e2c840b334c622 - src/nvidia/generated/g_eng_desc_nvoc.h de99523103dd7df0934cbe7aa21179ec7f241817 - src/nvidia/generated/g_os_desc_mem_nvoc.c aa43dd8bdbdc71dc64d65e948221c7d5235588e7 - src/nvidia/generated/g_disp_objs_nvoc.c 9b6cc3a5e9e35139e9245cbe753fe9a552a488c0 - src/nvidia/generated/g_syncpoint_mem_nvoc.h ae311b0968df9e9c9c2cec89e3060c472fc70a4c - src/nvidia/generated/g_mem_nvoc.c dc7a782be9a0096701771cb9b2dc020c2f814e6d - src/nvidia/generated/g_system_nvoc.h 93a47004dd1c7529c6ee5f8abdf8b49c336fb681 - src/nvidia/generated/g_disp_sf_user_nvoc.c 3b5dfad8fccd7251cc177c7ea1b90265b4b6c901 - src/nvidia/generated/g_gpu_mgmt_api_nvoc.h b53ec15a1aaf102d42b79881cd1b270afeb7205c - src/nvidia/generated/g_system_mem_nvoc.h 67b2d3ea81ebe7be679bcafc688ced0d64f16edf - src/nvidia/generated/g_object_nvoc.h b1be7145e70d8811fbdbe07c0e99f32ad0e38429 - src/nvidia/generated/g_client_resource_nvoc.h 0d5b87b117d39b173a2a21a5cd71572bc2b26697 - src/nvidia/generated/g_resource_nvoc.c 51df7972f9932c2a5d800d4e2b3e4828e5aa2038 - src/nvidia/generated/g_vaspace_nvoc.c 0820fa0a975b2474ce0fdf64508cbd7758f60e5c - src/nvidia/generated/g_ref_count_nvoc.h fff3ebc8527b34f8c463daad4d20ee5e33321344 - src/nvidia/inc/lib/ref_count.h ec26741397ebd68078e8b5e34da3b3c889681b70 - src/nvidia/inc/lib/base_utils.h f8d9eb5f6a6883de962b63b4b7de35c01b20182f - src/nvidia/inc/lib/protobuf/prb.h 601edb7333b87349d791d430f1cac84fb6fbb919 - src/nvidia/inc/lib/zlib/inflate.h 671c628ff9d4e8075f953766adcab9bfc54bd67c - src/nvidia/inc/libraries/poolalloc.h 1e8730e4abd210e3c648ef999ccc2b1f1839b94c - src/nvidia/inc/libraries/field_desc.h 8dd7f2d9956278ed036bbc288bff4dde86a9b509 - src/nvidia/inc/libraries/eventbufferproducer.h 1b28bd0ee2e560ca2854a73a3ee5fb1cf713d013 - src/nvidia/inc/libraries/nvoc/utility.h d3cd73c0c97a291e76e28a6e3834d666e6452172 - src/nvidia/inc/libraries/nvoc/prelude.h 79b556739f0648cec938f281794663433fc5e048 - src/nvidia/inc/libraries/nvoc/runtime.h 91c67f272f0ada6f386e9f4a78fbde70aa5c883d - src/nvidia/inc/libraries/nvoc/object.h c0f66cf7b2fb6ca24b5d4badede9dcac0e3b8311 - src/nvidia/inc/libraries/nvoc/rtti.h a3db778e81f7188a700e008e4c5f5b1320ab811e - src/nvidia/inc/libraries/mmu/gmmu_fmt.h 1daea206ab581fa3554ff1811e1253a7d0053ac0 - src/nvidia/inc/libraries/mmu/mmu_fmt.h 56b8bae7756ed36d0831f76f95033f74eaab01db - src/nvidia/inc/libraries/prereq_tracker/prereq_tracker.h b8e52b576e6668e4de7ea65a31e12c2bb491a591 - src/nvidia/inc/libraries/mapping_reuse/mapping_reuse.h e772583f7fbf994fcf923d527d42372a716b4c57 - src/nvidia/inc/libraries/ioaccess/ioaccess.h 26853c886d848fb88e14da3aceab23f90589c05d - src/nvidia/inc/libraries/utils/nvprintf_level.h c314121149d3b28e58a62e2ccf81bf6904d1e4bc - src/nvidia/inc/libraries/utils/nvmacro.h 72dcc09b77608263573bd34adf09393328eddf86 - src/nvidia/inc/libraries/utils/nvrange.h b598ccd2721892b6915d4be432f1fc332477b666 - src/nvidia/inc/libraries/utils/nvbitvector.h 9aa5870d052a45c2489a6ea1a4f2e30fbc52d6be - src/nvidia/inc/libraries/utils/nv_enum.h 357a7fd76af55cebcbc96a230064e23e50c03f57 - src/nvidia/inc/libraries/utils/nvprintf.h 1b265cb4fcc628862e4b27ae63a897871987eb76 - src/nvidia/inc/libraries/utils/nvassert.h 39113db75fdab5a42f9d8653ed1c90018b8b1df4 - src/nvidia/inc/libraries/containers/map.h 11ce1423312f4c34df19672e45678d0531cc299d - src/nvidia/inc/libraries/containers/ringbuf.h 5f116730f8b7a46e9875850e9b6ffb2a908ad6c2 - src/nvidia/inc/libraries/containers/btree.h fc211c8276ebcee194080140b5f3c30fba3dfe49 - src/nvidia/inc/libraries/containers/queue.h 661b551f4795f076d7d4c4dab8a2ae2f52b0af06 - src/nvidia/inc/libraries/containers/list.h 47c69b04f95664e742f1a0a02711eeb1fb71000b - src/nvidia/inc/libraries/containers/eheap_old.h 5da20ecad3ff8405dea782792c6397d21ba76f7c - src/nvidia/inc/libraries/containers/vector.h bcfc41a04576a4244c9dc3fe2a32c8e582f16c3e - src/nvidia/inc/libraries/containers/type_safety.h 5cabf8b70c3bb188022db16f6ff96bcae7d7fe21 - src/nvidia/inc/libraries/containers/multimap.h 4e26106c9c758c9e48418451ac01cf591ed74a31 - src/nvidia/inc/libraries/nvlog/nvlog_printf.h 41843197a5c11abc93df89b8f10a5f815e7fe6af - src/nvidia/inc/libraries/nvlog/nvlog.h 13aedc8ccf6acdd71be71b2219f79cd1af411273 - src/nvidia/inc/libraries/nvlog/internal/nvlog_printf_internal.h 7c9c9456aaacbeffa11a9af54fe2250095ebbb00 - src/nvidia/inc/libraries/tls/tls.h 87a130551593551380ac3e408f8044cc0423c01a - src/nvidia/inc/libraries/nvport/nvport.h 2487ffc1eb1e50b27ba07e0581da543d80bdaa72 - src/nvidia/inc/libraries/nvport/safe.h 4bf45849bc1c6b89d7a79d761cce84a1d5026eac - src/nvidia/inc/libraries/nvport/debug.h 147d47ef4bd860394d1d8ae82c68d97887e2898b - src/nvidia/inc/libraries/nvport/core.h 6d698ca4fc5e48c525f214a57e1de0cc4aa9e36b - src/nvidia/inc/libraries/nvport/thread.h 6065fa9a525d80f9b61acb19e476066823df0700 - src/nvidia/inc/libraries/nvport/sync.h a1d93b6ec8ff01a3c2651e772a826ee11a7781d7 - src/nvidia/inc/libraries/nvport/util.h fb5a011275328b7c1edc55abc62e604462b37673 - src/nvidia/inc/libraries/nvport/atomic.h 16a35b2b6fd6eb855acd64d72480b285795f54b2 - src/nvidia/inc/libraries/nvport/memory.h f31ed19d0588861b8c2b1489dd4e70d430110db5 - src/nvidia/inc/libraries/nvport/crypto.h 96c7c30c9f6503675f0903a16207a0ac06a6963d - src/nvidia/inc/libraries/nvport/cpu.h 53d843988669f61528cd45099ced749defa4cf7e - src/nvidia/inc/libraries/nvport/string.h d1863efe7b8a63f1c5a7f47856b95ad31fd1a561 - src/nvidia/inc/libraries/nvport/inline/debug_unix_kernel_os.h 9596b274389ea56acff6ca81db8201f41f2dd39d - src/nvidia/inc/libraries/nvport/inline/atomic_clang.h a8c9b83169aceb5f97d9f7a411db449496dc18f6 - src/nvidia/inc/libraries/nvport/inline/util_generic.h bbece45965ffbc85fbd383a8a7c30890c6074b21 - src/nvidia/inc/libraries/nvport/inline/util_gcc_clang.h a7cb79bf7ac48e0f5642ecfd2e430bb85587dddf - src/nvidia/inc/libraries/nvport/inline/memory_tracking.h 1d6a239ed6c8dab1397f056a81ff456141ec7f9c - src/nvidia/inc/libraries/nvport/inline/util_valist.h f267235fd8690e1b1d7485d3a815841607683671 - src/nvidia/inc/libraries/nvport/inline/safe_generic.h 645734ed505a4d977490e54b26cdf49657e20506 - src/nvidia/inc/libraries/nvport/inline/sync_tracking.h a902e0f4265bd3dbd251afefa8ceb0389464d886 - src/nvidia/inc/libraries/nvport/inline/atomic_gcc.h 2dec1c73507f66736674d203cc4a00813ccb11bc - src/nvidia/inc/libraries/resserv/rs_domain.h fa5a5d8fa07cae6b8ef9d9135dc5d7e7624533d2 - src/nvidia/inc/libraries/resserv/resserv.h 972165721958839bc1d510fda9409d35ff89ec21 - src/nvidia/inc/libraries/resserv/rs_server.h 883bf7295d707014278e035f670d151275975d18 - src/nvidia/inc/libraries/resserv/rs_resource.h 2ad85ddca7cd230cea917e249871277ef1e59db1 - src/nvidia/inc/libraries/resserv/rs_client.h cd033fe116a41285a979e629a2ee7b11ec99369f - src/nvidia/inc/libraries/resserv/rs_access_rights.h df174d6b4f718ef699ca6f38c16aaeffa111ad3c - src/nvidia/inc/libraries/resserv/rs_access_map.h 5fd1da24ae8263c43dc5dada4702564b6f0ca3d9 - src/nvidia/inc/os/dce_rm_client_ipc.h 4aa45a3755ef172aa35279e87dd5cd83cab1bc2e - src/nvidia/inc/kernel/vgpu/rpc_hal_stubs.h f2fd94a00e5debf1dc7f7ad4c00d417552fb0554 - src/nvidia/inc/kernel/vgpu/rpc.h 37598b6c25aac1a07cbc2bc5c76ebecdbca56eb6 - src/nvidia/inc/kernel/vgpu/rm_plugin_shared_code.h fea4bbeb739723d3b80b5b3d8943e746e58fae07 - src/nvidia/inc/kernel/vgpu/dev_vgpu.h f64d3723d0c475558bed799da8d2c5ec32a7d3a8 - src/nvidia/inc/kernel/vgpu/vgpuapi.h 8bf8282ce6112a2afb2e7f64d138d6ce90cf37c0 - src/nvidia/inc/kernel/vgpu/rpc_global_enums.h 69360faa428e157580fac445bcf601f44f7646c0 - src/nvidia/inc/kernel/vgpu/rpc_headers.h b9af629ab29b527f7830b78f52b55b8535b8dbfd - src/nvidia/inc/kernel/vgpu/vgpu_util.h e33b5b8c324c23d28e91324a87b47a24823dc5f5 - src/nvidia/inc/kernel/vgpu/rpc_vgpu.h af9d17b204fdddc6f97280fdafd5a414ee8274dc - src/nvidia/inc/kernel/diagnostics/code_coverage_mgr.h c6efd51b8b8447829a0867cd7fb7a5a5a2fb1e3d - src/nvidia/inc/kernel/diagnostics/traceable.h fd780f85cb1cd0fd3914fa31d1bd4933437b791d - src/nvidia/inc/kernel/diagnostics/tracer.h 7e75b5d99376fba058b31996d49449f8fe62d3f0 - src/nvidia/inc/kernel/diagnostics/profiler.h 7615ac3a83d0ad23b2160ff8ad90bec9eb1f3c6c - src/nvidia/inc/kernel/diagnostics/journal.h b259f23312abe56d34a8f0da36ef549ef60ba5b0 - src/nvidia/inc/kernel/diagnostics/nv_debug_dump.h 7f3f19ed69089ba05f5cac44982547718dbf4662 - src/nvidia/inc/kernel/diagnostics/xid_context.h 3a28bf1692efb34d2161907c3781401951cc2d4f - src/nvidia/inc/kernel/diagnostics/journal_structs.h 8ef620afdf720259cead00d20fae73d31e59c2f7 - src/nvidia/inc/kernel/virtualization/hypervisor/hypervisor.h 701375e96d771b4105f5fe4949ed4a542be4f3d7 - src/nvidia/inc/kernel/os/os_stub.h 408c0340350b813c3cba17fd36171075e156df72 - src/nvidia/inc/kernel/os/os.h c8496199cd808ed4c79d8e149961e721ad96714e - src/nvidia/inc/kernel/os/capability.h cda75171ca7d8bf920aab6d56ef9aadec16fd15d - src/nvidia/inc/kernel/os/nv_memory_type.h 70b67003fda6bdb8a01fa1e41c3b0e25136a856c - src/nvidia/inc/kernel/os/nv_memory_area.h 497492340cea19a93b62da69ca2000b811c8f5d6 - src/nvidia/inc/kernel/rmapi/event_buffer.h 499c3d0d76276ee9441d57948ea97877c48b1daa - src/nvidia/inc/kernel/rmapi/rmapi.h b4bae9ea958b4d014908459e08c93319784c47dd - src/nvidia/inc/kernel/rmapi/event.h 0500c41247fdecd66f25428d279c6dab72bab13e - src/nvidia/inc/kernel/rmapi/binary_api.h 61e3704cd51161c9804cb168d5ce4553b7311973 - src/nvidia/inc/kernel/rmapi/resource.h 2baec15f4c68a9c59dd107a0db288e39914e6737 - src/nvidia/inc/kernel/rmapi/client.h ac9288d75555180c1d5dd6dd7e0e11fb57a967f2 - src/nvidia/inc/kernel/rmapi/exports.h 835f193521f216d29c678a6018cd9791914b6c01 - src/nvidia/inc/kernel/rmapi/lock_stress.h b9ff9b201bf2df8651f0c408158aa617638868f6 - src/nvidia/inc/kernel/rmapi/rmapi_specific.h 20adc296ffe79f27d5c24c70716c972a2e0c9a5d - src/nvidia/inc/kernel/rmapi/control.h deed1715907c1dab8e3304bd4f63b688b72104b7 - src/nvidia/inc/kernel/rmapi/mapping_list.h 4453fe6463e3155063f2bdbf36f44697606a80a5 - src/nvidia/inc/kernel/rmapi/client_resource.h 6cc2de07b21fb21cef1b5b87fb2f1c935782262c - src/nvidia/inc/kernel/rmapi/rs_utils.h 35a65c31c6dcc2824011245ff6e2d5a30f95525c - src/nvidia/inc/kernel/rmapi/rmapi_utils.h a92dbf2870fe0df245ea8967f2f6a68f5075ecaf - src/nvidia/inc/kernel/rmapi/resource_fwd_decls.h 23e243f9abcb2a4f2d10d141303cd55677b04436 - src/nvidia/inc/kernel/rmapi/rmapi_cache_handlers.h 2724476b61b1790f1b7c293cc86e8a268125e11c - src/nvidia/inc/kernel/rmapi/param_copy.h 15f788614e08d805e963653460858cf013fe0178 - src/nvidia/inc/kernel/rmapi/lock_test.h 2b23f2dbd8f3f63a17a1b63ebb40a2fd7fd8801a - src/nvidia/inc/kernel/rmapi/alloc_size.h 893ec596aab365c2ff393bf2b96aea57f37d01f8 - src/nvidia/inc/kernel/platform/nvpcf.h 5e9928552086947b10092792db4a8c4c57a84adf - src/nvidia/inc/kernel/platform/acpi_common.h e762205698aff945603324331b443bb2f20cf778 - src/nvidia/inc/kernel/platform/sli/sli.h 15754215ec49815f547dd999b2262a34670dde0b - src/nvidia/inc/kernel/core/locks.h bdc4ab675c6f6c4bd77c3aaf08aa5c865b186802 - src/nvidia/inc/kernel/core/hal.h ad378b09a277fba0efd3291d167e1d21071bdf1b - src/nvidia/inc/kernel/core/printf.h a054be86a4476ba7b9a97052dfcfa4155e059cb9 - src/nvidia/inc/kernel/core/info_block.h bffae4da6a1f9b7dc7c879587fd674b49b46dac1 - src/nvidia/inc/kernel/core/core.h 37f267155ddfc3db38f110dbb0397f0463d055ff - src/nvidia/inc/kernel/core/strict.h b00302aec7e4f4e3b89a2f699f8b1f18fc17b1ba - src/nvidia/inc/kernel/core/hal_mgr.h 2d741243a6ae800052ddd478cc6aa7ad0b18f112 - src/nvidia/inc/kernel/core/prelude.h ebc7c06d9e94218af4cf6b0c03e83650e391e5bc - src/nvidia/inc/kernel/core/thread_state.h b5859c7862fb3eeb266f7213845885789801194a - src/nvidia/inc/kernel/core/system.h 07f45cd5fab5814e21b9e84425564b43776118fd - src/nvidia/inc/kernel/gpu/gpu_resource_desc.h 7010ff346c27b6453c091f5577672b8b1821808d - src/nvidia/inc/kernel/gpu/gpu_access.h 10ba0b9d4c67c8027b391073dab8dc4388f32fd7 - src/nvidia/inc/kernel/gpu/nvbitmask.h 59f72837997cb0c8ffc491d9a61c61e61b9dca94 - src/nvidia/inc/kernel/gpu/gpu_shared_data_map.h bca121fb72d54afd714654f1a50eb7192da3135f - src/nvidia/inc/kernel/gpu/gpu_uuid.h 3f0f23a15201105779f3d25dc7628b42990c4b7e - src/nvidia/inc/kernel/gpu/gpu_timeout.h 1ac9c8bf155d1f25f790032b2b6306223199d9ff - src/nvidia/inc/kernel/gpu/gpu_arch.h f17b704f2489ffedcc057d4a6da77c42ece42923 - src/nvidia/inc/kernel/gpu/gpu_resource.h 28d0d82b58ef13662e8896d3bbc42d340836294e - src/nvidia/inc/kernel/gpu/gpu_user_shared_data.h e33e4d1537839e41898ff0fab8949e90ee1aed46 - src/nvidia/inc/kernel/gpu/gpu_device_mapping.h 426c6ab6cecc3b1ba540b01309d1603301a86db1 - src/nvidia/inc/kernel/gpu/eng_desc.h 5f5677bee452c64a1b890c3eb65e81fda66ddbaa - src/nvidia/inc/kernel/gpu/error_cont.h d624e0c45cc8ad24e8c0b2fb5281c0c8a1c7a6d3 - src/nvidia/inc/kernel/gpu/gpu_engine_type.h c33ab6494c9423c327707fce2bcb771328984a3c - src/nvidia/inc/kernel/gpu/gpu_halspec.h 145b1bc37e6c36b466ea33dd0579d22b530d8dd3 - src/nvidia/inc/kernel/gpu/kern_gpu_power.h c771936af1de030194894db1312d847038ddb0cb - src/nvidia/inc/kernel/gpu/gpu_child_list.h 0e8353854e837f0ef0fbf0d5ff5d7a25aa1eef7c - src/nvidia/inc/kernel/gpu/eng_state.h 76b24227c65570898c19e16bf35b2cad143f3d05 - src/nvidia/inc/kernel/gpu/gpu.h 0a0c9a8f27feec3e90e15ce9879532ec77450de5 - src/nvidia/inc/kernel/gpu/gpu_acpi_data.h 9ed922ffed4454a10c5e2d8b3123ed653ec653e4 - src/nvidia/inc/kernel/gpu/gpu_ecc.h f2947fefcaf0611cd80c2c88ce3fdea70953c1ed - src/nvidia/inc/kernel/gpu/gpu_child_class_defs.h efc50bb2ff6ccf1b7715fd413ca680034920758e - src/nvidia/inc/kernel/gpu/subdevice/generic_engine.h 24d01769b39a6dd62574a95fad64443b05872151 - src/nvidia/inc/kernel/gpu/subdevice/subdevice.h 576216219d27aa887beeccefc22bcead4d1234d7 - src/nvidia/inc/kernel/gpu/disp/kern_disp.h 277a2719f8c063037c6a9ed55ade2b1cb17f48ae - src/nvidia/inc/kernel/gpu/disp/disp_capabilities.h 51a209575d3e3fe8feb7269ece7df0846e18ca2a - src/nvidia/inc/kernel/gpu/disp/kern_disp_type.h d0899f0e55e6675e267d4c72577be52e39b66121 - src/nvidia/inc/kernel/gpu/disp/kern_disp_max.h be7da8d1106ee14ff808d86abffb86794299b2df - src/nvidia/inc/kernel/gpu/disp/disp_objs.h 74bc902cd00b17da3a1dfa7fd3ebc058de439b76 - src/nvidia/inc/kernel/gpu/disp/disp_channel.h b39826404d84e0850aa3385691d8dde6e30d70d4 - src/nvidia/inc/kernel/gpu/disp/disp_sf_user.h 24397d051c941427e54cefc1062d8cd977a8725e - src/nvidia/inc/kernel/gpu/disp/vblank_callback/vblank.h 9a33a37c6cea9bad513aa14c942c689f28f7c0d8 - src/nvidia/inc/kernel/gpu/disp/head/kernel_head.h 5179f01acf7e9e251552dc17c0dcd84f7d341d82 - src/nvidia/inc/kernel/gpu/disp/inst_mem/disp_inst_mem.h 22fc153d91a3917ac8e3f2aa94f0d52bfb11f7c2 - src/nvidia/inc/kernel/gpu/hfrp/kern_hfrp_commands_responses.h 173e9ecd2224a5259c79f2491302ba4415e82f70 - src/nvidia/inc/kernel/gpu/hfrp/kernel_hfrp.h 3118f2e9b47cfac98a92d195ce67ea63e50bf3ab - src/nvidia/inc/kernel/gpu/hfrp/kern_hfrp_common.h 1feab39692ea8796ac7675f4780dfd51e6e16326 - src/nvidia/inc/kernel/gpu/timer/objtmr.h 0cff83f4fdcc8d025cd68e0a12faaeead09fa03b - src/nvidia/inc/kernel/gpu/timer/tmr.h 71dd4fccd3b601508230a2b8b720aaf531a160ff - src/nvidia/inc/kernel/gpu/gsp/gsp_trace_rats_macro.h e1979c71f3d5ffc92bf2306f9360b70bca0edf1f - src/nvidia/inc/kernel/gpu/gsp/message_queue.h 23d38dc3e66affac9342a839f5ba0d79a40f63ba - src/nvidia/inc/kernel/gpu/gsp/kernel_gsp_trace_rats.h bb9b8ec9840109b15c174da02e7ac85c1e2c0c70 - src/nvidia/inc/kernel/gpu/rpc/objrpc.h 1cc21ad9136024f7437ef745db6652343588c50a - src/nvidia/inc/kernel/gpu/rpc/objrpcstructurecopy.h 7b7cf3b6459711065d1b849bf5acaea10b6400ca - src/nvidia/inc/kernel/gpu/intr/intr_common.h 1e3bebe46b7f2f542eedace554a4156b3afb51f1 - src/nvidia/inc/kernel/gpu/audio/hda_codec_api.h 97d0a067e89251672f191788abe81cf26dcb335f - src/nvidia/inc/kernel/gpu/device/device.h 889ba18a43cc2b5c5e970a90ddcb770ce873b785 - src/nvidia/inc/kernel/gpu/mem_mgr/mem_desc.h 6756126ddd616d6393037bebf371fceacaf3a9f1 - src/nvidia/inc/kernel/gpu/mem_mgr/context_dma.h e4c67260b5cb693d695ad3d8aa96aaed45688322 - src/nvidia/inc/kernel/gpu/mem_mgr/virt_mem_allocator_common.h 20416f7239833dcaa743bbf988702610e9251289 - src/nvidia/inc/kernel/gpu/mem_mgr/mem_mgr.h 407cad27681bde8235305464150e275a4a93b5d5 - src/nvidia/inc/kernel/gpu/mem_mgr/mem_utils.h 5be45f3abdbb65a8eea959d98499ea8ff9a79de9 - src/nvidia/inc/kernel/gpu/mem_mgr/rm_page_size.h 76de30ac7b722cc5d59fc834d6b9c795ec14d7a5 - src/nvidia/inc/kernel/gpu/mem_mgr/heap_base.h ce4e0f7177f46f4fc507a68b635e5395a3f7dde6 - src/nvidia/inc/kernel/gpu/dce_client/dce_client.h 2c48d7335bdb0b7ea88b78216c0aeab2e11e00c1 - src/nvidia/inc/kernel/gpu_mgr/gpu_mgmt_api.h 5b151d0d97b83c9fb76b76c476947f9e15e774ad - src/nvidia/inc/kernel/gpu_mgr/gpu_mgr.h e188d9f2d042ffe029b96d8fbb16c79a0fc0fb01 - src/nvidia/inc/kernel/gpu_mgr/gpu_db.h ea32018e3464bb1ac792e39227badf482fa2dc67 - src/nvidia/inc/kernel/gpu_mgr/gpu_group.h 02d6a37ef1bb057604cb98a905fa02429f200c96 - src/nvidia/inc/kernel/mem_mgr/mem.h a5f49a031db4171228a27482d091283e84632ace - src/nvidia/inc/kernel/mem_mgr/system_mem.h d15991bc770c5ab41fe746995294c5213efa056b - src/nvidia/inc/kernel/mem_mgr/io_vaspace.h 5ae08b2077506cbc41e40e1b3672e615ce9d910f - src/nvidia/inc/kernel/mem_mgr/vaspace.h 0ce5d6370c086d2944b2e8d31ff72a510d98dc8f - src/nvidia/inc/kernel/mem_mgr/virt_mem_mgr.h 4c386104eaead66c66df11258c3f1182b46e96ee - src/nvidia/inc/kernel/mem_mgr/syncpoint_mem.h 1a08e83fd6f0a072d6887c60c529e29211bcd007 - src/nvidia/inc/kernel/mem_mgr/os_desc_mem.h 2d4afabd63699feec3aea5e89601db009fc51a08 - src/nvidia/inc/kernel/mem_mgr/standard_mem.h 24928c8b4e8b238f1921a1699f3af59bcff994ed - src/nvidia/src/lib/base_utils.c a6134d6f5f3e3b0b4c274eb3b2d0a146644c842b - src/nvidia/src/lib/zlib/inflate.c 2e57601af217d0d8c4986abb593e8864e53e7e0b - src/nvidia/src/libraries/nvoc/src/runtime.c 9ea8bf51c44e500c9963a12a1e2a71ebffe6c4e8 - src/nvidia/src/libraries/nvbitvector/nvbitvector.c 0e7a9b9c697f260438ca5fda8527b0f4edc2de13 - src/nvidia/src/libraries/prereq_tracker/prereq_tracker.c e5ead344020dfc973ee7c7383e0f687a29642683 - src/nvidia/src/libraries/mapping_reuse/mapping_reuse.c 3c885d2c0e6cfb3f8585bddcba128b02e0196167 - src/nvidia/src/libraries/eventbuffer/eventbufferproducer.c ee7ea17829dfbbf9e6cd8d6c6fb2ada086b5d36e - src/nvidia/src/libraries/ioaccess/ioaccess.c ca2ba7f19b705e39dbb8890a84ce84d34fbd8aa4 - src/nvidia/src/libraries/utils/nvassert.c 864bd314450490b687a652335a44fb407835152c - src/nvidia/src/libraries/containers/ringbuf.c eb919a9e8711830c1c3f7fe71273e0a39862292e - src/nvidia/src/libraries/containers/vector.c 53aa343682f721f57058c7a17b1e872ca6fe7cea - src/nvidia/src/libraries/containers/map.c 7f58f03ec069ad5f5c64fedf4a484cc93473bd04 - src/nvidia/src/libraries/containers/queue.c 23c328fc27ad0317efe6ccd2da71cfd9db9da236 - src/nvidia/src/libraries/containers/multimap.c ae669a466f1fecf67746a9fafc8c1119294c93d7 - src/nvidia/src/libraries/containers/list.c 9c80df385a47834da4f92dc11053ca40a37a7fe7 - src/nvidia/src/libraries/containers/btree/btree.c a0e23ad69d805a7de439f0fbf79241c6466efdc2 - src/nvidia/src/libraries/containers/eheap/eheap_old.c cccb1fedee02a240692688090e00ac1e289dec9e - src/nvidia/src/libraries/tls/tls.c a045a19d750d48387640ab659bb30f724c34b8c8 - src/nvidia/src/libraries/nvport/util/util_unix_kernel_os.c d047abe66dd8a459c15224cc056fc6f2176b0c6a - src/nvidia/src/libraries/nvport/util/util_gcc_clang.c f0c486c1ad0f7d9516b13a02d52b4d857d8865b1 - src/nvidia/src/libraries/nvport/util/util_compiler_switch.c 9b69fbf3efea6ba58f9ba7cb0189c9264c994657 - src/nvidia/src/libraries/nvport/sync/sync_common.h eb8b5fcab51c47f58a37958ddb38ff90991bcbbe - src/nvidia/src/libraries/nvport/sync/sync_unix_kernel_os.c b2ae1406c94779f575d3e2233a7ab248ac10e74f - src/nvidia/src/libraries/nvport/sync/inc/sync_unix_kernel_os_def.h e2fec1a305dfec07456faec8ea5e75f601d76b5e - src/nvidia/src/libraries/nvport/memory/memory_tracking.c c5a16e5bb7d304ffe5e83d7b27226cbecdbc7ce1 - src/nvidia/src/libraries/nvport/memory/memory_unix_kernel_os.c db01179ad5e6333844bd3e31b62d0dc262c98875 - src/nvidia/src/libraries/nvport/memory/memory_generic.h 2c00bd224d17c0cc5469b5140f3be3d23b494922 - src/nvidia/src/libraries/nvport/string/string_generic.c b387005657f81538fab5962d4aabbc5dc681aa1b - src/nvidia/src/libraries/nvport/core/core.c 702c73446bba35f88249cfe609ac0ca39dbd80ff - src/nvidia/src/libraries/nvport/crypto/crypto_random_xorshift.c 9ca28a5af5663dec54b4cd35f48a8a3d8e52e25f - src/nvidia/src/libraries/nvport/cpu/cpu_common.c a305654bafc883ad28a134a04e83bbd409e0fc06 - src/nvidia/src/libraries/nvport/cpu/cpu_common.h 099c17e5931d5d881d8248ec68041fa0bbc2a9bc - src/nvidia/src/libraries/nvport/thread/thread_unix_kernel_os.c 1f2e9d09e658474b36d0b0ecd9380d0d2bcc86b2 - src/nvidia/src/libraries/resserv/src/rs_domain.c f9cb28c60e7063ddb5b2a2af4a053a477c95c74b - src/nvidia/src/libraries/resserv/src/rs_server.c dac54d97b38ad722198ec918668f175dc5122e4e - src/nvidia/src/libraries/resserv/src/rs_access_map.c ede517ff5f53666a23ad2edec7e9fcd85c6ef7d1 - src/nvidia/src/libraries/resserv/src/rs_client.c 26d872a8495e38065af34aed9a60ab9a08898d40 - src/nvidia/src/libraries/resserv/src/rs_resource.c 408e1e5430e5e507e7e59adc292175150e50b825 - src/nvidia/src/libraries/resserv/src/rs_access_rights.c 304e2fb9bbf6d37358779d4e321f33ac76efcd39 - src/nvidia/src/kernel/diagnostics/nvlog.c b3a29311cc22e2dae686f8ed2df6bc828aa826cf - src/nvidia/src/kernel/diagnostics/profiler.c 439543a41a36b0959b5f4c099f4adaa379b9f912 - src/nvidia/src/kernel/diagnostics/code_coverage_mgr.c c1e5733847085bede6eb128eff3bad14549a31db - src/nvidia/src/kernel/diagnostics/nvlog_printf.c d10c5031c3bc00ae1243729c39496df38d2c9ae3 - src/nvidia/src/kernel/os/os_init.c 2255d1ae2d942c3fed9a4b0a41020d0e49cb8648 - src/nvidia/src/kernel/os/os_timer.c b887b661ffbe6c223c60f544b1fab32690cd8c75 - src/nvidia/src/kernel/os/os_sanity.c f228bc86fd9149675cb554d6f596d81fdd4c3770 - src/nvidia/src/kernel/os/os_stubs.c 8800bf3ec679a1c3d36b89992b3f2f95365ec834 - src/nvidia/src/kernel/rmapi/entry_points.c 348c34e13f006f1320536876cb7393d8232e61de - src/nvidia/src/kernel/rmapi/rpc_common.c 8f033323f3ae264a79f779abb163442deb17e88a - src/nvidia/src/kernel/rmapi/rmapi.c bc7c0b5bd06a1c58714b782d85f740632c6e152f - src/nvidia/src/kernel/rmapi/rmapi_cache_handlers.c ac6a5b3adf15eac4a7bd9ae24981f6f5fc727097 - src/nvidia/src/kernel/rmapi/deprecated_context.h b1e57ee17d6641412a4065317be3b81e5db94824 - src/nvidia/src/kernel/rmapi/event_notification.c a965c5f028c1d47d7da0dd03dabbf8aebc817523 - src/nvidia/src/kernel/rmapi/rs_utils.c a2ad052692006f70e97fd3d186f19c7ddfe80c4c - src/nvidia/src/kernel/rmapi/deprecated_context.c 7a0a8914b407f836627d8262de2de6cab2dd691d - src/nvidia/src/kernel/rmapi/rmapi_specific.c d915b65380b59e557e5043f839c42d4105caa111 - src/nvidia/src/kernel/rmapi/rmapi_utils.c 2c5b12d5eb17c313138262cd1e42eb940a4d9ed8 - src/nvidia/src/kernel/rmapi/client.c ab24efdee819d113fe72ec12c0e359c514151336 - src/nvidia/src/kernel/rmapi/resource_desc_flags.h 1745523e56fc0ff5a45d4b2473e13f0cc6f2afb1 - src/nvidia/src/kernel/rmapi/event_buffer.c f70b6d7e8f21bf26d9c8171d62cbdf934fe3a30e - src/nvidia/src/kernel/rmapi/rmapi_stubs.c 09fc97bd7daa74a0b2e55fc5632b2f25464412dc - src/nvidia/src/kernel/rmapi/client_resource.c c21223701bd7afd09e706616105f3f5f365afa5d - src/nvidia/src/kernel/rmapi/rmapi_finn.c 433c6091b3b986151e27ea952cef1dc83ff3095c - src/nvidia/src/kernel/rmapi/lock_test.c 682977753c878ccee6279e539cf11bee2b548752 - src/nvidia/src/kernel/rmapi/resource_desc.c 6dc3f6642c450043cc9b361037f4cb2091e7cb58 - src/nvidia/src/kernel/rmapi/sharing.c 00a6ef509ed8484d038c54b47642bc1a00125077 - src/nvidia/src/kernel/rmapi/lock_stress.c 3b53d6b8ef183702327b4bc3a96aa06f67475ddc - src/nvidia/src/kernel/rmapi/param_copy.c 1c9b26108c6b7f27c5f4fe84e10d83cfb32c9b5b - src/nvidia/src/kernel/rmapi/resource_list.h 3b9809740d88ab4b5b9c9d1adbd3ec304f6f6c7e - src/nvidia/src/kernel/rmapi/resource.c 41c397e2cc8c8b1c9c734c435d2d4c17cf709e63 - src/nvidia/src/kernel/rmapi/mapping_cpu.c 58ed3486109a54829f1afdf214c15529eaed678b - src/nvidia/src/kernel/rmapi/mapping.c 0172aa3770ca55bbfbd5e66f48f4e4820a4d5576 - src/nvidia/src/kernel/rmapi/event.c e26021985ccfa2fb94c96310d9700df405817889 - src/nvidia/src/kernel/rmapi/control.c 6ee3cc915f68b5b70274eec219b7fd6799479459 - src/nvidia/src/kernel/rmapi/rmapi_cache.c 7a4abc27bdbcbb758545783f4182f200587ae3bd - src/nvidia/src/kernel/rmapi/binary_api.c f821719c449e0300a3c27ebeaa3f4d6791ddaf60 - src/nvidia/src/kernel/rmapi/alloc_free.c b7561ece996380512992736f947ddea0ba7f075e - src/nvidia/src/kernel/rmapi/resource_desc.h 72a6ae5bcae8eb4197047aaa5c1780b689544c87 - src/nvidia/src/kernel/rmapi/entry_points.h 4fbbb955e617d7b014e201a5263915939c87f884 - src/nvidia/src/kernel/rmapi/resource_list_required_includes.h a16bffcad38862470b4424fa9a1b0d4013304600 - src/nvidia/src/kernel/core/hal_mgr.c 4d3f32dbc4cbe3d4d1301079eaf21005f74dea90 - src/nvidia/src/kernel/core/locks_common.c e7195ca43692b6fbf6a3533437650c596cee88db - src/nvidia/src/kernel/core/locks_minimal.c ee0bf4f81d33e9a7b6bbb2be27bb3973c8cb5b18 - src/nvidia/src/kernel/core/system.c 905a0f08067503374c757ed34d1ea87379ab4a71 - src/nvidia/src/kernel/core/thread_state.c afa03f17393b28b9fc791bf09c4d35833447808d - src/nvidia/src/kernel/core/hal/hal.c d3922085d63a7edf02b582fe0b6e3acba6124c25 - src/nvidia/src/kernel/core/hal/hals_all.c 8eac3ea49f9a53063f7106211e5236372d87bdaf - src/nvidia/src/kernel/core/hal/info_block.c 1f258d22d361a8902c27a4329e553a73b3fbe6e9 - src/nvidia/src/kernel/gpu/device.c f520afc43afd9e40f779d2bdf3acc48ff7419625 - src/nvidia/src/kernel/gpu/eng_state.c 7ed54a614b756e32a61366d2009db26d1ef5fcc4 - src/nvidia/src/kernel/gpu/gpu_arch.c 1b2a50c873087a28cc4edd4a65945bcafc84bcf0 - src/nvidia/src/kernel/gpu/gpu_uuid.c 5bbac8b7323fe7f048e54b2ebc3ebe4f30655181 - src/nvidia/src/kernel/gpu/gpu.c c7f5b73c217a181f5ff28886bf691ec7d528cb86 - src/nvidia/src/kernel/gpu/gpu_resource.c 2408846a2a5c24a102df13919f384c6675f56f29 - src/nvidia/src/kernel/gpu/device_ctrl.c 2b40a86a112c7643a69b094194c2ee1dd294f16a - src/nvidia/src/kernel/gpu/gpu_gspclient.c 261a5b014b3869c3ce5e830cf8b9529fa0b8a09d - src/nvidia/src/kernel/gpu/gpu_resource_desc.c 4e1be780ac696a61f056933e5550040a2d42c6bd - src/nvidia/src/kernel/gpu/gpu_device_mapping.c 57941830e179d534a7329608658c82fd91ff4a57 - src/nvidia/src/kernel/gpu/gpu_timeout.c 89a6229720a7d5276d73ad51a210ce6f60cedb08 - src/nvidia/src/kernel/gpu/gpu_user_shared_data.c bc508781e640dbf756d9c9e43e75227d05b413c7 - src/nvidia/src/kernel/gpu/device_share.c 84c2c6a59313d36aa70c8a01cfedf1d1e7a3d931 - src/nvidia/src/kernel/gpu/gpu_access.c d0d744c416a52404a52c35ede015629990934003 - src/nvidia/src/kernel/gpu/gpu_engine_type.c 12c1f9494317c34b1b9bfcc58bf7bee81b08c98e - src/nvidia/src/kernel/gpu/gpu_t234d_kernel.c f4b1e5dfefeae6021e6ca20e73d0fcaec1b5e95e - src/nvidia/src/kernel/gpu/gpu_rmapi.c 099da8d641fb4481f9a4c625588dd4aa4ce20bcd - src/nvidia/src/kernel/gpu/subdevice/subdevice.c 6fab19f1f68bdb8d2b969efc6f030e2066bc6b5e - src/nvidia/src/kernel/gpu/subdevice/subdevice_ctrl_gpu_kernel.c b4e503b320119fecdb22dfda1268ce31e1a7ecd7 - src/nvidia/src/kernel/gpu/subdevice/generic_engine.c 9afe5cedd5e7d535ee56f4f5b3cc549f154d8be2 - src/nvidia/src/kernel/gpu/subdevice/subdevice_ctrl_event_kernel.c 796d1368584a9318a39ed313dcb86bbcca40ad83 - src/nvidia/src/kernel/gpu/subdevice/subdevice_ctrl_timer_kernel.c 4c363a34fe12b9bb0d428c3d90974d7085d0366f - src/nvidia/src/kernel/gpu/subdevice/subdevice_ctrl_internal_kernel.c fcf79cf10019193a9e57f8d19b5a37bac6120365 - src/nvidia/src/kernel/gpu/arch/t25x/kern_gpu_t256d.c 095d4a87b067038bd2d80a1c4b2d9407810b0e66 - src/nvidia/src/kernel/gpu/arch/t26x/kern_gpu_t264d.c c20ed8bd9fda88b036c6ff677b7c25ebd171434f - src/nvidia/src/kernel/gpu/arch/t23x/kern_gpu_arch_t234d.c b09af17437a01e63e960414a4534074da240dc59 - src/nvidia/src/kernel/gpu/arch/t23x/kern_gpu_t234d.c ceb516c8064e1df2d18897f98f5c8ea58e907973 - src/nvidia/src/kernel/gpu/disp/disp_capabilities.c c67baeb5df33080d99f322786759fc3f5436301d - src/nvidia/src/kernel/gpu/disp/disp_channel.c 8fafebf746bfcde2c53435be386a8a0846973b0c - src/nvidia/src/kernel/gpu/disp/disp_object_kern_ctrl_minimal.c 6437dd659a38c62cd81fb59f229bd94e59f37e71 - src/nvidia/src/kernel/gpu/disp/disp_sf_user.c 0fbfb9dd91147f04bea1060788efc1121078c159 - src/nvidia/src/kernel/gpu/disp/kern_disp.c 5aa67b54fcd16f648d7a72b9c2c4ff3fb6d3a5be - src/nvidia/src/kernel/gpu/disp/disp_common_kern_ctrl_minimal.c 56027ec220553e1febe42f37fd70757cbb034dcb - src/nvidia/src/kernel/gpu/disp/disp_objs.c b95080033ecc8736a0cdf9476cec7563c4a2af0f - src/nvidia/src/kernel/gpu/disp/vblank_callback/vblank.c caba45a10f43e7817f491e7856ef30dd49782f6e - src/nvidia/src/kernel/gpu/disp/head/kernel_head.c f59763139d9993ae545ded8057706cc4d65afc0c - src/nvidia/src/kernel/gpu/disp/head/arch/v04/kernel_head_0401.c eb00ffa5a892558d39db15f473e2c308acfd86d9 - src/nvidia/src/kernel/gpu/disp/arch/v04/kern_disp_0404.c 2b19caf7def14190c99dc4e41983b4a3e3334f22 - src/nvidia/src/kernel/gpu/disp/arch/v04/kern_disp_0401.c 6d99d644a8294d08b0fdebf183306bbdadf819e3 - src/nvidia/src/kernel/gpu/disp/arch/v04/kern_disp_0402.c 57fec208154cd0d25838a688f6457598baf2de7a - src/nvidia/src/kernel/gpu/disp/arch/v02/kern_disp_0204.c 64aa574198449e9556328d1c08f08b3bde5bfad0 - src/nvidia/src/kernel/gpu/disp/arch/v05/kern_disp_0501.c d911e6ae9f7b96e6f441208d38701a8d833e7455 - src/nvidia/src/kernel/gpu/disp/arch/v03/kern_disp_0300.c ae5ef73d6e74026e0b847977c41b92cbf0f30a62 - src/nvidia/src/kernel/gpu/disp/inst_mem/disp_inst_mem.c 4cfab589176c432463859f148ad32c7dac2c83d3 - src/nvidia/src/kernel/gpu/disp/inst_mem/arch/v03/disp_inst_mem_0300.c 60e8d1fa9cd375be783c4575baa2e99ac2b22a88 - src/nvidia/src/kernel/gpu/timer/timer.c f6e518524581b772f8fdbc80418a2018570940ca - src/nvidia/src/kernel/gpu/timer/timer_ostimer.c 1f4d15f959df38f4f6ea48c7b10fc859c6e04b12 - src/nvidia/src/kernel/gpu/audio/hda_codec_api.c 10a8bfd47ce609763c07a0d61be2f71f9f91889e - src/nvidia/src/kernel/gpu/mem_mgr/mem_ctrl.c bfc82499a8b9b8ce10411f6c391b0e575dc7c0d6 - src/nvidia/src/kernel/gpu/mem_mgr/context_dma.c a62f423d6cf69e96b0523a233ec00353d63ee8bd - src/nvidia/src/kernel/gpu/mem_mgr/mem_utils.c 92611eb4f3bed31064a9efbb54a1ece7ffcfc2af - src/nvidia/src/kernel/gpu/mem_mgr/mem_desc.c 4a95b73f744807d96510b0ad7181eae5b12839ce - src/nvidia/src/kernel/gpu/mem_mgr/arch/turing/mem_mgr_tu102_base.c ce09583697a98a2d0e8466dd45764f15945f55c2 - src/nvidia/src/kernel/gpu/dce_client/dce_client_rpc.c cebb9eee63e23bb934881b3313e422b50fb38abb - src/nvidia/src/kernel/gpu/dce_client/dce_client.c d5d8ff429d3bda7103bafcb2dca94678efc8ddd8 - src/nvidia/src/kernel/gpu_mgr/gpu_group.c 2b49d8a3413a1731bc4fb0bab3f32ff272a71a8c - src/nvidia/src/kernel/gpu_mgr/gpu_db.c 37d1e3dd86e6409b8e461f90386e013194c9e4d1 - src/nvidia/src/kernel/gpu_mgr/gpu_mgmt_api.c fe618e428d9a172a0fd9412f5a20df64d7270418 - src/nvidia/src/kernel/gpu_mgr/gpu_mgr.c 593bbc5b93b620019144fadf1281a180ec050012 - src/nvidia/src/kernel/mem_mgr/syncpoint_mem.c 54c1d1a44474a7027c5290551e60f13678226301 - src/nvidia/src/kernel/mem_mgr/standard_mem.c 44069d6ebbd94a11267e6cc0179ab167f91faec4 - src/nvidia/src/kernel/mem_mgr/virt_mem_mgr.c 5a5e689cf264134ae8c4300d986c209c04167743 - src/nvidia/src/kernel/mem_mgr/vaspace.c 5b9048e62581a3fbb0227d1a46c4ee8d8397bf5b - src/nvidia/src/kernel/mem_mgr/mem_mgr_internal.h 630200d06b6588d7fa8c5b1ea16146e8281163d7 - src/nvidia/src/kernel/mem_mgr/io_vaspace.c 04876ed2dedf0ac3228ec6261a0f3f79609e44a5 - src/nvidia/src/kernel/mem_mgr/system_mem.c 873de51b330501a86ec7656fcf3f615034c49f8e - src/nvidia/src/kernel/mem_mgr/os_desc_mem.c ed8376f04af08af8da7d47c6340ff38a8910de87 - src/nvidia/src/kernel/mem_mgr/mem.c 08762b3172f6309f1aeab895761193fa19cb176f - src/nvidia/interface/nv_sriov_defines.h 024b112ea410ee1b1badb585b03fdbabb64ade34 - src/nvidia/interface/nvrm_registry.h 3f7b20e27e6576ee1f2f0557d269697a0b8af7ec - src/nvidia/interface/nv-firmware-registry.h d02ee5bb3f19dffd8b5c30dc852cea243bcdf399 - src/nvidia/interface/acpidsmguids.h 60c7cafce7bd5240e8409e3c5b71214262347efc - src/nvidia/interface/acpigenfuncs.h bff92c9767308a13df1d0858d5f9c82af155679a - src/nvidia/interface/nvacpitypes.h 7790849d0d261e84d04ab5a481bb57309de6409a - src/nvidia/interface/deprecated/rmapi_deprecated_utils.c 82f65de514ef7e2204cfb618d398cf3af8c12778 - src/nvidia/interface/deprecated/rmapi_deprecated.h 49e299b7257e179b701747e061b6b0214d5565f0 - src/nvidia/interface/rmapi/src/g_finn_rm_api.c 7b8431767b7c4b3861582ddab27a079568bf0660 - src/nvidia-modeset/Makefile 7e1249c1d187aec5891eabe5bacae2189d33dc55 - src/nvidia-modeset/lib/nvkms-sync.c c3ab6005d7083e90145cac66addf815c4f93d9a0 - src/nvidia-modeset/lib/nvkms-format.c f69ac0ec080036b8abc7f1ae7b857989f5c9df4a - src/nvidia-modeset/include/nvkms-headsurface-3d.h b8854261256a801af52d1201081afa9c17486a96 - src/nvidia-modeset/include/nvkms-3dvision.h 3212e81bcde5a5dcec5dbba4155a41ca52dd2304 - src/nvidia-modeset/include/nvkms-prealloc.h 24aaf3a4cb16be7a5aaa8317090142743e3dd797 - src/nvidia-modeset/include/nvkms-flip-workarea.h be6cff078fcf66221762a4af1515e01d294dd2f6 - src/nvidia-modeset/include/nvkms-push.h 4361f10ff446c401c3f52bf36aed52ca24706d49 - src/nvidia-modeset/include/nvkms-vrr.h 08aa0dd2f18a8cf74539ea8b25ef3f3646567a0c - src/nvidia-modeset/include/nvkms-evo1.h 9bfb2d12ecdaecaba7eaaffa3040ab142d37f892 - src/nvidia-modeset/include/nvkms-prealloc-types.h 0bd9cf097cfa373f0bed7be8fe5299e2ea4bf669 - src/nvidia-modeset/include/g_nvkms-evo-states.h 708e037052ea0b3d6309fa44a205282b7a69a331 - src/nvidia-modeset/include/nvkms-difr.h 412d8028a548e67e9ef85cb7d3f88385e70c56f9 - src/nvidia-modeset/include/nvkms-console-restore.h 52b6d1a1a6793d232571e6366709436b018ae3b7 - src/nvidia-modeset/include/nvkms-dpy.h 81fcc817dfb8ae1f98b63d2c1acacc303fedb554 - src/nvidia-modeset/include/nvkms-dpy-override.h 0f251b41b076bb80eeebf7d54e6fd6c764404c28 - src/nvidia-modeset/include/nvkms-evo-states.h 70d9251f331bbf28f5c5bbdf939ebad94db9362d - src/nvidia-modeset/include/nvkms-softfloat.h 6e3681d5caa36312804c91630eaaf510eda897d2 - src/nvidia-modeset/include/nvkms-dma.h eb5248c4b0b51e7aecd2de87e496253b3b235c70 - src/nvidia-modeset/include/nvkms-utils-flip.h 377dd4a29b2ea5937a9b8fc3fba0c9e4ef92992e - src/nvidia-modeset/include/nvkms-cursor.h e1225d674a0e6e58110750868c45a4655110a4d8 - src/nvidia-modeset/include/nvkms-headsurface-swapgroup.h 9e3d50761d3a27c1db3085ff82b7d194ff47bf34 - src/nvidia-modeset/include/nvkms-rm.h fd9fa6da0fc28b00be524b0bed25a68c56278363 - src/nvidia-modeset/include/nvkms-modeset.h be6e0e97c1e7ffc0daa2f14ef7b05b9f9c11dc16 - src/nvidia-modeset/include/nvkms-attributes.h e30d9c286263051d14a1862f0c630295a78abde7 - src/nvidia-modeset/include/nvkms-headsurface-priv.h 3fd0822b8b44d13685ecde9d02300e6cfbb123db - src/nvidia-modeset/include/nvkms-hdmi.h 6b21a68e254becdd2641bc456f194f54c23abe51 - src/nvidia-modeset/include/nvkms-framelock.h 53122264a19ea00ef26e6accde3a3a7570e46b15 - src/nvidia-modeset/include/nvkms-vblank-sem-control.h 1b21352fd9d0b1c5708cb8512acf20ba2e13955d - src/nvidia-modeset/include/nvkms-headsurface.h 59d20eff40e4e488eb3ab7c97b5e171142dcdbcf - src/nvidia-modeset/include/nvkms-modeset-workarea.h 933f9b359a1c3807771e2719c6dd80d71beff3c8 - src/nvidia-modeset/include/nvkms-utils.h f5f3b11c78a8b0eef40c09e1751615a47f516edb - src/nvidia-modeset/include/nvkms-hal.h 03f3fd4c2fb7db83441805a5c350b121bd3117b4 - src/nvidia-modeset/include/nvkms-setlut-workarea.h 31acf6af2a4c82e3429efa77d110cb346c11905f - src/nvidia-modeset/include/nvkms-lut.h e4bae9a0df729119071902f7ad59704c97adee0e - src/nvidia-modeset/include/nvkms-private.h fbe2cbfd32b40d8188c6b25716fb360720ab5760 - src/nvidia-modeset/include/nvkms-evo.h 04f2e01c7f798a615319accc2dd713f617a81172 - src/nvidia-modeset/include/nvkms-headsurface-config.h 4a94381bd8c24b09193577d3f05d6d61f178e1cf - src/nvidia-modeset/include/nvkms-ctxdma.h b4d53599736b03ee1bc149abe7b602336f40295c - src/nvidia-modeset/include/nvkms-flip.h 46fc0e138ba7be5fa3ea0ada3ee0a78656950c80 - src/nvidia-modeset/include/nvkms-modeset-types.h 260b6ef87c755e55a803adad4ce49f2d57315f9a - src/nvidia-modeset/include/nvkms-event.h 35fa1444c57f7adbbddddc612237f3ad38cdd78f - src/nvidia-modeset/include/nvkms-rmapi.h 8782df838ea3d2617e9842c89389f51137b19a73 - src/nvidia-modeset/include/nvkms-headsurface-matrix.h 881d7e4187ff9c7e9d02672aedafc1605f3055ec - src/nvidia-modeset/include/nvkms-modepool.h 60c01e29aa91aa80bf3750a1b11fe61a6cdfde58 - src/nvidia-modeset/include/nvkms-types.h cc3dc4021b76782434efd2aa81d3ffdd1f3b1f0a - src/nvidia-modeset/include/nvkms-headsurface-ioctl.h 3dc2113c55970fa70b7afb4fd30f2f1e777ebc12 - src/nvidia-modeset/include/nvkms-surface.h aa43ad7f970331c56378b7797f66b0a77d8e99dd - src/nvidia-modeset/include/nvkms-evo3.h 8c7e0e15c1038fe518e98d8f86fafb250b10a1d2 - src/nvidia-modeset/include/nvkms-stereo.h 9deeeae9081fd828a14f3b0df5fbf17a81161786 - src/nvidia-modeset/include/nvkms-hw-flip.h 6460f8427fdb375d659975c7f6eaadaca0ed2b2c - src/nvidia-modeset/include/dp/nvdp-device.h 1912d523f567c4fc36075942cf8acaf5d5478232 - src/nvidia-modeset/include/dp/nvdp-connector-event-sink.h a233bdcd5daa0582acf2cd5b0f339ad54d09bf13 - src/nvidia-modeset/include/dp/nvdp-timer.h 2b91423ff88ca398324088d4f910e81f6944123a - src/nvidia-modeset/include/dp/nvdp-connector.h aa8aa13c6fc48ff5ef621f243e94dcc01a46dea3 - src/nvidia-modeset/kapi/include/nvkms-kapi-notifiers.h c0de6efe1d5c57da324118f108ea0570a6923036 - src/nvidia-modeset/kapi/include/nvkms-kapi-internal.h 1ec3df41f465a332cae8d3bb97e575c9a2b936f4 - src/nvidia-modeset/kapi/src/nvkms-kapi.c a4d52bb238ce94f3427f25bd169e58d5d5f4abd1 - src/nvidia-modeset/kapi/src/nvkms-kapi-notifiers.c ce42ceac4c4cf9d249d66ab57ae2f435cd9623fc - src/nvidia-modeset/kapi/src/nvkms-kapi-sync.c 80c2c9a2a05beb0202239db8b0dd7080ff21c194 - src/nvidia-modeset/kapi/interface/nvkms-kapi-private.h 29309411e2bf1c2e6492a104dcb9f53705c2e9aa - src/nvidia-modeset/kapi/interface/nvkms-kapi.h 11af2aeea97398b58f628fe4685b5dfcfda5791b - src/nvidia-modeset/src/nvkms-modeset.c 016fd1b111731c6d323425d52bfe1a04d8bcade7 - src/nvidia-modeset/src/nvkms-headsurface-swapgroup.c 37a6d00e8721a9c4134810f8be3e7168f8cbb226 - src/nvidia-modeset/src/nvkms-evo.c 4758c601621603597bd2387c4f08b3fdc17e375d - src/nvidia-modeset/src/nvkms-hw-flip.c 5e3188c2d9b580ff69e45842f841f5c92c0c6edb - src/nvidia-modeset/src/nvkms-headsurface-ioctl.c e1a3c31638416a0132c5301fe5dd4b1c93f14376 - src/nvidia-modeset/src/nvkms-cursor3.c d48ff2da5fac6f8cd0522a25b947b5b8c01812ba - src/nvidia-modeset/src/nvkms-rm.c 30ad7839985dea46e6b6d43499210a3056da51ad - src/nvidia-modeset/src/nvkms-utils-flip.c 2c24667a18374ae967917df219f3775d9a79ae04 - src/nvidia-modeset/src/nvkms-headsurface-3d.c fb8b4aa1e36f23e1927be3dbd351ab0357aeb735 - src/nvidia-modeset/src/nvkms-evo3.c 9ce404d122bbdcd5f626f2c2b7ff08a9bfcf4045 - src/nvidia-modeset/src/nvkms-flip.c e5c96eb6b9884daf4a8d0d467b009008a45065b9 - src/nvidia-modeset/src/g_nvkms-evo-states.c 094c2169412cb577a6e9db9420da084264119284 - src/nvidia-modeset/src/nvkms-hal.c 1e0bf57319954911ddd2fe87b0cd05e257f1439e - src/nvidia-modeset/src/nvkms-surface.c bd2e4a6102432d4ac1faf92b5d3db29e9e3cfafc - src/nvidia-modeset/src/nvkms-utils.c 6d41c9f84cc9ce2d16812e94a3fba055b3fc7308 - src/nvidia-modeset/src/nvkms-conf.c 05bfe67d8cb956a666804b8f27e507bbd35e2c2d - src/nvidia-modeset/src/nvkms-difr.c 9a8746ee4a4e772b8ac13f06dc0de8a250fdb4c7 - src/nvidia-modeset/src/nvkms-ctxdma.c 382141f251ce64e2d33add3b89225c373da9ea7d - src/nvidia-modeset/src/nvkms-hdmi.c 2e1644a912e7a27ec04288e000c3fa5439eecb60 - src/nvidia-modeset/src/nvkms-headsurface-matrix.c 127a3f77febf09d56b6fe3534bc62ff0ffa535d8 - src/nvidia-modeset/src/nvkms-dpy.c e0756f45732035b1000a03bd8a995a46041904ae - src/nvidia-modeset/src/nvkms-vblank-sem-control.c e4044bb85de59d662d0d579771c076cbe9b10bbb - src/nvidia-modeset/src/nvkms.c 12cbc57714f458b5673115bb5c4d380509d05277 - src/nvidia-modeset/src/nvkms-cursor.c 5c93bc35d8f93330dd7a1f7808e39c6001ee83e8 - src/nvidia-modeset/src/nvkms-headsurface-config.c ed78249de63139ec2629bde58b616cef649281f1 - src/nvidia-modeset/src/nvkms-evo2.c c51c4f2e3ac11bf86d4549ce5e9d9010199e37dd - src/nvidia-modeset/src/nvkms-prealloc.c 9d38d5147d06a293a272087d78d0b96b6003f11e - src/nvidia-modeset/src/nvkms-attributes.c 65b02b48caff2a9100b8c5614f91d42fb20da9c0 - src/nvidia-modeset/src/nvkms-dpy-override.c a62b617aa5c89056c19a5f3c91402df8cfcc1103 - src/nvidia-modeset/src/nvkms-push.c 9fea40b7b55d6ebf3f73b5d469751c873ffbe7c0 - src/nvidia-modeset/src/nvkms-dma.c da726d20eea99a96af4c10aace88f419e8ee2a34 - src/nvidia-modeset/src/nvkms-event.c a1c7c3c1191762c0a1038674dee0075d532ccd2d - src/nvidia-modeset/src/nvkms-headsurface.c 2fabe1c14116a2b07f24d01710394ee84a6e3914 - src/nvidia-modeset/src/nvkms-3dvision.c 89b58b1e67ff7ed43c889fe7d85329d7f4762b91 - src/nvidia-modeset/src/nvkms-hw-states.c c799d52bdc792efc377fb5cd307b0eb445c44d6a - src/nvidia-modeset/src/nvkms-cursor2.c dd6c86b5557b02dd15a8ea0f10bde9770d90874e - src/nvidia-modeset/src/nvkms-evo4.c be49ea18102a44914e0d7686c51430df18336383 - src/nvidia-modeset/src/nvkms-framelock.c 6bdb90474b5d31c53104f7b29b447b3f798aaa0e - src/nvidia-modeset/src/nvkms-vrr.c 05ca4acdfeb9b99eccc7e222846fc688473322ae - src/nvidia-modeset/src/nvkms-rmapi-dgpu.c f754a27436fd1e1fa103de6110224c21ad7ea9f4 - src/nvidia-modeset/src/nvkms-pow.c e8c6d2eedfba19f8f06dd57f629588615cf1a2e9 - src/nvidia-modeset/src/nvkms-evo1.c d15f314bea66574e0ffc72966b86bae8366412f5 - src/nvidia-modeset/src/nvkms-console-restore.c 0699860902369359e5ff1a0ef46b87e955d4bb7a - src/nvidia-modeset/src/nvkms-modepool.c 403e6dbff0a607c2aecf3204c56633bd7b612ae2 - src/nvidia-modeset/src/nvkms-stereo.c fd6ecacc4f273c88960148c070dd17d93f49909b - src/nvidia-modeset/src/nvkms-lut.c 771fee54d1123871e380db6f3227b4946b6be647 - src/nvidia-modeset/src/dp/nvdp-timer.cpp 6b985fc50b5040ce1a81418bed73a60edb5d3289 - src/nvidia-modeset/src/dp/nvdp-timer.hpp dcf9f99e79a13b109a8665597f0fc7c00ec37957 - src/nvidia-modeset/src/dp/nvdp-connector.cpp e0e50fc1c526ecf0fe2f60689a25adda1257e2b3 - src/nvidia-modeset/src/dp/nvdp-evo-interface.cpp 16081091156a813977dfdd0718d55ea4a66a0686 - src/nvidia-modeset/src/dp/nvdp-device.cpp 6e17f81da1b94414c1cbf18c3ea92f25352d8bf5 - src/nvidia-modeset/src/dp/nvdp-connector-event-sink.cpp 81065db63fda6468fdf56d853781fca8af610798 - src/nvidia-modeset/src/dp/nvdp-evo-interface.hpp e1f003a64cec57f299e65567d29e69951a62f44a - src/nvidia-modeset/src/dp/nvdp-host.cpp ca07b8e8f507de47694ac7b3b1719b0931da02c6 - src/nvidia-modeset/src/dp/nvdp-connector-event-sink.hpp 2b49249a135293d01e82ef11ee520596c9825875 - src/nvidia-modeset/src/shaders/g_pascal_shaders 09cb78322cc8465d42a4be6a1c3682566c66462d - src/nvidia-modeset/src/shaders/g_maxwell_shaders a62c80e00077041d38d84e06c5834dca527e8a55 - src/nvidia-modeset/src/shaders/g_volta_shader_info.h 21cf709a8717d43c4abc6b66c8faad141592b7ce - src/nvidia-modeset/src/shaders/g_nvidia-headsurface-shader-info.h fec9074463a5505e300f9feb77b60ec77b781bb7 - src/nvidia-modeset/src/shaders/g_turing_shader_info.h cad54ab33c1132ba7453f54e9a02d34504e4fd5c - src/nvidia-modeset/src/shaders/g_pascal_shader_info.h f3bdeb7d46fdc9c31940ea799ce4a0d328fe1844 - src/nvidia-modeset/src/shaders/g_ampere_shaders 0ba4739302e0938b5599afb7e7ad281b21e25cec - src/nvidia-modeset/src/shaders/g_maxwell_shader_info.h 1c02043d31faf4f79c4a54dd5a622e87ee276be8 - src/nvidia-modeset/src/shaders/g_volta_shaders f540d144503d00941a1b32fb1a3d13061065b24e - src/nvidia-modeset/src/shaders/g_hopper_shader_info.h 74824b796722071bc3d90e4dacfed245dcda28cd - src/nvidia-modeset/src/shaders/g_turing_shaders ce728856b76bfa428b199fd3b97e0cbc24ef54cd - src/nvidia-modeset/src/shaders/g_hopper_shaders 02bb8bc0f5d228d4a9a383d797daffd8936c4ad7 - src/nvidia-modeset/src/shaders/g_ampere_shader_info.h 9f35175e44247d4facb26a60614d40fcdb74416f - src/nvidia-modeset/src/shaders/g_shader_names.h ca86fee8bd52e6c84e376199c5f3890078bc2031 - src/nvidia-modeset/os-interface/include/nvidia-modeset-os-interface.h 885370cd7fc5f4d9d685d9d8d3e21460fd30cb38 - src/nvidia-modeset/os-interface/include/nvkms.h 51b367a6e289cc8957388745988315024f97506e - src/nvidia-modeset/interface/nvkms-api.h b986bc6591ba17a74ad81ec4c93347564c6d5165 - src/nvidia-modeset/interface/nvkms-format.h 2ea1436104463c5e3d177e8574c3b4298976d37e - src/nvidia-modeset/interface/nvkms-ioctl.h 3bf4a2d1fec120ef5313c8bf119bc22fb3cf0cc5 - src/nvidia-modeset/interface/nvkms-modetimings.h c54c62de441828282db9a4f5b35c2fa5c97d94f1 - src/nvidia-modeset/interface/nvkms-api-types.h 8e3e74d2b3f45381e7b0012d930cf451cbd1728f - src/nvidia-modeset/interface/nvkms-sync.h Change-Id: Ifb2180253a3f7d7b847ae6067701eddc8c1acc85
5530 lines
198 KiB
Bash
Executable File
5530 lines
198 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
PATH="${PATH}:/bin:/sbin:/usr/bin"
|
|
|
|
# make sure we are in the directory containing this script
|
|
SCRIPTDIR=`dirname $0`
|
|
cd $SCRIPTDIR
|
|
|
|
CC="$1"
|
|
ARCH=$2
|
|
SOURCES=$3
|
|
HEADERS=$SOURCES/include
|
|
OUTPUT=$4
|
|
XEN_PRESENT=1
|
|
PREEMPT_RT_PRESENT=0
|
|
|
|
NVIDIA_OOT_PATH="/usr/src/nvidia/nvidia-oot"
|
|
MODULE_SYMVERS_PATHS="$OUTPUT/Module.symvers"
|
|
|
|
# Also search in out-of-tree Module.symvers on Tegra
|
|
if [ -d ${NVIDIA_OOT_PATH} ]; then
|
|
MODULE_SYMVERS_PATHS="${MODULE_SYMVERS_PATHS} ${NVIDIA_OOT_PATH}/Module.symvers"
|
|
fi
|
|
|
|
# We also use conftest.sh on FreeBSD to check for which symbols are provided
|
|
# by the linux kernel programming interface (linuxkpi) when compiling nvidia-drm.ko
|
|
OS_FREEBSD=0
|
|
if [ "$OS" = "FreeBSD" ] ; then
|
|
OS_FREEBSD=1
|
|
fi
|
|
|
|
# VGX_BUILD parameter defined only for VGX builds (vGPU Host driver)
|
|
# VGX_KVM_BUILD parameter defined only vGPU builds on KVM hypervisor
|
|
# GRID_BUILD parameter defined only for GRID builds (GRID Guest driver)
|
|
# GRID_BUILD_CSP parameter defined only for GRID CSP builds (GRID Guest driver for CSPs)
|
|
# VGX_DEVICE_VM_BUILD parameter defined only for Device VM VGX build (vGPU Host driver)
|
|
|
|
test_xen() {
|
|
#
|
|
# Determine if the target kernel is a Xen kernel. It used to be
|
|
# sufficient to check for CONFIG_XEN, but the introduction of
|
|
# modular para-virtualization (CONFIG_PARAVIRT, etc.) and
|
|
# Xen guest support, it is no longer possible to determine the
|
|
# target environment at build time. Therefore, if both
|
|
# CONFIG_XEN and CONFIG_PARAVIRT are present, text_xen() treats
|
|
# the kernel as a stand-alone kernel.
|
|
#
|
|
if ! test_configuration_option CONFIG_XEN ||
|
|
test_configuration_option CONFIG_PARAVIRT; then
|
|
XEN_PRESENT=0
|
|
fi
|
|
}
|
|
|
|
append_conftest() {
|
|
#
|
|
# Echo data from stdin: this is a transitional function to make it easier
|
|
# to port conftests from drivers with parallel conftest generation to
|
|
# older driver versions
|
|
#
|
|
|
|
while read LINE; do
|
|
echo ${LINE}
|
|
done
|
|
}
|
|
|
|
test_header_presence() {
|
|
#
|
|
# Determine if the given header file (which may or may not be
|
|
# present) is provided by the target kernel.
|
|
#
|
|
# Input:
|
|
# $1: relative file path
|
|
#
|
|
# This routine creates an upper case, underscore version of each of the
|
|
# relative file paths, and uses that as the token to either define or
|
|
# undefine in a C header file. For example, linux/fence.h becomes
|
|
# NV_LINUX_FENCE_H_PRESENT, and that is either defined or undefined, in the
|
|
# output (which goes to stdout, just like the rest of this file).
|
|
|
|
TEST_CFLAGS="-E -M -I${NVIDIA_OOT_PATH}/include $CFLAGS"
|
|
|
|
file="$1"
|
|
file_define=NV_`echo $file | tr '/.-' '___' | tr 'a-z' 'A-Z'`_PRESENT
|
|
|
|
CODE="#include <$file>"
|
|
|
|
if echo "$CODE" | $CC $TEST_CFLAGS - > /dev/null 2>&1; then
|
|
echo "#define $file_define"
|
|
else
|
|
# If preprocessing failed, it could have been because the header
|
|
# file under test is not present, or because it is present but
|
|
# depends upon the inclusion of other header files. Attempting
|
|
# preprocessing again with -MG will ignore a missing header file
|
|
# but will still fail if the header file is present.
|
|
if echo "$CODE" | $CC $TEST_CFLAGS -MG - > /dev/null 2>&1; then
|
|
echo "#undef $file_define"
|
|
else
|
|
echo "#define $file_define"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
build_cflags() {
|
|
ISYSTEM=`$CC -print-file-name=include 2> /dev/null`
|
|
BASE_CFLAGS="-O2 -D__KERNEL__ \
|
|
-DKBUILD_BASENAME=\"#conftest$$\" -DKBUILD_MODNAME=\"#conftest$$\" \
|
|
-nostdinc -isystem $ISYSTEM \
|
|
-Wno-implicit-function-declaration -Wno-strict-prototypes"
|
|
|
|
if [ "$OUTPUT" != "$SOURCES" ]; then
|
|
OUTPUT_CFLAGS="-I$OUTPUT/include2 -I$OUTPUT/include"
|
|
if [ -f "$OUTPUT/include/generated/autoconf.h" ]; then
|
|
AUTOCONF_FILE="$OUTPUT/include/generated/autoconf.h"
|
|
else
|
|
AUTOCONF_FILE="$OUTPUT/include/linux/autoconf.h"
|
|
fi
|
|
else
|
|
if [ -f "$HEADERS/generated/autoconf.h" ]; then
|
|
AUTOCONF_FILE="$HEADERS/generated/autoconf.h"
|
|
else
|
|
AUTOCONF_FILE="$HEADERS/linux/autoconf.h"
|
|
fi
|
|
fi
|
|
|
|
test_xen
|
|
|
|
if [ "$XEN_PRESENT" != "0" ]; then
|
|
MACH_CFLAGS="-I$HEADERS/asm/mach-xen"
|
|
fi
|
|
|
|
KERNEL_ARCH="$ARCH"
|
|
|
|
if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
|
|
if [ -d "$SOURCES/arch/x86" ]; then
|
|
KERNEL_ARCH="x86"
|
|
fi
|
|
fi
|
|
|
|
SOURCE_HEADERS="$HEADERS"
|
|
SOURCE_ARCH_HEADERS="$SOURCES/arch/$KERNEL_ARCH/include"
|
|
OUTPUT_HEADERS="$OUTPUT/include"
|
|
OUTPUT_ARCH_HEADERS="$OUTPUT/arch/$KERNEL_ARCH/include"
|
|
|
|
# Look for mach- directories on this arch, and add it to the list of
|
|
# includes if that platform is enabled in the configuration file, which
|
|
# may have a definition like this:
|
|
# #define CONFIG_ARCH_<MACHUPPERCASE> 1
|
|
for _mach_dir in `ls -1d $SOURCES/arch/$KERNEL_ARCH/mach-* 2>/dev/null`; do
|
|
_mach=`echo $_mach_dir | \
|
|
sed -e "s,$SOURCES/arch/$KERNEL_ARCH/mach-,," | \
|
|
tr 'a-z' 'A-Z'`
|
|
grep "CONFIG_ARCH_$_mach \+1" $AUTOCONF_FILE > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
MACH_CFLAGS="$MACH_CFLAGS -I$_mach_dir/include"
|
|
fi
|
|
done
|
|
|
|
if [ "$ARCH" = "arm" ]; then
|
|
MACH_CFLAGS="$MACH_CFLAGS -D__LINUX_ARM_ARCH__=7"
|
|
fi
|
|
|
|
# Add the mach-default includes (only found on x86/older kernels)
|
|
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCE_HEADERS/asm-$KERNEL_ARCH/mach-default"
|
|
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCE_ARCH_HEADERS/asm/mach-default"
|
|
|
|
CFLAGS="$BASE_CFLAGS $MACH_CFLAGS $OUTPUT_CFLAGS -include $AUTOCONF_FILE"
|
|
CFLAGS="$CFLAGS -I$SOURCE_HEADERS"
|
|
CFLAGS="$CFLAGS -I$SOURCE_HEADERS/uapi"
|
|
CFLAGS="$CFLAGS -I$SOURCE_HEADERS/xen"
|
|
CFLAGS="$CFLAGS -I$OUTPUT_HEADERS/generated/uapi"
|
|
CFLAGS="$CFLAGS -I$SOURCE_ARCH_HEADERS"
|
|
CFLAGS="$CFLAGS -I$SOURCE_ARCH_HEADERS/uapi"
|
|
CFLAGS="$CFLAGS -I$OUTPUT_ARCH_HEADERS/generated"
|
|
CFLAGS="$CFLAGS -I$OUTPUT_ARCH_HEADERS/generated/uapi"
|
|
|
|
if [ -n "$BUILD_PARAMS" ]; then
|
|
CFLAGS="$CFLAGS -D$BUILD_PARAMS"
|
|
fi
|
|
|
|
# Check if gcc supports asm goto and set CC_HAVE_ASM_GOTO if it does.
|
|
# Older kernels perform this check and set this flag in Kbuild, and since
|
|
# conftest.sh runs outside of Kbuild it ends up building without this flag.
|
|
# Starting with commit e9666d10a5677a494260d60d1fa0b73cc7646eb3 this test
|
|
# is done within Kconfig, and the preprocessor flag is no longer needed.
|
|
|
|
GCC_GOTO_SH="$SOURCES/build/gcc-goto.sh"
|
|
|
|
if [ -f "$GCC_GOTO_SH" ]; then
|
|
# Newer versions of gcc-goto.sh don't print anything on success, but
|
|
# this is okay, since it's no longer necessary to set CC_HAVE_ASM_GOTO
|
|
# based on the output of those versions of gcc-goto.sh.
|
|
if [ `/bin/sh "$GCC_GOTO_SH" "$CC"` = "y" ]; then
|
|
CFLAGS="$CFLAGS -DCC_HAVE_ASM_GOTO"
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# If CONFIG_HAVE_FENTRY is enabled and gcc supports -mfentry flags then set
|
|
# CC_USING_FENTRY and add -mfentry into cflags.
|
|
#
|
|
# linux/ftrace.h file indirectly gets included into the conftest source and
|
|
# fails to get compiled, because conftest.sh runs outside of Kbuild it ends
|
|
# up building without -mfentry and CC_USING_FENTRY flags.
|
|
#
|
|
grep "CONFIG_HAVE_FENTRY \+1" $AUTOCONF_FILE > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
echo "" > conftest$$.c
|
|
|
|
$CC -mfentry -c -x c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
|
|
CFLAGS="$CFLAGS -mfentry -DCC_USING_FENTRY"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
CONFTEST_PREAMBLE="#include \"conftest/headers.h\"
|
|
#include <linux/kconfig.h>
|
|
#if defined(CONFIG_XEN) && \
|
|
defined(CONFIG_XEN_INTERFACE_VERSION) && !defined(__XEN_INTERFACE_VERSION__)
|
|
#define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
|
|
#endif
|
|
#if defined(CONFIG_KASAN) && defined(CONFIG_ARM64)
|
|
#if defined(CONFIG_KASAN_SW_TAGS)
|
|
#define KASAN_SHADOW_SCALE_SHIFT 4
|
|
#else
|
|
#define KASAN_SHADOW_SCALE_SHIFT 3
|
|
#endif
|
|
#endif"
|
|
|
|
# FreeBSD's Linux compatibility does not have autoconf.h defined
|
|
# anywhere yet, only add this part on Linux
|
|
if [ ${OS_FREEBSD} -ne 1 ] ; then
|
|
CONFTEST_PREAMBLE="${CONFTEST_PREAMBLE}
|
|
#if defined(NV_GENERATED_AUTOCONF_H_PRESENT)
|
|
#include <generated/autoconf.h>
|
|
#else
|
|
#include <linux/autoconf.h>
|
|
#endif"
|
|
fi
|
|
|
|
test_configuration_option() {
|
|
#
|
|
# Check to see if the given configuration option is defined
|
|
#
|
|
|
|
get_configuration_option $1 >/dev/null 2>&1
|
|
|
|
return $?
|
|
|
|
}
|
|
|
|
set_configuration() {
|
|
#
|
|
# Set a specific configuration option. This function is called to always
|
|
# enable a configuration, in order to verify whether the test code for that
|
|
# configuration is no longer required and the corresponding
|
|
# conditionally-compiled code in the driver can be removed.
|
|
#
|
|
DEF="$1"
|
|
|
|
if [ "$3" = "" ]
|
|
then
|
|
VAL=""
|
|
CAT="$2"
|
|
else
|
|
VAL="$2"
|
|
CAT="$3"
|
|
fi
|
|
|
|
echo "#define ${DEF} ${VAL}" | append_conftest "${CAT}"
|
|
}
|
|
|
|
unset_configuration() {
|
|
#
|
|
# Un-set a specific configuration option. This function is called to
|
|
# always disable a configuration, in order to verify whether the test
|
|
# code for that configuration is no longer required and the corresponding
|
|
# conditionally-compiled code in the driver can be removed.
|
|
#
|
|
DEF="$1"
|
|
CAT="$2"
|
|
|
|
echo "#undef ${DEF}" | append_conftest "${CAT}"
|
|
}
|
|
|
|
compile_check_conftest() {
|
|
#
|
|
# Compile the current conftest C file and check+output the result
|
|
#
|
|
CODE="$1"
|
|
DEF="$2"
|
|
VAL="$3"
|
|
CAT="$4"
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
$CODE" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
if [ "${CAT}" = "functions" ]; then
|
|
#
|
|
# The logic for "functions" compilation tests is inverted compared to
|
|
# other compilation steps: if the function is present, the code
|
|
# snippet will fail to compile because the function call won't match
|
|
# the prototype. If the function is not present, the code snippet
|
|
# will produce an object file with the function as an unresolved
|
|
# symbol.
|
|
#
|
|
echo "#undef ${DEF}" | append_conftest "${CAT}"
|
|
else
|
|
echo "#define ${DEF} ${VAL}" | append_conftest "${CAT}"
|
|
fi
|
|
return
|
|
else
|
|
if [ "${CAT}" = "functions" ]; then
|
|
echo "#define ${DEF} ${VAL}" | append_conftest "${CAT}"
|
|
else
|
|
echo "#undef ${DEF}" | append_conftest "${CAT}"
|
|
fi
|
|
return
|
|
fi
|
|
}
|
|
|
|
check_symbol_exists() {
|
|
# Check that the given symbol is available
|
|
|
|
SYMBOL="$1"
|
|
TAB=' '
|
|
|
|
if [ ${OS_FREEBSD} -ne 1 ] ; then
|
|
# Linux:
|
|
# ------
|
|
#
|
|
# Check Module.symvers to see whether the given symbol is present.
|
|
#
|
|
if grep -e "${TAB}${SYMBOL}${TAB}.*${TAB}EXPORT_SYMBOL.*\$" \
|
|
${MODULE_SYMVERS_PATHS} >/dev/null 2>&1; then
|
|
return 0
|
|
fi
|
|
else
|
|
# FreeBSD:
|
|
# ------
|
|
#
|
|
# Check if any of the linuxkpi or drm kernel module files contain
|
|
# references to this symbol.
|
|
|
|
# Get the /boot/kernel/ and /boot/modules paths, convert the list to a
|
|
# space separated list instead of semicolon separated so we can iterate
|
|
# over it.
|
|
if [ -z "${CONFTEST_BSD_KMODPATHS}" ] ; then
|
|
KMODPATHS=`sysctl -n kern.module_path | sed -e "s/;/ /g"`
|
|
else
|
|
KMODPATHS="${CONFTEST_BSD_KMODPATHS}"
|
|
fi
|
|
|
|
for KMOD in linuxkpi.ko linuxkpi_gplv2.ko drm.ko dmabuf.ko ; do
|
|
for KMODPATH in $KMODPATHS; do
|
|
if [ -e "$KMODPATH/$KMOD" ] ; then
|
|
if nm "$KMODPATH/$KMOD" | grep "$SYMBOL" >/dev/null 2>&1 ; then
|
|
return 0
|
|
fi
|
|
fi
|
|
done
|
|
done
|
|
fi
|
|
|
|
return 1
|
|
}
|
|
|
|
export_symbol_present_conftest() {
|
|
|
|
SYMBOL="$1"
|
|
|
|
if check_symbol_exists $SYMBOL; then
|
|
echo "#define NV_IS_EXPORT_SYMBOL_PRESENT_$SYMBOL 1" |
|
|
append_conftest "symbols"
|
|
else
|
|
# May be a false negative if Module.symvers is absent or incomplete,
|
|
# or if the Module.symvers format changes.
|
|
echo "#define NV_IS_EXPORT_SYMBOL_PRESENT_$SYMBOL 0" |
|
|
append_conftest "symbols"
|
|
fi
|
|
}
|
|
|
|
export_symbol_gpl_conftest() {
|
|
#
|
|
# Check Module.symvers to see whether the given symbol is present and its
|
|
# export type is GPL-only (including deprecated GPL-only symbols).
|
|
#
|
|
|
|
SYMBOL="$1"
|
|
TAB=' '
|
|
|
|
if grep -e "${TAB}${SYMBOL}${TAB}.*${TAB}EXPORT_\(UNUSED_\)*SYMBOL_GPL\s*\$" \
|
|
${MODULE_SYMVERS_PATHS} >/dev/null 2>&1; then
|
|
echo "#define NV_IS_EXPORT_SYMBOL_GPL_$SYMBOL 1" |
|
|
append_conftest "symbols"
|
|
else
|
|
# May be a false negative if Module.symvers is absent or incomplete,
|
|
# or if the Module.symvers format changes.
|
|
echo "#define NV_IS_EXPORT_SYMBOL_GPL_$SYMBOL 0" |
|
|
append_conftest "symbols"
|
|
fi
|
|
}
|
|
|
|
get_configuration_option() {
|
|
#
|
|
# Print the value of given configuration option, if defined
|
|
#
|
|
RET=1
|
|
OPTION=$1
|
|
|
|
OLD_FILE="linux/autoconf.h"
|
|
NEW_FILE="generated/autoconf.h"
|
|
FILE=""
|
|
|
|
if [ -f $HEADERS/$NEW_FILE -o -f $OUTPUT/include/$NEW_FILE ]; then
|
|
FILE=$NEW_FILE
|
|
elif [ -f $HEADERS/$OLD_FILE -o -f $OUTPUT/include/$OLD_FILE ]; then
|
|
FILE=$OLD_FILE
|
|
fi
|
|
|
|
if [ -n "$FILE" ]; then
|
|
#
|
|
# We are looking at a configured source tree; verify
|
|
# that its configuration includes the given option
|
|
# via a compile check, and print the option's value.
|
|
#
|
|
|
|
if [ -f $HEADERS/$FILE ]; then
|
|
INCLUDE_DIRECTORY=$HEADERS
|
|
elif [ -f $OUTPUT/include/$FILE ]; then
|
|
INCLUDE_DIRECTORY=$OUTPUT/include
|
|
else
|
|
return 1
|
|
fi
|
|
|
|
echo "#include <$FILE>
|
|
#ifndef $OPTION
|
|
#error $OPTION not defined!
|
|
#endif
|
|
|
|
$OPTION
|
|
" > conftest$$.c
|
|
|
|
$CC -E -P -I$INCLUDE_DIRECTORY -o conftest$$ conftest$$.c > /dev/null 2>&1
|
|
|
|
if [ -e conftest$$ ]; then
|
|
tr -d '\r\n\t ' < conftest$$
|
|
RET=$?
|
|
fi
|
|
|
|
rm -f conftest$$.c conftest$$
|
|
else
|
|
CONFIG=$OUTPUT/.config
|
|
if [ -f $CONFIG ] && grep "^$OPTION=" $CONFIG; then
|
|
grep "^$OPTION=" $CONFIG | cut -f 2- -d "="
|
|
RET=$?
|
|
fi
|
|
fi
|
|
|
|
return $RET
|
|
|
|
}
|
|
|
|
check_for_ib_peer_memory_symbols() {
|
|
kernel_dir="$1"
|
|
module_symvers="${kernel_dir}/Module.symvers"
|
|
|
|
sym_ib_register="ib_register_peer_memory_client"
|
|
sym_ib_unregister="ib_unregister_peer_memory_client"
|
|
tab=' '
|
|
|
|
# Return 0 for true(no errors), 1 for false
|
|
if [ ! -f "${module_symvers}" ]; then
|
|
return 1
|
|
fi
|
|
|
|
if grep -e "${tab}${sym_ib_register}${tab}.*${tab}EXPORT_SYMBOL.*\$" \
|
|
"${module_symvers}" > /dev/null 2>&1 &&
|
|
grep -e "${tab}${sym_ib_unregister}${tab}.*${tab}EXPORT_SYMBOL.*\$" \
|
|
"${module_symvers}" > /dev/null 2>&1; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
compile_test() {
|
|
case "$1" in
|
|
set_memory_uc)
|
|
#
|
|
# Determine if the set_memory_uc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#if defined(NV_ASM_SET_MEMORY_H_PRESENT)
|
|
#if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT)
|
|
#include <asm/pgtable_types.h>
|
|
#endif
|
|
#include <asm/page.h>
|
|
#include <asm/set_memory.h>
|
|
#else
|
|
#include <asm/cacheflush.h>
|
|
#endif
|
|
void conftest_set_memory_uc(void) {
|
|
set_memory_uc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_MEMORY_UC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
set_memory_array_uc)
|
|
#
|
|
# Determine if the set_memory_array_uc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#if defined(NV_ASM_SET_MEMORY_H_PRESENT)
|
|
#if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT)
|
|
#include <asm/pgtable_types.h>
|
|
#endif
|
|
#include <asm/page.h>
|
|
#include <asm/set_memory.h>
|
|
#else
|
|
#include <asm/cacheflush.h>
|
|
#endif
|
|
void conftest_set_memory_array_uc(void) {
|
|
set_memory_array_uc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_MEMORY_ARRAY_UC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
sysfs_slab_unlink)
|
|
#
|
|
# Determine if the sysfs_slab_unlink() function is present.
|
|
#
|
|
# This test is useful to check for the presence a fix for the deferred
|
|
# kmem_cache destroy feature (see nvbug: 2543505).
|
|
#
|
|
# Added by commit d50d82faa0c9 ("slub: fix failure when we delete and
|
|
# create a slab cache") in 4.18 (2018-06-27).
|
|
#
|
|
CODE="
|
|
#include <linux/slab.h>
|
|
void conftest_sysfs_slab_unlink(void) {
|
|
sysfs_slab_unlink();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SYSFS_SLAB_UNLINK_PRESENT" "" "functions"
|
|
;;
|
|
|
|
list_is_first)
|
|
#
|
|
# Determine if the list_is_first() function is present.
|
|
#
|
|
# Added by commit 70b44595eafe ("mm, compaction: use free lists
|
|
# to quickly locate a migration source") in 5.1 (2019-03-05)
|
|
#
|
|
CODE="
|
|
#include <linux/list.h>
|
|
void conftest_list_is_first(void) {
|
|
list_is_first();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_LIST_IS_FIRST_PRESENT" "" "functions"
|
|
;;
|
|
|
|
set_pages_uc)
|
|
#
|
|
# Determine if the set_pages_uc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#if defined(NV_ASM_SET_MEMORY_H_PRESENT)
|
|
#if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT)
|
|
#include <asm/pgtable_types.h>
|
|
#endif
|
|
#include <asm/page.h>
|
|
#include <asm/set_memory.h>
|
|
#else
|
|
#include <asm/cacheflush.h>
|
|
#endif
|
|
void conftest_set_pages_uc(void) {
|
|
set_pages_uc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_PAGES_UC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
set_pages_array_uc)
|
|
#
|
|
# Determine if the set_pages_array_uc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
# Added by commit 0f3507555f6f ("x86, CPA: Add set_pages_arrayuc
|
|
# and set_pages_array_wb") in v2.6.30.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#if defined(NV_ASM_SET_MEMORY_H_PRESENT)
|
|
#if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT)
|
|
#include <asm/pgtable_types.h>
|
|
#endif
|
|
#include <asm/page.h>
|
|
#include <asm/set_memory.h>
|
|
#else
|
|
#include <asm/cacheflush.h>
|
|
#endif
|
|
void conftest_set_pages_array_uc(void) {
|
|
set_pages_array_uc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_PAGES_ARRAY_UC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
flush_cache_all)
|
|
#
|
|
# Determine if flush_cache_all() function is present
|
|
#
|
|
# flush_cache_all() was removed by commit id
|
|
# 68234df4ea79 ("arm64: kill flush_cache_all()") in 4.2 (2015-04-20)
|
|
# for aarch64
|
|
#
|
|
CODE="
|
|
#include <asm/cacheflush.h>
|
|
int conftest_flush_cache_all(void) {
|
|
return flush_cache_all();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_FLUSH_CACHE_ALL_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioremap_cache)
|
|
#
|
|
# Determine if the ioremap_cache() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <asm/io.h>
|
|
void conftest_ioremap_cache(void) {
|
|
ioremap_cache();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOREMAP_CACHE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioremap_wc)
|
|
#
|
|
# Determine if the ioremap_wc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <asm/io.h>
|
|
void conftest_ioremap_wc(void) {
|
|
ioremap_wc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOREMAP_WC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioremap_driver_hardened)
|
|
#
|
|
# Determine if the ioremap_driver_hardened() function is present.
|
|
# It does not exist on all architectures.
|
|
# TODO: Update the commit ID once the API is upstreamed.
|
|
#
|
|
CODE="
|
|
#include <asm/io.h>
|
|
void conftest_ioremap_driver_hardened(void) {
|
|
ioremap_driver_hardened();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOREMAP_DRIVER_HARDENED_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioremap_driver_hardened_wc)
|
|
#
|
|
# Determine if the ioremap_driver_hardened_wc() function is present.
|
|
# It does not exist on all architectures.
|
|
# TODO: Update the commit ID once the API is upstreamed.
|
|
#
|
|
CODE="
|
|
#include <asm/io.h>
|
|
void conftest_ioremap_driver_hardened_wc(void) {
|
|
ioremap_driver_hardened_wc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOREMAP_DRIVER_HARDENED_WC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioremap_cache_shared)
|
|
#
|
|
# Determine if the ioremap_cache_shared() function is present.
|
|
# It does not exist on all architectures.
|
|
# TODO: Update the commit ID once the API is upstreamed.
|
|
#
|
|
CODE="
|
|
#include <asm/io.h>
|
|
void conftest_ioremap_cache_shared(void) {
|
|
ioremap_cache_shared();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOREMAP_CACHE_SHARED_PRESENT" "" "functions"
|
|
;;
|
|
dom0_kernel_present)
|
|
# Add config parameter if running on DOM0.
|
|
if [ -n "$VGX_BUILD" ]; then
|
|
echo "#define NV_DOM0_KERNEL_PRESENT" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_DOM0_KERNEL_PRESENT" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
nvidia_vgpu_kvm_build)
|
|
# Add config parameter if running on KVM host.
|
|
if [ -n "$VGX_KVM_BUILD" ]; then
|
|
echo "#define NV_VGPU_KVM_BUILD" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_VGPU_KVM_BUILD" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
device_vm_build)
|
|
# Add config parameter if running on Device VM.
|
|
if [ -n "$VGX_DEVICE_VM_BUILD" ]; then
|
|
echo "#define NV_DEVICE_VM_BUILD" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_DEVICE_VM_BUILD" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
vfio_info_add_capability_has_cap_type_id_arg)
|
|
#
|
|
# Check if vfio_info_add_capability() has cap_type_id parameter.
|
|
#
|
|
# Removed by commit dda01f787df9 ("vfio: Simplify capability
|
|
# helper") in v4.16 (2017-12-12)
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
int vfio_info_add_capability(struct vfio_info_cap *caps,
|
|
int cap_type_id,
|
|
void *cap_type) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_INFO_ADD_CAPABILITY_HAS_CAP_TYPE_ID_ARGS" "" "types"
|
|
;;
|
|
|
|
nvidia_grid_build)
|
|
if [ -n "$GRID_BUILD" ]; then
|
|
echo "#define NV_GRID_BUILD" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_GRID_BUILD" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
nvidia_grid_csp_build)
|
|
if [ -n "$GRID_BUILD_CSP" ]; then
|
|
echo "#define NV_GRID_BUILD_CSP $GRID_BUILD_CSP" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_GRID_BUILD_CSP" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
mdev_uuid)
|
|
#
|
|
# Determine if mdev_uuid() function is present or not
|
|
#
|
|
# Added by commit 99e3123e3d72 ("vfio-mdev: Make mdev_device
|
|
# private and abstract interfaces") in v4.10
|
|
#
|
|
# Removed by commit 2a3d15f270e ("vfio/mdev: Add missing typesafety
|
|
# around mdev_device") in v5.13
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_uuid() {
|
|
mdev_uuid();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_UUID_PRESENT" "" "functions"
|
|
|
|
#
|
|
# Determine if mdev_uuid() returns 'const guid_t *'.
|
|
#
|
|
# mdev_uuid() function prototype updated to return 'const guid_t *'
|
|
# by commit 278bca7f318e ("vfio-mdev: Switch to use new generic UUID
|
|
# API") in v5.1 (2019-01-10).
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
const guid_t *conftest_mdev_uuid_return_guid_ptr(struct mdev_device *mdev) {
|
|
return mdev_uuid(mdev);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_UUID_RETURN_GUID_PTR" "" "types"
|
|
;;
|
|
|
|
mdev_get_type_group_id)
|
|
#
|
|
# Determine if mdev_get_type_group_id() function is present or not
|
|
#
|
|
# Added by commit 15fcc44be0c7a ("vfio/mdev: Add
|
|
# mdev/mtype_get_type_group_id()") in v5.13
|
|
#
|
|
# Removed by commit da44c340c4f ("vfio/mdev: simplify mdev_type
|
|
# handling") in v6.1
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_get_type_group_id() {
|
|
mdev_get_type_group_id();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_GET_TYPE_GROUP_ID_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vfio_device_mig_state)
|
|
#
|
|
# Determine if vfio_device_mig_state enum is present or not
|
|
#
|
|
# Added by commit 115dcec65f61d ("vfio: Define device
|
|
# migration protocol v2") in v5.18
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
enum vfio_device_mig_state device_state;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_MIG_STATE_PRESENT" "" "types"
|
|
;;
|
|
|
|
vfio_migration_ops)
|
|
#
|
|
# Determine if vfio_migration_ops struct is present or not
|
|
#
|
|
# Added by commit 6e97eba8ad874 ("vfio: Split migration ops
|
|
# from main device ops") in v6.0
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
struct vfio_migration_ops mig_ops;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_MIGRATION_OPS_PRESENT" "" "types"
|
|
;;
|
|
|
|
vfio_precopy_info)
|
|
#
|
|
# Determine if vfio_precopy_info struct is present or not
|
|
#
|
|
# Added by commit 4db52602a6074 ("vfio: Extend the device migration
|
|
# protocol with PRE_COPY" in v6.2
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
struct vfio_precopy_info precopy_info;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_PRECOPY_INFO_PRESENT" "" "types"
|
|
;;
|
|
|
|
vfio_log_ops)
|
|
#
|
|
# Determine if vfio_log_ops struct is present or not
|
|
#
|
|
# Added by commit 80c4b92a2dc48 ("vfio: Introduce the DMA
|
|
# logging feature support") in v6.1
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
struct vfio_log_ops log_ops;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_LOG_OPS_PRESENT" "" "types"
|
|
;;
|
|
|
|
vfio_migration_ops_has_migration_get_data_size)
|
|
#
|
|
# Determine if vfio_migration_ops struct has .migration_get_data_size field.
|
|
#
|
|
# Added by commit in 4e016f969529f ("vfio: Add an option to get migration
|
|
# data size") in v6.2 kernel.
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
int conftest_mdev_vfio_migration_ops_has_migration_get_data_size(void) {
|
|
return offsetof(struct vfio_migration_ops, migration_get_data_size);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_MIGRATION_OPS_HAS_MIGRATION_GET_DATA_SIZE" "" "types"
|
|
;;
|
|
|
|
mdev_parent_ops)
|
|
#
|
|
# Determine if the struct mdev_parent_ops type is present.
|
|
#
|
|
# Added by commit 42930553a7c1 ("vfio-mdev: de-polute the
|
|
# namespace, rename parent_device & parent_ops") in v4.10
|
|
#
|
|
# Removed by commit 6b42f491e17 ("vfio/mdev: Remove
|
|
# mdev_parent_ops") in v5.19
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
struct mdev_parent_ops conftest_mdev_parent_ops;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_PARENT_OPS_STRUCT_PRESENT" "" "types"
|
|
;;
|
|
|
|
mdev_parent)
|
|
#
|
|
# Determine if the struct mdev_parent type is present.
|
|
#
|
|
# Added by commit 89345d5177aa ("vfio/mdev: embedd struct mdev_parent in
|
|
# the parent data structure") in v6.1
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
struct mdev_parent conftest_mdev_parent;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_PARENT_STRUCT_PRESENT" "" "types"
|
|
;;
|
|
|
|
mdev_parent_dev)
|
|
#
|
|
# Determine if mdev_parent_dev() function is present or not
|
|
#
|
|
# Added by commit 9372e6feaafb ("vfio-mdev: Make mdev_parent
|
|
# private") in v4.10
|
|
#
|
|
# Removed by commit 062e720cd20 ("vfio/mdev: remove
|
|
# mdev_parent_dev") in v6.1
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_parent_dev() {
|
|
mdev_parent_dev();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_PARENT_DEV_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vfio_free_device)
|
|
#
|
|
# Determine if vfio_free_device() function is present or not
|
|
#
|
|
# Removed by commit 913447d06f03 ("vfio: Remove vfio_free_device")
|
|
# in v6.2
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
void conftest_vfio_free_device() {
|
|
vfio_free_device();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_FREE_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mdev_from_dev)
|
|
#
|
|
# Determine if mdev_from_dev() function is present or not.
|
|
#
|
|
# Added by commit 99e3123e3d72 ("vfio-mdev: Make mdev_device
|
|
# private and abstract interfaces") in v4.10 (2016-12-30)
|
|
#
|
|
# Removed by commit cbf3bb28aae ("vfio/mdev: remove mdev_from_dev")
|
|
# in v6.1
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_from_dev() {
|
|
mdev_from_dev();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_FROM_DEV_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mdev_set_iommu_device)
|
|
#
|
|
# Determine if mdev_set_iommu_device() function is present or not.
|
|
#
|
|
# Added by commit 8ac13175cbe9 ("vfio/mdev: Add iommu related member
|
|
# in mdev_device) in v5.1 (2019-04-12)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_set_iommu_device() {
|
|
mdev_set_iommu_device();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_SET_IOMMU_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mdev_parent_ops_has_open_device)
|
|
# Determine if 'mdev_parent_ops' structure has a 'open_device'
|
|
# field.
|
|
#
|
|
# Added by commit 2fd585f4ed9d ("vfio: Provide better generic support
|
|
# for open/release vfio_device_ops") in 5.15 (2021-08-05)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
int conftest_mdev_parent_ops_has_open_device(void) {
|
|
return offsetof(struct mdev_parent_ops, open_device);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_PARENT_OPS_HAS_OPEN_DEVICE" "" "types"
|
|
;;
|
|
|
|
mdev_parent_ops_has_device_driver)
|
|
#
|
|
# Determine if 'mdev_parent_ops' structure has 'device_driver' field.
|
|
#
|
|
# Added by commit 88a21f265ce5 ("vfio/mdev: Allow the mdev_parent_ops
|
|
# to specify the device driver to bind) in v5.14 (2021-06-17)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
int conftest_mdev_parent_ops_has_device_driver(void) {
|
|
return offsetof(struct mdev_parent_ops, device_driver);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_PARENT_OPS_HAS_DEVICE_DRIVER" "" "types"
|
|
;;
|
|
|
|
mdev_driver_has_supported_type_groups)
|
|
#
|
|
# Determine if 'mdev_driver' structure has 'supported_type_groups' field.
|
|
#
|
|
# Added by commit 6b42f491e17c ("vfio/mdev: Remove mdev_parent_ops)
|
|
# in v5.19 (2022-04-11)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
int conftest_mdev_driver_has_supported_type_groups(void) {
|
|
return offsetof(struct mdev_driver, supported_type_groups);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_DRIVER_HAS_SUPPORTED_TYPE_GROUPS" "" "types"
|
|
;;
|
|
|
|
vfio_device_ops_has_dma_unmap)
|
|
#
|
|
# Determine if 'vfio_device_ops' struct has 'dma_unmap' field.
|
|
#
|
|
# Added by commit ce4b4657ff18 ("vfio: Replace the DMA unmapping
|
|
# notifier with a callback") in v6.0
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
int conftest_vfio_device_ops_has_dma_unmap(void) {
|
|
return offsetof(struct vfio_device_ops, dma_unmap);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_OPS_HAS_DMA_UNMAP" "" "types"
|
|
;;
|
|
|
|
vfio_device_ops_has_bind_iommufd)
|
|
#
|
|
# Determine if 'vfio_device_ops' struct has 'bind_iommufd' field.
|
|
#
|
|
# Added by commit a4d1f91db5021 ("vfio-iommufd: Support iommufd
|
|
# for physical VFIO devices") in v6.2
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
int conftest_vfio_device_ops_has_bind_iommufd(void) {
|
|
return offsetof(struct vfio_device_ops, bind_iommufd);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_OPS_HAS_BIND_IOMMUFD" "" "types"
|
|
;;
|
|
|
|
vfio_device_ops_has_detach_ioas)
|
|
#
|
|
# Determine if 'vfio_device_ops' struct has 'detach_ioas' field.
|
|
#
|
|
# Added by commit 9048c7341c4d ("vfio-iommufd: Add detach_ioas
|
|
# support for physical VFIO devices") in v6.6
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
int conftest_vfio_device_ops_has_detach_ioas(void) {
|
|
return offsetof(struct vfio_device_ops, detach_ioas);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_OPS_HAS_DETACH_IOAS" "" "types"
|
|
;;
|
|
|
|
pfn_address_space)
|
|
#
|
|
# Determine if 'struct pfn_address_space' structure is present or not.
|
|
#
|
|
CODE="
|
|
#include <linux/memory-failure.h>
|
|
void conftest_pfn_address_space() {
|
|
struct pfn_address_space pfn_address_space;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PFN_ADDRESS_SPACE_STRUCT_PRESENT" "" "types"
|
|
;;
|
|
|
|
egm_module_helper_api_present)
|
|
#
|
|
# Determine if egm management api are present or not.
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/nvgrace-egm.h>
|
|
void conftest_egm_module_helper_api_present() {
|
|
struct pci_dev *pdev;
|
|
register_egm_node(pdev);
|
|
unregister_egm_node(0);
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_EGM_MODULE_HELPER_API_PRESENT" "" "types"
|
|
;;
|
|
|
|
egm_bad_pages_handling_support)
|
|
#
|
|
# Determine if egm_bad_pages_list is present or not.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#include <linux/egm.h>
|
|
void conftest_egm_bad_pages_handle() {
|
|
int ioctl = EGM_BAD_PAGES_LIST;
|
|
struct egm_bad_pages_list list;
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_EGM_BAD_PAGES_HANDLING_SUPPORT" "" "types"
|
|
;;
|
|
|
|
class_create_has_no_owner_arg)
|
|
#
|
|
# Determine if the class_create API with the new signature
|
|
# is present or not.
|
|
#
|
|
# Added by commit 1aaba11da9aa ("driver core: class: remove
|
|
# module * from class_create()") in v6.4 (2023-03-13)
|
|
#
|
|
CODE="
|
|
#include <linux/device/class.h>
|
|
void conftest_class_create() {
|
|
struct class *class;
|
|
class = class_create(\"test\");
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_CLASS_CREATE_HAS_NO_OWNER_ARG" "" "types"
|
|
;;
|
|
|
|
class_devnode_has_const_arg)
|
|
#
|
|
# Determine if the class.devnode is present with the new signature.
|
|
#
|
|
# Added by commit ff62b8e6588f ("driver core: make struct
|
|
# class.devnode() take a const *") in v6.2 (2022-11-23)
|
|
#
|
|
CODE="
|
|
#include <linux/device.h>
|
|
static char *conftest_devnode(const struct device *device, umode_t *mode) {
|
|
return NULL;
|
|
}
|
|
|
|
void conftest_class_devnode() {
|
|
struct class class;
|
|
class.devnode = conftest_devnode;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_CLASS_DEVNODE_HAS_CONST_ARG" "" "types"
|
|
;;
|
|
|
|
vfio_device_gfx_plane_info)
|
|
#
|
|
# determine if the 'struct vfio_device_gfx_plane_info' type is present.
|
|
#
|
|
# Added by commit e20eaa2382e7 ("vfio: ABI for mdev display
|
|
# dma-buf operation") in v4.16 (2017-11-23)
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
struct vfio_device_gfx_plane_info info;"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_GFX_PLANE_INFO_PRESENT" "" "types"
|
|
;;
|
|
|
|
vfio_uninit_group_dev)
|
|
#
|
|
# Determine if vfio_uninit_group_dev() function is present or not.
|
|
#
|
|
# Added by commit ae03c3771b8c (vfio: Introduce a vfio_uninit_group_dev()
|
|
# API call) in v5.15
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
void conftest_vfio_uninit_group_dev() {
|
|
vfio_uninit_group_dev();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_UNINIT_GROUP_DEV_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vfio_pci_core_available)
|
|
# Determine if VFIO_PCI_CORE is available
|
|
#
|
|
# Added by commit 7fa005caa35e ("vfio/pci: Introduce
|
|
# vfio_pci_core.ko") in v5.16 (2021-08-26)
|
|
#
|
|
|
|
CODE="
|
|
#if defined(NV_LINUX_VFIO_PCI_CORE_H_PRESENT)
|
|
#include <linux/vfio_pci_core.h>
|
|
#endif
|
|
|
|
#if !defined(CONFIG_VFIO_PCI_CORE) && !defined(CONFIG_VFIO_PCI_CORE_MODULE)
|
|
#error VFIO_PCI_CORE not enabled
|
|
#endif
|
|
void conftest_vfio_pci_core_available(void) {
|
|
struct vfio_pci_core_device dev;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_PCI_CORE_PRESENT" "" "generic"
|
|
;;
|
|
|
|
vfio_alloc_device)
|
|
#
|
|
# Determine if vfio_alloc_device() function is present or not.
|
|
#
|
|
# Added by commit cb9ff3f3b84c (vfio: Add helpers for unifying vfio_device
|
|
# life cycle) in v6.1
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
void conftest_vfio_alloc_device() {
|
|
vfio_alloc_device();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_ALLOC_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vfio_register_emulated_iommu_dev)
|
|
#
|
|
# Determine if vfio_register_emulated_iommu_dev() function is present or not.
|
|
#
|
|
# Added by commit c68ea0d00ad8 (vfio: simplify iommu group allocation
|
|
# for mediated devices) in v5.16
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
void conftest_vfio_register_emulated_iommu_dev() {
|
|
vfio_register_emulated_iommu_dev();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_REGISTER_EMULATED_IOMMU_DEV_PRESENT" "" "functions"
|
|
;;
|
|
|
|
bus_type_has_iommu_ops)
|
|
#
|
|
# Determine if 'bus_type' structure has a 'iommu_ops' field.
|
|
#
|
|
# This field was removed by commit 17de3f5fdd35 (iommu: Retire bus ops)
|
|
# in v6.8
|
|
#
|
|
CODE="
|
|
#include <linux/device.h>
|
|
|
|
int conftest_bus_type_has_iommu_ops(void) {
|
|
return offsetof(struct bus_type, iommu_ops);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_BUS_TYPE_HAS_IOMMU_OPS" "" "types"
|
|
;;
|
|
|
|
eventfd_signal_has_counter_arg)
|
|
#
|
|
# Determine if eventfd_signal() function has an additional 'counter' argument.
|
|
#
|
|
# This argument was removed by commit 3652117f8548 (eventfd: simplify
|
|
# eventfd_signal()) in v6.8
|
|
#
|
|
CODE="
|
|
#include <linux/eventfd.h>
|
|
|
|
void conftest_eventfd_signal_has_counter_arg(void) {
|
|
struct eventfd_ctx *ctx;
|
|
|
|
eventfd_signal(ctx, 1);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_EVENTFD_SIGNAL_HAS_COUNTER_ARG" "" "types"
|
|
;;
|
|
|
|
drm_available)
|
|
# Determine if the DRM subsystem is usable
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
#if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE) && !defined(__FreeBSD__)
|
|
#error DRM not enabled
|
|
#endif
|
|
|
|
void conftest_drm_available(void) {
|
|
struct drm_driver drv;
|
|
|
|
/* 2013-10-02 1bb72532ac260a2d3982b40bdd4c936d779d0d16 */
|
|
(void)drm_dev_alloc;
|
|
|
|
/* 2013-10-02 c22f0ace1926da399d9a16dfaf09174c1b03594c */
|
|
(void)drm_dev_register;
|
|
|
|
/* 2013-10-02 c3a49737ef7db0bdd4fcf6cf0b7140a883e32b2a */
|
|
(void)drm_dev_unregister;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_AVAILABLE" "" "generic"
|
|
;;
|
|
|
|
drm_sysfs_connector_property_event)
|
|
#
|
|
# Determine if drm_sysfs_connector_property_event() is present.
|
|
#
|
|
# Commit 0cf8d292ba5e ("drm/sysfs: rename drm_sysfs_connector_status_event()")
|
|
# renamed drm_sysfs_connector_status_event() to
|
|
# drm_sysfs_connector_property_event() in Linux v6.5.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_sysfs.h>
|
|
void conftest_drm_sysfs_connector_property_event(void) {
|
|
drm_sysfs_connector_property_event();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_DRM_SYSFS_CONNECTOR_PROPERTY_EVENT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_sysfs_connector_status_event)
|
|
#
|
|
# Determine if drm_sysfs_connector_status_event() is present.
|
|
#
|
|
#
|
|
CODE="
|
|
#include <drm/drm_sysfs.h>
|
|
void conftest_drm_sysfs_connector_status_event(void) {
|
|
drm_sysfs_connector_status_event();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_DRM_SYSFS_CONNECTOR_STATUS_EVENT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pde_data)
|
|
#
|
|
# Determine if the pde_data() function is present.
|
|
#
|
|
# PDE_DATA() was replaced with pde_data() by commit 359745d78351
|
|
# ("proc: remove PDE_DATA() completely") in v5.17.
|
|
#
|
|
CODE="
|
|
#include <linux/proc_fs.h>
|
|
void conftest_pde_data(void) {
|
|
pde_data();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PDE_DATA_LOWER_CASE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
xen_ioemu_inject_msi)
|
|
# Determine if the xen_ioemu_inject_msi() function is present.
|
|
CODE="
|
|
#if defined(NV_XEN_IOEMU_H_PRESENT)
|
|
#include <linux/kernel.h>
|
|
#include <xen/interface/xen.h>
|
|
#include <xen/hvm.h>
|
|
#include <xen/ioemu.h>
|
|
#endif
|
|
void conftest_xen_ioemu_inject_msi(void) {
|
|
xen_ioemu_inject_msi();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_XEN_IOEMU_INJECT_MSI" "" "functions"
|
|
;;
|
|
|
|
phys_to_dma)
|
|
#
|
|
# Determine if the phys_to_dma function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_phys_to_dma(void) {
|
|
phys_to_dma();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PHYS_TO_DMA_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_attr_macros)
|
|
#
|
|
# Determine if the NV_DMA_ATTR_SKIP_CPU_SYNC_PRESENT macro present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_attr_macros(void) {
|
|
int ret;
|
|
ret = DMA_ATTR_SKIP_CPU_SYNC();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_DMA_ATTR_SKIP_CPU_SYNC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_map_page_attrs)
|
|
#
|
|
# Determine if the dma_map_page_attrs function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_map_page_attrs(void) {
|
|
dma_map_page_attrs();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_MAP_PAGE_ATTRS_PRESENT" "" "functions"
|
|
;;
|
|
|
|
nvhost_dma_fence_unpack)
|
|
#
|
|
# Determine if the nvhost_dma_fence_unpack function is present.
|
|
# This is only present in NVIDIA Tegra downstream kernels.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_NVHOST_H_PRESENT)
|
|
#include <linux/nvhost.h>
|
|
#endif
|
|
void conftest_nvhost_dma_fence_unpack(void) {
|
|
nvhost_dma_fence_unpack();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_NVHOST_DMA_FENCE_UNPACK_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vmf_insert_pfn_prot)
|
|
#
|
|
# Determine if vmf_insert_pfn_prot function is present
|
|
#
|
|
# Added by commit f5e6d1d5f8f3 ("mm: introduce
|
|
# vmf_insert_pfn_prot()") in v4.20.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_vmf_insert_pfn_prot() {
|
|
vmf_insert_pfn_prot();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VMF_INSERT_PFN_PROT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_atomic_available)
|
|
#
|
|
# Determine if the DRM atomic modesetting subsystem is usable
|
|
#
|
|
# Added by commit 036ef5733ba4
|
|
# ("drm/atomic: Allow drivers to subclass drm_atomic_state, v3") in
|
|
# v4.2 (2018-05-18).
|
|
#
|
|
# Make conftest more robust by adding test for
|
|
# drm_atomic_set_mode_prop_for_crtc(), this function added by
|
|
# commit 955f3c334f0f ("drm/atomic: Add MODE_ID property") in v4.2
|
|
# (2015-05-25). If the DRM atomic modesetting subsystem is
|
|
# back ported to Linux kernel older than v4.2, then commit
|
|
# 955f3c334f0f must be back ported in order to get NVIDIA-DRM KMS
|
|
# support.
|
|
# Commit 72fdb40c1a4b ("drm: extract drm_atomic_uapi.c") in v4.20
|
|
# (2018-09-05), moved drm_atomic_set_mode_prop_for_crtc() function
|
|
# prototype from drm/drm_atomic.h to drm/drm_atomic_uapi.h.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#include <drm/drm_atomic.h>
|
|
#if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE) && !defined(__FreeBSD__)
|
|
#error DRM not enabled
|
|
#endif
|
|
void conftest_drm_atomic_modeset_available(void) {
|
|
size_t a;
|
|
|
|
a = offsetof(struct drm_mode_config_funcs, atomic_state_alloc);
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#include <drm/drm_atomic.h>
|
|
#if defined(NV_DRM_DRM_ATOMIC_UAPI_H_PRESENT)
|
|
#include <drm/drm_atomic_uapi.h>
|
|
#endif
|
|
void conftest_drm_atomic_set_mode_prop_for_crtc(void) {
|
|
drm_atomic_set_mode_prop_for_crtc();
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#undef NV_DRM_ATOMIC_MODESET_AVAILABLE" | append_conftest "generic"
|
|
else
|
|
echo "#define NV_DRM_ATOMIC_MODESET_AVAILABLE" | append_conftest "generic"
|
|
fi
|
|
else
|
|
echo "#undef NV_DRM_ATOMIC_MODESET_AVAILABLE" | append_conftest "generic"
|
|
fi
|
|
;;
|
|
|
|
drm_driver_has_legacy_dev_list)
|
|
#
|
|
# Determine if the 'drm_driver' structure has a 'legacy_dev_list' field.
|
|
#
|
|
# Renamed from device_list to legacy_device_list by commit
|
|
# b3f2333de8e8 ("drm: restrict the device list for shadow
|
|
# attached drivers") in v3.14 (2013-12-11)
|
|
#
|
|
# The commit 57bb1ee60340 ("drm: Compile out legacy chunks from
|
|
# struct drm_device") in v5.11 compiles out the legacy chunks like
|
|
# drm_driver::legacy_dev_list.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
int conftest_drm_driver_has_legacy_dev_list(void) {
|
|
return offsetof(struct drm_driver, legacy_dev_list);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_LEGACY_DEV_LIST" "" "types"
|
|
;;
|
|
|
|
jiffies_to_timespec)
|
|
#
|
|
# Determine if jiffies_to_timespec() is present
|
|
#
|
|
# Removed by commit 751addac78b6 ("y2038: remove obsolete jiffies
|
|
# conversion functions") in v5.6.
|
|
#
|
|
CODE="
|
|
#include <linux/jiffies.h>
|
|
void conftest_jiffies_to_timespec(void){
|
|
jiffies_to_timespec();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_JIFFIES_TO_TIMESPEC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_driver_has_gem_prime_res_obj)
|
|
#
|
|
# Determine if the drm_driver structure has a 'gem_prime_res_obj'
|
|
# callback field.
|
|
#
|
|
# Added by commit 3aac4502fd3f ("dma-buf: use reservation
|
|
# objects") in v3.17 (2014-07-01).
|
|
#
|
|
# Removed by commit 51c98747113e (drm/prime: Ditch
|
|
# gem_prime_res_obj hook) in v5.4.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
int conftest_drm_driver_has_gem_prime_res_obj(void) {
|
|
return offsetof(struct drm_driver, gem_prime_res_obj);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ" "" "types"
|
|
;;
|
|
|
|
drm_atomic_helper_legacy_gamma_set)
|
|
#
|
|
# Determine if the function drm_atomic_helper_legacy_gamma_set() is
|
|
# present.
|
|
#
|
|
# Added by commit 5488dc16fde7 ("drm: introduce pipe color
|
|
# correction properties") in v4.6 (2016-03-08)
|
|
#
|
|
# Accidentally moved to drm_atomic_state_helper.[ch] by commit
|
|
# 9ef8a9dc4b21 ("drm: Extract drm_atomic_state_helper.[ch]")
|
|
# and moved back to drm_atomic_helper.[ch] by commit 1d8224e790c7
|
|
# ("drm: Fix up drm_atomic_state_helper.[hc] extraction") in v5.0.
|
|
#
|
|
# Removed by commit 6ca2ab8086af ("drm: automatic legacy gamma
|
|
# support") in v5.12 (2020-12-15)
|
|
#
|
|
CODE="
|
|
#include <drm/drm_atomic_helper.h>
|
|
#if defined(NV_DRM_DRM_ATOMIC_STATE_HELPER_H_PRESENT)
|
|
#include <drm/drm_atomic_state_helper.h>
|
|
#endif
|
|
void conftest_drm_atomic_helper_legacy_gamma_set(void) {
|
|
drm_atomic_helper_legacy_gamma_set();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_LEGACY_GAMMA_SET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_plane_create_color_properties)
|
|
#
|
|
# Determine if the function drm_plane_create_color_properties() is
|
|
# present.
|
|
#
|
|
# Added by commit 80f690e9e3a6 ("drm: Add optional COLOR_ENCODING
|
|
# and COLOR_RANGE properties to drm_plane") in v4.17 (2018-02-19).
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#include <drm/drm_color_mgmt.h>
|
|
void conftest_drm_plane_create_color_properties(void) {
|
|
drm_plane_create_color_properties();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_PLANE_CREATE_COLOR_PROPERTIES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_format_info_has_is_yuv)
|
|
#
|
|
# Determine if struct drm_format_info has .is_yuv member.
|
|
#
|
|
# Added by commit ce2d54619a10 ("drm/fourcc: Add is_yuv field to
|
|
# drm_format_info to denote if format is yuv") in v4.19
|
|
# (2018-07-17).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_fourcc.h>
|
|
int conftest_drm_format_info_has_is_yuv(void) {
|
|
return offsetof(struct drm_format_info, is_yuv);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_FORMAT_INFO_HAS_IS_YUV" "" "types"
|
|
;;
|
|
|
|
get_user_pages)
|
|
#
|
|
# Determine if get_user_pages()
|
|
#
|
|
# Removed vmas parameter from get_user_pages() by commit 54d020692b34
|
|
# ("mm/gup: remove unused vmas parameter from get_user_pages()")
|
|
# in v6.5.
|
|
#
|
|
CODE="$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages(unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_GET_USER_PAGES_HAS_VMAS_ARG" "" "types"
|
|
|
|
return
|
|
;;
|
|
|
|
get_user_pages_remote)
|
|
#
|
|
# Determine if the function get_user_pages_remote() has tsk/vmas
|
|
# parameters.
|
|
#
|
|
# get_user_pages_remote() removed 'tsk' parameter by
|
|
# commit 64019a2e467a ("mm/gup: remove task_struct pointer for
|
|
# all gup code") in v5.9.
|
|
#
|
|
# Removed vmas parameter from get_user_pages_remote() by commit
|
|
# ca5e863233e8 ("mm/gup: remove vmas parameter from
|
|
# get_user_pages_remote()") in v6.5.
|
|
#
|
|
|
|
#
|
|
# This function sets the NV_GET_USER_PAGES_REMOTE_* macros as per
|
|
# the below passing conftest's
|
|
#
|
|
set_get_user_pages_remote_defines () {
|
|
if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS" ]; then
|
|
echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK" ]; then
|
|
echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK" | append_conftest "functions"
|
|
fi
|
|
}
|
|
|
|
#
|
|
# conftest #1: check if get_user_pages_remote() has tsk and
|
|
# vmas arguments
|
|
# Return if these arguments are present. Fall through to conftest #2
|
|
# if these args are absent.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages_remote(struct task_struct *tsk,
|
|
struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas,
|
|
int *locked) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
#
|
|
# conftest #2: check if get_user_pages_remote() does not take the
|
|
# tsk argument.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages_remote(struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas,
|
|
int *locked) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK"
|
|
rm -f conftest$$.o
|
|
fi
|
|
|
|
#
|
|
# conftest #3: check if get_user_pages_remote() does not take
|
|
# vmas or tsk arguments.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages_remote(struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
int *locked) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_remote_defines ""
|
|
rm -f conftest$$.o
|
|
fi
|
|
|
|
;;
|
|
|
|
pin_user_pages)
|
|
#
|
|
# Determine if the function pin_user_pages() is present.
|
|
# Presence of pin_user_pages() also implies the presence of
|
|
# unpin-user_page().
|
|
#
|
|
# pin_user_pages() was added by commit eddb1c228f79 ("mm/gup:
|
|
# introduce pin_user_pages*() and FOLL_PIN") in v5.6.
|
|
#
|
|
# Removed vmas parameter from pin_user_pages() by commit
|
|
# 4c630f307455 ("mm/gup: remove vmas parameter from
|
|
# pin_user_pages()") in v6.5.
|
|
|
|
set_pin_user_pages_defines () {
|
|
if [ "$1" = "" ]; then
|
|
echo "#undef NV_PIN_USER_PAGES_PRESENT" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_PIN_USER_PAGES_PRESENT" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_PIN_USER_PAGES_HAS_ARGS_VMAS" ]; then
|
|
echo "#define NV_PIN_USER_PAGES_HAS_ARGS_VMAS" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_PIN_USER_PAGES_HAS_ARGS_VMAS" | append_conftest "functions"
|
|
fi
|
|
|
|
}
|
|
|
|
# conftest #1: check if pin_user_pages() is available
|
|
# return if not available.
|
|
# Fall through to conftest #2 if it is present
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
void conftest_pin_user_pages(void) {
|
|
pin_user_pages();
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_pin_user_pages_defines ""
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
# conftest #2: Check if pin_user_pages() has vmas argument
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long pin_user_pages(unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_pin_user_pages_defines "NV_PIN_USER_PAGES_HAS_ARGS_VMAS"
|
|
rm -f conftest$$.o
|
|
else
|
|
set_pin_user_pages_defines "NV_PIN_USER_PAGES_PRESENT"
|
|
fi
|
|
;;
|
|
|
|
pin_user_pages_remote)
|
|
# Determine if the function pin_user_pages_remote() is present
|
|
#
|
|
# pin_user_pages_remote() was added by commit eddb1c228f7951d399240
|
|
# ("mm/gup: introduce pin_user_pages*() and FOLL_PIN")
|
|
# in v5.6 (2020-01-30)
|
|
|
|
# pin_user_pages_remote() removed 'tsk' parameter by commit
|
|
# 64019a2e467a ("mm/gup: remove task_struct pointer for all gup
|
|
# code") in v5.9.
|
|
#
|
|
# Removed unused vmas parameter from pin_user_pages_remote() by
|
|
# commit 0b295316b3a9 ("mm/gup: remove unused vmas parameter from
|
|
# pin_user_pages_remote()") in v6.5.
|
|
|
|
#
|
|
# This function sets the NV_PIN_USER_PAGES_REMOTE_* macros as per
|
|
# the below passing conftest's
|
|
#
|
|
set_pin_user_pages_remote_defines () {
|
|
if [ "$1" = "" ]; then
|
|
echo "#undef NV_PIN_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_PIN_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS" ]; then
|
|
echo "#define NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_VMAS" ]; then
|
|
echo "#define NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_VMAS" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_VMAS" | append_conftest "functions"
|
|
fi
|
|
}
|
|
|
|
# conftest #1: check if pin_user_pages_remote() is available
|
|
# return if not available.
|
|
# Fall through to conftest #2 if it is present
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
void conftest_pin_user_pages_remote(void) {
|
|
pin_user_pages_remote();
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_pin_user_pages_remote_defines ""
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
# conftest #2: Check if pin_user_pages_remote() has tsk and
|
|
# vmas argument
|
|
# Return if these arguments are present else fall through to
|
|
# conftest #3
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long pin_user_pages_remote(struct task_struct *tsk,
|
|
struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas,
|
|
int *locked) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_pin_user_pages_remote_defines "NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
# conftest #3: Check if pin_user_pages_remote() has vmas argument
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long pin_user_pages_remote(struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas,
|
|
int *locked) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_pin_user_pages_remote_defines "NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_VMAS"
|
|
rm -f conftest$$.o
|
|
else
|
|
set_pin_user_pages_remote_defines "NV_PIN_USER_PAGES_REMOTE_PRESENT"
|
|
fi
|
|
|
|
;;
|
|
|
|
foll_longterm_present)
|
|
#
|
|
# Determine if FOLL_LONGTERM enum is present or not
|
|
#
|
|
# Added by commit 932f4a630a69 ("mm/gup: replace
|
|
# get_user_pages_longterm() with FOLL_LONGTERM") in
|
|
# v5.2
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
int foll_longterm = FOLL_LONGTERM;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_FOLL_LONGTERM_PRESENT" "" "types"
|
|
;;
|
|
|
|
has_enum_pidtype_tgid)
|
|
# Determine if PIDTYPE_TGID is present in the kernel as an enum
|
|
#
|
|
# Added by commit 6883f81aac6f ("pid: Implement PIDTYPE_TGID")
|
|
# in v4.19
|
|
#
|
|
CODE="
|
|
#include <linux/pid.h>
|
|
|
|
enum pid_type type = PIDTYPE_TGID;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_HAS_ENUM_PIDTYPE_TGID" "" "types"
|
|
;;
|
|
|
|
vfio_pin_pages_has_vfio_device_arg)
|
|
#
|
|
# Determine if vfio_pin_pages() kABI accepts "struct vfio_device *"
|
|
# argument instead of "struct device *"
|
|
#
|
|
# Replaced "struct device *" with "struct vfio_device *" by commit
|
|
# 8e432bb015b6c ("vfio/mdev: Pass in a struct vfio_device * to
|
|
# vfio_pin/unpin_pages()") in v5.19
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
int vfio_pin_pages(struct vfio_device *device,
|
|
unsigned long *user_pfn,
|
|
int npage,
|
|
int prot,
|
|
unsigned long *phys_pfn) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_VFIO_PIN_PAGES_HAS_VFIO_DEVICE_ARG" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
else
|
|
echo "#undef NV_VFIO_PIN_PAGES_HAS_VFIO_DEVICE_ARG" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
vfio_pin_pages_has_pages_arg)
|
|
#
|
|
# Determine if vfio_pin_pages() kABI accepts "struct pages **:
|
|
# argument instead of "unsigned long *phys_pfn"
|
|
#
|
|
# Replaced "unsigned long *phys_pfn" with "struct pages **pages"
|
|
# in commit 34a255e676159 ("vfio: Replace phys_pfn with pages for
|
|
# vfio_pin_pages()") in v6.0.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/pci.h>
|
|
#include <linux/vfio.h>
|
|
int vfio_pin_pages(struct vfio_device *device,
|
|
dma_addr_t iova,
|
|
int npage,
|
|
int prot,
|
|
struct page **pages) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_VFIO_PIN_PAGES_HAS_PAGES_ARG" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
else
|
|
echo "#undef NV_VFIO_PIN_PAGES_HAS_PAGES_ARG" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
enable_apicv)
|
|
#
|
|
# Determine if enable_apicv boolean is exported by kernel.
|
|
#
|
|
# Added by commit fdf513e37a3b ("KVM: x86: Use common
|
|
# 'enable_apicv' variable for both APICv and AVIC") in v5.14.
|
|
#
|
|
CODE="
|
|
$CONFTEST_PREAMBLE
|
|
#include <asm/kvm_host.h>
|
|
|
|
bool is_enable_apicv_present() {
|
|
return enable_apicv;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ENABLE_APICV_PRESENT" "" "types"
|
|
;;
|
|
|
|
pci_driver_has_driver_managed_dma)
|
|
#
|
|
# Determine if "struct pci_driver" has .driver_managed_dma member.
|
|
#
|
|
# Added by commit 512881eacfa7 ("bus: platform,amba,fsl-mc,PCI:
|
|
# Add device DMA ownership management") in v5.19
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
int conftest_pci_driver_has_driver_managed_dma(void) {
|
|
return offsetof(struct pci_driver, driver_managed_dma);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_DRIVER_HAS_DRIVER_MANAGED_DMA" "" "types"
|
|
;;
|
|
|
|
drm_file_get_master)
|
|
#
|
|
# Determine if function drm_file_get_master() is present.
|
|
#
|
|
# Added by commit 56f0729a510f ("drm: protect drm_master pointers in drm_lease.c")
|
|
# in v5.15 (2021-07-20)
|
|
#
|
|
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#include <drm/drm_auth.h>
|
|
|
|
void conftest_drm_file_get_master(void) {
|
|
drm_file_get_master();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_FILE_GET_MASTER_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_modeset_lock_all_end)
|
|
#
|
|
# Determine the number of arguments of the
|
|
# DRM_MODESET_LOCK_ALL_END() macro.
|
|
#
|
|
# DRM_MODESET_LOCK_ALL_END() is added with two arguments by commit
|
|
# b7ea04d299c7 (drm: drm: Add DRM_MODESET_LOCK_BEGIN/END helpers)
|
|
# in v5.0 (2018-11-29). The definition and prototype is changed to
|
|
# also take the third argument drm_device, by commit 77ef38574beb
|
|
# (drm/modeset-lock: Take the modeset BKL for legacy drivers)
|
|
# in v5.9 (2020-08-17).
|
|
#
|
|
DRM_MODESET_3_COMPILED=0
|
|
DRM_MODESET_2_COMPILED=0
|
|
DRM_MODESET_INCLUDES="
|
|
#include <drm/drm_device.h>
|
|
#include <drm/drm_drv.h>
|
|
#include <drm/drm_modeset_lock.h>"
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
$DRM_MODESET_INCLUDES
|
|
|
|
void conftest_drm_modeset_lock_all_end(
|
|
struct drm_device *dev,
|
|
struct drm_modeset_acquire_ctx ctx,
|
|
int ret) {
|
|
DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
|
|
DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
DRM_MODESET_3_COMPILED=1
|
|
rm -f conftest$$.o
|
|
fi
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
$DRM_MODESET_INCLUDES
|
|
|
|
void conftest_drm_modeset_lock_all_end(
|
|
struct drm_device *dev,
|
|
struct drm_modeset_acquire_ctx ctx,
|
|
int ret) {
|
|
DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret);
|
|
DRM_MODESET_LOCK_ALL_END(ctx, ret);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
DRM_MODESET_2_COMPILED=1
|
|
rm -f conftest$$.o
|
|
fi
|
|
|
|
# If the macro is undefined, both code snippets will still compile,
|
|
# so we need to check both and make sure only one compiles successfully.
|
|
if [ "$DRM_MODESET_3_COMPILED" = "1" ] &&
|
|
[ "$DRM_MODESET_2_COMPILED" = "0" ]; then
|
|
echo "#define NV_DRM_MODESET_LOCK_ALL_END_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
elif [ "$DRM_MODESET_3_COMPILED" = "0" ] &&
|
|
[ "$DRM_MODESET_2_COMPILED" = "1" ]; then
|
|
echo "#define NV_DRM_MODESET_LOCK_ALL_END_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_DRM_MODESET_LOCK_ALL_END_ARGUMENT_COUNT 0" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
vm_ops_fault_removed_vma_arg)
|
|
#
|
|
# Determine if vma.vm_ops.fault takes (vma, vmf), or just (vmf)
|
|
# args. Acronym key:
|
|
# vma: struct vm_area_struct
|
|
# vm_ops: struct vm_operations_struct
|
|
# vmf: struct vm_fault
|
|
#
|
|
# The redundant vma arg was removed from BOTH vma.vm_ops.fault and
|
|
# vma.vm_ops.page_mkwrite by commit 11bac8000449 ("mm, fs: reduce
|
|
# fault, page_mkwrite, and pfn_mkwrite to take only vmf") in
|
|
# v4.11 (2017-02-24)
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_vm_ops_fault_removed_vma_arg(void) {
|
|
struct vm_operations_struct vm_ops;
|
|
struct vm_fault *vmf;
|
|
(void)vm_ops.fault(vmf);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VM_OPS_FAULT_REMOVED_VMA_ARG" "" "types"
|
|
;;
|
|
|
|
is_export_symbol_present_*)
|
|
export_symbol_present_conftest $(echo $1 | cut -f5- -d_)
|
|
;;
|
|
|
|
is_export_symbol_gpl_*)
|
|
export_symbol_gpl_conftest $(echo $1 | cut -f5- -d_)
|
|
;;
|
|
|
|
get_backlight_device_by_name)
|
|
#
|
|
# Determine if the get_backlight_device_by_name() function is present
|
|
#
|
|
CODE="
|
|
#include <linux/backlight.h>
|
|
int conftest_get_backlight_device_by_name(void) {
|
|
return get_backlight_device_by_name();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_GET_BACKLIGHT_DEVICE_BY_NAME_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_buf_ops_has_map)
|
|
#
|
|
# Determine if .map exists in dma_buf_ops.
|
|
# In some kernels, this is a mandatory callback.
|
|
#
|
|
# Added by commit f9b67f0014cb
|
|
# ("dma-buf: Rename dma-ops to prevent conflict with kunmap_atomic macro")
|
|
# in v4.12 (2017-04-19)
|
|
#
|
|
# Removed as a mandatory callback by commit f82aab2d521e
|
|
# ("dma-buf: Remove requirement for ops->map() from dma_buf_export")
|
|
# in v4.20 (2018-08-07)
|
|
#
|
|
# Completely removed from dma-buf by commit 4337ebbbbda3
|
|
# ("dma-buf: Remove kernel map/unmap hooks") in v5.6 (2019-11-18)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_ops_has_map(void) {
|
|
return offsetof(struct dma_buf_ops, map);
|
|
}
|
|
int conftest_dma_buf_ops_has_unmap(void) {
|
|
return offsetof(struct dma_buf_ops, unmap);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_OPS_HAS_MAP" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_OPS_HAS_MAP" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
dma_buf_ops_has_map_atomic)
|
|
#
|
|
# Determine if map_atomic/unmap_atomic exists in dma_buf_ops.
|
|
# In some kernels, this is a mandatory callback.
|
|
#
|
|
# Added by commit f9b67f0014cb
|
|
# ("dma-buf: Rename dma-ops to prevent conflict with kunmap_atomic macro")
|
|
# in v4.12 (2017-04-19)
|
|
#
|
|
# Removed by commit f664a5269542
|
|
# ("dma-buf: remove kmap_atomic interface") in v4.19 (2018-05-28)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_ops_has_map_atomic(void) {
|
|
return offsetof(struct dma_buf_ops, map_atomic);
|
|
}
|
|
int conftest_dma_buf_ops_has_unmap_atomic(void) {
|
|
return offsetof(struct dma_buf_ops, unmap_atomic);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_OPS_HAS_MAP_ATOMIC" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_OPS_HAS_MAP_ATOMIC" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
dma_buf_attachment_has_peer2peer)
|
|
#
|
|
# Determine if peer2peer is present in struct dma_buf_attachment.
|
|
# peer2peer being true indicates that a dma-buf importer is able
|
|
# to handle peer resources not backed by struct page.
|
|
#
|
|
# Added by commit: 09606b5446c2
|
|
# ("dma-buf: add peer2peer flag") in v5.8 (2018-03-22)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_peer2peer(void) {
|
|
return offsetof(struct dma_buf_attachment, peer2peer);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_ATTACHMENT_HAS_PEER2PEER" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_ATTACHMENT_HAS_PEER2PEER" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
drm_connector_funcs_have_mode_in_name)
|
|
#
|
|
# Determine if _mode_ is present in connector function names. We
|
|
# only test drm_mode_connector_attach_encoder() and assume the
|
|
# other functions are changed in sync.
|
|
#
|
|
# drm_mode_connector_attach_encoder() was renamed to
|
|
# drm_connector_attach_encoder() by commit cde4c44d8769 ("drm:
|
|
# drop _mode_ from drm_mode_connector_attach_encoder") in v4.19
|
|
# (2018-07-09)
|
|
#
|
|
# drm_mode_connector_update_edid_property() was renamed by commit
|
|
# c555f02371c3 ("drm: drop _mode_ from update_edit_property()")
|
|
# in v4.19 (2018-07-09).
|
|
#
|
|
# The other DRM functions were renamed by commit 97e14fbeb53f
|
|
# ("drm: drop _mode_ from remaining connector functions") in v4.19
|
|
# (2018-07-09)
|
|
#
|
|
# Note that drm_connector.h by introduced by commit 522171951761
|
|
# ("drm: Extract drm_connector.[hc]") in v4.9 (2016-08-12)
|
|
#
|
|
# Note: up to 4.9 function was provided by drm_crtc.h by commit
|
|
# f453ba046074 in 2.6.29 (2008-12-29)
|
|
#
|
|
CODE="
|
|
#include <drm/drm_connector.h>
|
|
#include <drm/drm_crtc.h>
|
|
void conftest_drm_connector_funcs_have_mode_in_name(void) {
|
|
drm_mode_connector_attach_encoder();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_FUNCS_HAVE_MODE_IN_NAME" "" "functions"
|
|
;;
|
|
|
|
drm_connector_has_vrr_capable_property)
|
|
#
|
|
# Determine if drm_connector_attach_vrr_capable_property and
|
|
# drm_connector_set_vrr_capable_property is present
|
|
#
|
|
# Added by commit ba1b0f6c73d4 ("drm: Add vrr_capable property to
|
|
# the drm connector") in v5.0.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_connector.h>
|
|
|
|
void conftest_drm_connector_has_vrr_capable_property(void) {
|
|
drm_connector_attach_vrr_capable_property();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_HAS_VRR_CAPABLE_PROPERTY" "" "functions"
|
|
;;
|
|
|
|
vm_fault_t)
|
|
#
|
|
# Determine if vm_fault_t is present
|
|
#
|
|
# Added by commit 1c8f422059ae5da07db7406ab916203f9417e396 ("mm:
|
|
# change return type to vm_fault_t") in v4.17 (2018-04-05)
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
vm_fault_t conftest_vm_fault_t;
|
|
"
|
|
compile_check_conftest "$CODE" "NV_VM_FAULT_T_IS_PRESENT" "" "types"
|
|
;;
|
|
|
|
vmf_insert_pfn)
|
|
#
|
|
# Determine if the function vmf_insert_pfn() is
|
|
# present.
|
|
#
|
|
# Added by commit 1c8f422059ae5da07db7406ab916203f9417e396 ("mm:
|
|
# change return type to vm_fault_t") in v4.17 (2018-04-05)
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_vmf_insert_pfn(void) {
|
|
vmf_insert_pfn();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VMF_INSERT_PFN_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pm_runtime_available)
|
|
#
|
|
# Determine if struct dev_pm_info has the 'usage_count' field.
|
|
#
|
|
# This was added to the kernel in commit 5e928f77a09a0 in v2.6.32
|
|
# (2008-08-18), but originally were dependent on CONFIG_PM_RUNTIME,
|
|
# which was folded into the more generic CONFIG_PM in commit
|
|
# d30d819dc8310 in v3.19 (2014-11-27).
|
|
# Rather than attempt to select the appropriate CONFIG option,
|
|
# simply check if this member is present.
|
|
#
|
|
CODE="
|
|
#include <linux/pm.h>
|
|
void pm_runtime_conftest(void) {
|
|
struct dev_pm_info dpmi;
|
|
atomic_set(&dpmi.usage_count, 1);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PM_RUNTIME_AVAILABLE" "" "generic"
|
|
;;
|
|
|
|
pm_domain_available)
|
|
#
|
|
# Determine whether dev_pm_genpd_suspend() exists.
|
|
#
|
|
# This was added to the kernel in commit fc51989062138
|
|
# ("PM: domains: Rename pm_genpd_syscore_poweroff|poweron()")
|
|
# in v5.11-rc1 (2020-11-10),
|
|
#
|
|
CODE="
|
|
#include <linux/pm_domain.h>
|
|
void pm_domain_conftest(void) {
|
|
dev_pm_genpd_suspend();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_PM_DOMAIN_AVAILABLE" "" "functions"
|
|
;;
|
|
|
|
dma_direct_map_resource)
|
|
#
|
|
# Determine whether dma_is_direct() exists.
|
|
#
|
|
# dma_is_direct() was added by commit 356da6d0cde3 ("dma-mapping:
|
|
# bypass indirect calls for dma-direct") in 5.1 (2018-12-06).
|
|
#
|
|
# If dma_is_direct() does exist, then we assume that
|
|
# dma_direct_map_resource() exists. Both functions were added
|
|
# as part of the same patchset.
|
|
#
|
|
# The presence of dma_is_direct() and dma_direct_map_resource()
|
|
# means that dma_direct can perform DMA mappings itself.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_is_direct(void) {
|
|
dma_is_direct();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_IS_DIRECT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
cmd_uphy_display_port_init)
|
|
#
|
|
# Determine if CMD_UPHY_DISPLAY_PORT_INIT enum present in bpmp-abi header
|
|
# This enum is used only in Tegra down-stream kernel.
|
|
#
|
|
CODE="
|
|
#include <stdint.h>
|
|
#include <soc/tegra/bpmp-abi.h>
|
|
|
|
int conftest_cmd_uphy_display_port_init(void) {
|
|
return CMD_UPHY_DISPLAY_PORT_INIT;
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_CMD_UPHY_DISPLAY_PORT_INIT_PRESENT" "" "generic"
|
|
|
|
;;
|
|
|
|
cmd_uphy_display_port_off)
|
|
#
|
|
# Determine if CMD_UPHY_DISPLAY_PORT_OFF enum present in bpmp-abi header
|
|
# This enum is used only in Tegra down-stream kernel.
|
|
#
|
|
CODE="
|
|
#include <stdint.h>
|
|
#include <soc/tegra/bpmp-abi.h>
|
|
|
|
int conftest_cmd_uphy_display_port_off(void) {
|
|
return CMD_UPHY_DISPLAY_PORT_OFF;
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_CMD_UPHY_DISPLAY_PORT_OFF_PRESENT" "" "generic"
|
|
|
|
;;
|
|
|
|
drm_alpha_blending_available)
|
|
#
|
|
# Determine if the DRM subsystem supports alpha blending
|
|
#
|
|
# This conftest using "generic" rather than "functions" because
|
|
# with the logic of "functions" the presence of
|
|
# *either*_alpha_property or _blend_mode_property would be enough
|
|
# to cause NV_DRM_ALPHA_BLENDING_AVAILABLE to be defined.
|
|
|
|
# drm_plane_create_alpha_property was added by commit
|
|
# ae0e28265e21 ("drm/blend: Add a generic alpha property") in
|
|
# v4.18.
|
|
#
|
|
# drm_plane_create_blend_mode_property was added by commit
|
|
# a5ec8332d428 ("drm: Add per-plane pixel blend mode property")
|
|
# in v4.20.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_blend.h>
|
|
void conftest_drm_alpha_blending_available(void) {
|
|
(void)drm_plane_create_alpha_property;
|
|
(void)drm_plane_create_blend_mode_property;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ALPHA_BLENDING_AVAILABLE" "" "generic"
|
|
;;
|
|
|
|
drm_driver_prime_flag_present)
|
|
#
|
|
# Determine whether driver feature flag DRIVER_PRIME is present.
|
|
#
|
|
# The DRIVER_PRIME flag was added by commit 3248877ea179 (drm:
|
|
# base prime/dma-buf support (v5)) in v3.4 (2011-11-25) and is
|
|
# removed by commit 0424fdaf883a ("drm/prime: Actually remove
|
|
# DRIVER_PRIME everywhere") in v5.4.
|
|
#
|
|
# DRIVER_PRIME definition moved from drmP.h to drm_drv.h by
|
|
# commit 85e634bce01a (drm: Extract drm_drv.h) in v4.10
|
|
# (2016-11-14).
|
|
#
|
|
# DRIVER_PRIME define is changed to enum value by commit
|
|
# 0e2a933b02c9 (drm: Switch DRIVER_ flags to an enum) in v5.1
|
|
# (2019-01-29).
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
unsigned int drm_driver_prime_flag_present_conftest(void) {
|
|
return DRIVER_PRIME;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_PRIME_FLAG_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_connector_for_each_possible_encoder)
|
|
#
|
|
# Determine the number of arguments of the
|
|
# drm_connector_for_each_possible_encoder() macro.
|
|
#
|
|
# drm_connector_for_each_possible_encoder() is added by commit
|
|
# 83aefbb887b5 (drm: Add drm_connector_for_each_possible_encoder())
|
|
# in v4.19. The definition and prototype is changed to take only
|
|
# two arguments connector and encoder by commit 62afb4ad425a
|
|
# ("drm/connector: Allow max possible encoders to attach to a
|
|
# connector") in v5.5.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_connector.h>
|
|
|
|
void conftest_drm_connector_for_each_possible_encoder(
|
|
struct drm_connector *connector,
|
|
struct drm_encoder *encoder,
|
|
int i) {
|
|
|
|
drm_connector_for_each_possible_encoder(connector, encoder, i) {
|
|
}
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DRM_CONNECTOR_FOR_EACH_POSSIBLE_ENCODER_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#define NV_DRM_CONNECTOR_FOR_EACH_POSSIBLE_ENCODER_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
mmu_notifier_ops_arch_invalidate_secondary_tlbs)
|
|
#
|
|
# Determine if the mmu_notifier_ops struct has the
|
|
# 'arch_invalidate_secondary_tlbs' member.
|
|
#
|
|
# struct mmu_notifier_ops.invalidate_range was renamed to
|
|
# arch_invalidate_secondary_tlbs by commit 1af5a8109904
|
|
# ("mmu_notifiers: rename invalidate_range notifier") in v6.6
|
|
# (2023-07-25).
|
|
CODE="
|
|
#include <linux/mmu_notifier.h>
|
|
int conftest_mmu_notifier_ops_arch_invalidate_secondary_tlbs(void) {
|
|
return offsetof(struct mmu_notifier_ops, arch_invalidate_secondary_tlbs);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MMU_NOTIFIER_OPS_HAS_ARCH_INVALIDATE_SECONDARY_TLBS" "" "types"
|
|
;;
|
|
|
|
drm_format_num_planes)
|
|
#
|
|
# Determine if drm_format_num_planes() function is present.
|
|
#
|
|
# The drm_format_num_planes() function was added by commit
|
|
# d0d110e09629 drm: Add drm_format_num_planes() utility function in
|
|
# v3.3 (2011-12-20). Prototype was moved from drm_crtc.h to
|
|
# drm_fourcc.h by commit ae4df11a0f53 (drm: Move format-related
|
|
# helpers to drm_fourcc.c) in v4.8 (2016-06-09).
|
|
# drm_format_num_planes() has been removed by commit 05c452c115bf
|
|
# (drm: Remove users of drm_format_num_planes) removed v5.3
|
|
# (2019-05-16).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
#include <drm/drm_fourcc.h>
|
|
|
|
void conftest_drm_format_num_planes(void) {
|
|
drm_format_num_planes();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_FORMAT_NUM_PLANES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_gem_object_has_resv)
|
|
#
|
|
# Determine if the 'drm_gem_object' structure has a 'resv' field.
|
|
#
|
|
# A 'resv' filed in the 'drm_gem_object' structure, is added by
|
|
# commit 1ba627148ef5 (drm: Add reservation_object to
|
|
# drm_gem_object) in v5.2.
|
|
#
|
|
CODE="$CONFTEST_PREAMBLE
|
|
#include <drm/drm_gem.h>
|
|
|
|
int conftest_drm_gem_object_has_resv(void) {
|
|
return offsetof(struct drm_gem_object, resv);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_HAS_RESV" "" "types"
|
|
;;
|
|
|
|
proc_ops)
|
|
#
|
|
# Determine if the 'struct proc_ops' type is present.
|
|
#
|
|
# Added by commit d56c0d45f0e2 ("proc: decouple proc from VFS
|
|
# with "struct proc_ops"") in v5.6.
|
|
#
|
|
CODE="
|
|
#include <linux/proc_fs.h>
|
|
|
|
struct proc_ops p_ops;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_PROC_OPS_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_crtc_state_has_async_flip)
|
|
#
|
|
# Determine if the 'drm_crtc_state' structure has a 'async_flip'
|
|
# field.
|
|
#
|
|
# Commit 4d85f45c73a2 (drm/atomic: Rename crtc_state->pageflip_flags
|
|
# to async_flip) replaced 'pageflip_flags' by 'async_flip' in v5.4.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
|
|
int conftest_drm_crtc_state_has_async_flip(void) {
|
|
return offsetof(struct drm_crtc_state, async_flip);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_STATE_HAS_ASYNC_FLIP" "" "types"
|
|
;;
|
|
|
|
drm_crtc_state_has_pageflip_flags)
|
|
#
|
|
# Determine if the 'drm_crtc_state' structure has a
|
|
# 'pageflip_flags' field.
|
|
#
|
|
# 'pageflip_flags' added by commit 6cbe5c466d73 (drm/atomic: Save
|
|
# flip flags in drm_crtc_state) in v4.12. Commit 4d85f45c73a2
|
|
# (drm/atomic: Rename crtc_state->pageflip_flags to async_flip)
|
|
# replaced 'pageflip_flags' by 'async_flip' in v5.4.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
|
|
int conftest_drm_crtc_state_has_pageflip_flags(void) {
|
|
return offsetof(struct drm_crtc_state, pageflip_flags);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_STATE_HAS_PAGEFLIP_FLAGS" "" "types"
|
|
;;
|
|
|
|
drm_crtc_state_has_vrr_enabled)
|
|
#
|
|
# Determine if 'drm_crtc_state' structure has a
|
|
# 'vrr_enabled' field.
|
|
#
|
|
# Added by commit 1398958cfd8d ("drm: Add vrr_enabled property to
|
|
# drm CRTC") in v5.0.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
|
|
int conftest_drm_crtc_state_has_vrr_enabled(void) {
|
|
return offsetof(struct drm_crtc_state, vrr_enabled);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_STATE_HAS_VRR_ENABLED" "" "types"
|
|
;;
|
|
|
|
ktime_get_raw_ts64)
|
|
#
|
|
# Determine if ktime_get_raw_ts64() is present
|
|
#
|
|
# Added by commit fb7fcc96a86cf ("timekeeping: Standardize on
|
|
# ktime_get_*() naming") in 4.18 (2018-04-27)
|
|
#
|
|
CODE="
|
|
#include <linux/ktime.h>
|
|
void conftest_ktime_get_raw_ts64(void){
|
|
ktime_get_raw_ts64();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_KTIME_GET_RAW_TS64_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vmalloc_has_pgprot_t_arg)
|
|
#
|
|
# Determine if __vmalloc has the 'pgprot' argument.
|
|
#
|
|
# The third argument to __vmalloc, page protection
|
|
# 'pgprot_t prot', was removed by commit 88dca4ca5a93
|
|
# (mm: remove the pgprot argument to __vmalloc)
|
|
# in v5.8.
|
|
#
|
|
CODE="
|
|
#include <linux/vmalloc.h>
|
|
|
|
void conftest_vmalloc_has_pgprot_t_arg(void) {
|
|
pgprot_t prot;
|
|
(void)__vmalloc(0, 0, prot);
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_VMALLOC_HAS_PGPROT_T_ARG" "" "types"
|
|
|
|
;;
|
|
|
|
mm_has_mmap_lock)
|
|
#
|
|
# Determine if the 'mm_struct' structure has a 'mmap_lock' field.
|
|
#
|
|
# Kernel commit da1c55f1b272 ("mmap locking API: rename mmap_sem
|
|
# to mmap_lock") replaced the field 'mmap_sem' by 'mmap_lock'
|
|
# in v5.8.
|
|
#
|
|
CODE="
|
|
#include <linux/mm_types.h>
|
|
|
|
int conftest_mm_has_mmap_lock(void) {
|
|
return offsetof(struct mm_struct, mmap_lock);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MM_HAS_MMAP_LOCK" "" "types"
|
|
;;
|
|
|
|
drm_vma_offset_node_has_readonly)
|
|
#
|
|
# Determine if the 'drm_vma_offset_node' structure has a 'readonly'
|
|
# field.
|
|
#
|
|
# Added by commit 3e977ac6179b ("drm/i915: Prevent writing into a
|
|
# read-only object via a GGTT mmap") in v4.19.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_vma_manager.h>
|
|
|
|
int conftest_drm_vma_offset_node_has_readonly(void) {
|
|
return offsetof(struct drm_vma_offset_node, readonly);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_VMA_OFFSET_NODE_HAS_READONLY" "" "types"
|
|
|
|
;;
|
|
|
|
pci_enable_atomic_ops_to_root)
|
|
#
|
|
# pci_enable_atomic_ops_to_root was added by commit 430a23689dea
|
|
# ("PCI: Add pci_enable_atomic_ops_to_root()") in v4.16.
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
void conftest_pci_enable_atomic_ops_to_root(void) {
|
|
pci_enable_atomic_ops_to_root();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_PCI_ENABLE_ATOMIC_OPS_TO_ROOT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_gem_object_put_unlocked)
|
|
#
|
|
# Determine if the function drm_gem_object_put_unlocked() is present.
|
|
#
|
|
# Replaced with a transient macro by commit 2f4dd13d4bb8 ("drm/gem:
|
|
# add drm_gem_object_put helper") in v5.9.
|
|
#
|
|
# Finally removed by commit ab15d56e27be ("drm: remove transient
|
|
# drm_gem_object_put_unlocked()") in v5.9.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_gem.h>
|
|
void conftest_drm_gem_object_put_unlocked(void) {
|
|
drm_gem_object_put_unlocked();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_PUT_UNLOCK_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_display_mode_has_vrefresh)
|
|
#
|
|
# Determine if the 'drm_display_mode' structure has a 'vrefresh'
|
|
# field.
|
|
#
|
|
# Removed by commit 0425662fdf05 ("drm: Nuke mode->vrefresh") in
|
|
# v5.9.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_modes.h>
|
|
|
|
int conftest_drm_display_mode_has_vrefresh(void) {
|
|
return offsetof(struct drm_display_mode, vrefresh);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DISPLAY_MODE_HAS_VREFRESH" "types"
|
|
|
|
;;
|
|
|
|
drm_driver_master_set_has_int_return_type)
|
|
#
|
|
# Determine if drm_driver::master_set() returns integer value
|
|
#
|
|
# Changed to void by commit 907f53200f98 ("drm: vmwgfx: remove
|
|
# drm_driver::master_set() return type") in v5.9.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
int conftest_drm_driver_master_set_has_int_return_type(struct drm_driver *drv,
|
|
struct drm_device *dev, struct drm_file *file_priv, bool from_open) {
|
|
|
|
return drv->master_set(dev, file_priv, from_open);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_SET_MASTER_HAS_INT_RETURN_TYPE" "" "types"
|
|
;;
|
|
|
|
drm_driver_has_gem_free_object)
|
|
#
|
|
# Determine if the 'drm_driver' structure has a 'gem_free_object'
|
|
# function pointer.
|
|
#
|
|
# drm_driver::gem_free_object is removed by commit 1a9458aeb8eb
|
|
# ("drm: remove drm_driver::gem_free_object") in v5.9.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
int conftest_drm_driver_has_gem_free_object(void) {
|
|
return offsetof(struct drm_driver, gem_free_object);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_FREE_OBJECT" "" "types"
|
|
;;
|
|
|
|
vga_tryget)
|
|
#
|
|
# Determine if vga_tryget() is present
|
|
#
|
|
# vga_tryget() was removed by commit f369bc3f9096 ("vgaarb: mark
|
|
# vga_tryget static") in v5.9.
|
|
#
|
|
CODE="
|
|
#include <linux/vgaarb.h>
|
|
void conftest_vga_tryget(void) {
|
|
vga_tryget();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VGA_TRYGET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_channel_state)
|
|
#
|
|
# Determine if pci_channel_state enum type is present.
|
|
#
|
|
# pci_channel_state was removed by commit 16d79cd4e23b ("PCI: Use
|
|
# 'pci_channel_state_t' instead of 'enum pci_channel_state'") in
|
|
# v5.9.
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
|
|
enum pci_channel_state state;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_CHANNEL_STATE_PRESENT" "" "types"
|
|
;;
|
|
|
|
cc_platform_has)
|
|
#
|
|
# Determine if 'cc_platform_has()' is present.
|
|
#
|
|
# Added by commit aa5a461171f9 ("x86/sev: Add an x86 version of
|
|
# cc_platform_has()") in v5.16.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_CC_PLATFORM_H_PRESENT)
|
|
#include <linux/cc_platform.h>
|
|
#endif
|
|
|
|
void conftest_cc_platfrom_has(void) {
|
|
cc_platform_has();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_CC_PLATFORM_PRESENT" "" "functions"
|
|
;;
|
|
|
|
cc_attr_guest_sev_snp)
|
|
#
|
|
# Determine if 'CC_ATTR_GUEST_SEV_SNP' is present.
|
|
#
|
|
# Added by commit aa5a461171f9 ("x86/mm: Extend cc_attr to
|
|
# include AMD SEV-SNP") in v5.19.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_CC_PLATFORM_H_PRESENT)
|
|
#include <linux/cc_platform.h>
|
|
#endif
|
|
|
|
enum cc_attr cc_attributes = CC_ATTR_GUEST_SEV_SNP;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_CC_ATTR_SEV_SNP" "" "types"
|
|
;;
|
|
|
|
hv_get_isolation_type)
|
|
#
|
|
# Determine if 'hv_get_isolation_type()' is present.
|
|
# Added by commit faff44069ff5 ("x86/hyperv: Add Write/Read MSR
|
|
# registers via ghcb page") in v5.16.
|
|
#
|
|
CODE="
|
|
#if defined(NV_ASM_MSHYPERV_H_PRESENT)
|
|
#include <asm/mshyperv.h>
|
|
#endif
|
|
void conftest_hv_get_isolation_type(void) {
|
|
int i;
|
|
hv_get_isolation_type(i);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_HV_GET_ISOLATION_TYPE" "" "functions"
|
|
;;
|
|
|
|
drm_prime_pages_to_sg_has_drm_device_arg)
|
|
#
|
|
# Determine if drm_prime_pages_to_sg() has 'dev' argument.
|
|
#
|
|
# drm_prime_pages_to_sg() is updated to take 'dev' argument by
|
|
# commit 707d561f77b5 ("drm: allow limiting the scatter list
|
|
# size.") in v5.10.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#include <drm/drm_prime.h>
|
|
|
|
struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
|
|
struct page **pages,
|
|
unsigned int nr_pages) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_PRIME_PAGES_TO_SG_HAS_DRM_DEVICE_ARG" "" "types"
|
|
;;
|
|
|
|
drm_driver_has_gem_prime_callbacks)
|
|
#
|
|
# Determine if drm_driver structure has the GEM and PRIME callback
|
|
# function pointers.
|
|
#
|
|
# The GEM and PRIME callbacks are removed from drm_driver
|
|
# structure by commit d693def4fd1c ("drm: Remove obsolete GEM and
|
|
# PRIME callbacks from struct drm_driver") in v5.11.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
void conftest_drm_driver_has_gem_and_prime_callbacks(void) {
|
|
struct drm_driver drv;
|
|
|
|
drv.gem_prime_pin = 0;
|
|
drv.gem_prime_get_sg_table = 0;
|
|
drv.gem_prime_vmap = 0;
|
|
drv.gem_prime_vunmap = 0;
|
|
drv.gem_vm_ops = 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_PRIME_CALLBACKS" "" "types"
|
|
;;
|
|
|
|
drm_crtc_atomic_check_has_atomic_state_arg)
|
|
#
|
|
# Determine if drm_crtc_helper_funcs::atomic_check takes 'state'
|
|
# argument of 'struct drm_atomic_state' type.
|
|
#
|
|
# Commit 29b77ad7b9ca ("drm/atomic: Pass the full state to CRTC
|
|
# atomic_check") in v5.11 passed the full atomic state to
|
|
# drm_crtc_helper_funcs::atomic_check()
|
|
#
|
|
# To test the signature of drm_crtc_helper_funcs::atomic_check(),
|
|
# declare a function prototype with typeof ::atomic_check(), and then
|
|
# define the corresponding function implementation with the expected
|
|
# signature. Successful compilation indicates that ::atomic_check()
|
|
# has the expected signature.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <drm/drm_modeset_helper_vtables.h>
|
|
|
|
static const struct drm_crtc_helper_funcs *funcs;
|
|
typeof(*funcs->atomic_check) conftest_drm_crtc_atomic_check_has_atomic_state_arg;
|
|
|
|
int conftest_drm_crtc_atomic_check_has_atomic_state_arg(
|
|
struct drm_crtc *crtc, struct drm_atomic_state *state) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types"
|
|
else
|
|
echo "#undef NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types"
|
|
fi
|
|
;;
|
|
|
|
drm_gem_object_vmap_has_map_arg)
|
|
#
|
|
# Determine if drm_gem_object_funcs::vmap takes 'map'
|
|
# argument of 'struct dma_buf_map' type.
|
|
#
|
|
# drm_gem_object_funcs::vmap is updated to take 'map' argument by
|
|
# commit 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM
|
|
# vmap ops and convert GEM backends") in v5.11.
|
|
#
|
|
# Note that the 'map' argument type is changed from 'struct dma_buf_map'
|
|
# to 'struct iosys_map' by commit 7938f4218168 ("dma-buf-map: Rename
|
|
# to iosys-map) in v5.18.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_gem.h>
|
|
int conftest_drm_gem_object_vmap_has_map_arg(
|
|
struct drm_gem_object *obj) {
|
|
return obj->funcs->vmap(obj, NULL);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_VMAP_HAS_MAP_ARG" "" "types"
|
|
;;
|
|
|
|
seq_read_iter)
|
|
#
|
|
# Determine if seq_read_iter() is present
|
|
#
|
|
# seq_read_iter() was added by commit d4d50710a8b4 ("seq_file:
|
|
# add seq_read_iter") in v5.10.
|
|
#
|
|
CODE="
|
|
#include <linux/seq_file.h>
|
|
void conftest_seq_read_iter(void) {
|
|
seq_read_iter();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SEQ_READ_ITER_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_class_multimedia_hd_audio)
|
|
#
|
|
# Determine if 'PCI_CLASS_MULTIMEDIA_HD_AUDIO' macro is present
|
|
# in <linux/pci_ids.h>.
|
|
#
|
|
# The commit 07f4f97d7b4b ("vga_switcheroo: Use device link for HDA
|
|
# controller") has moved 'PCI_CLASS_MULTIMEDIA_HD_AUDIO' macro from
|
|
# <sound/hdaudio.h> to <linux/pci_ids.h> in v4.17.
|
|
#
|
|
CODE="
|
|
#include <linux/pci_ids.h>
|
|
unsigned int conftest_pci_class_multimedia_hd_audio(void) {
|
|
return PCI_CLASS_MULTIMEDIA_HD_AUDIO;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_CLASS_MULTIMEDIA_HD_AUDIO_PRESENT" "" "generic"
|
|
;;
|
|
|
|
follow_pfn)
|
|
#
|
|
# Determine if follow_pfn() is present.
|
|
#
|
|
# follow_pfn() was added by commit 3b6748e2dd69
|
|
# ("mm: introduce follow_pfn()") in v2.6.31-rc1, and removed
|
|
# by commit 233eb0bf3b94 ("mm: remove follow_pfn")
|
|
# from linux-next 233eb0bf3b94.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_follow_pfn(void) {
|
|
follow_pfn();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_FOLLOW_PFN_PRESENT" "" "functions"
|
|
;;
|
|
|
|
follow_pte_arg_vma)
|
|
#
|
|
# Determine if the first argument of follow_pte is
|
|
# mm_struct or vm_area_struct.
|
|
#
|
|
# The first argument was changed from mm_struct to vm_area_struct by
|
|
# commit 29ae7d96d166 ("mm: pass VMA instead of MM to follow_pte()")
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
|
|
typeof(follow_pte) conftest_follow_pte_has_vma_arg;
|
|
int conftest_follow_pte_has_vma_arg(struct vm_area_struct *vma,
|
|
unsigned long address,
|
|
pte_t **ptep,
|
|
spinlock_t **ptl) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_FOLLOW_PTE_ARG1_VMA" "" "types"
|
|
;;
|
|
|
|
dma_buf_ops_attach_has_arg_dev)
|
|
#
|
|
# Determine if the .attach callback in struct dma_buf_ops
|
|
# has second arg as struct device*.
|
|
#
|
|
# This callback had struct device* when dma-buf was first introduced
|
|
# in commit d15bd7ee445d
|
|
# ("dma-buf: Introduce dma buffer sharing mechanism") in v3.3.
|
|
#
|
|
# The struct device arg was removed by commit a19741e5e5a9
|
|
# ("dma_buf: remove device parameter from attach callback v2") in v4.19.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-buf.h>
|
|
|
|
static const struct dma_buf_ops *funcs;
|
|
typeof(*funcs->attach) conftest_dma_buf_ops_attach_has_dev_arg;
|
|
int conftest_dma_buf_ops_attach_has_dev_arg(struct dma_buf *buf,
|
|
struct device *dev,
|
|
struct dma_buf_attachment *attach) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_BUF_OPS_ATTACH_ARG2_DEV" "" "types"
|
|
;;
|
|
|
|
ptep_get)
|
|
#
|
|
# Determine if ptep_get() is present.
|
|
#
|
|
# ptep_get() was added by commit 481e980a7c19
|
|
# ("mm: Allow arches to provide ptep_get()")
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_ptep_get(void) {
|
|
ptep_get();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PTEP_GET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_plane_atomic_check_has_atomic_state_arg)
|
|
#
|
|
# Determine if drm_plane_helper_funcs::atomic_check takes 'state'
|
|
# argument of 'struct drm_atomic_state' type.
|
|
#
|
|
# Commit 7c11b99a8e58 ("drm/atomic: Pass the full state to planes
|
|
# atomic_check") in v5.13 passes the full atomic state to
|
|
# drm_plane_helper_funcs::atomic_check()
|
|
#
|
|
# To test the signature of drm_plane_helper_funcs::atomic_check(),
|
|
# declare a function prototype with typeof ::atomic_check(), and then
|
|
# define the corresponding function implementation with the expected
|
|
# signature. Successful compilation indicates that ::atomic_check()
|
|
# has the expected signature.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <drm/drm_modeset_helper_vtables.h>
|
|
|
|
static const struct drm_plane_helper_funcs *funcs;
|
|
typeof(*funcs->atomic_check) conftest_drm_plane_atomic_check_has_atomic_state_arg;
|
|
|
|
int conftest_drm_plane_atomic_check_has_atomic_state_arg(
|
|
struct drm_plane *plane, struct drm_atomic_state *state) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_DRM_PLANE_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types"
|
|
else
|
|
echo "#undef NV_DRM_PLANE_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types"
|
|
fi
|
|
;;
|
|
|
|
ib_peer_memory_symbols)
|
|
#
|
|
# Determine if the following symbols exist in Module.symvers:
|
|
# 1. ib_register_peer_memory_client
|
|
# 2. ib_unregister_peer_memory_client
|
|
# The conftest first checks in the kernel's own Module.symvers in
|
|
# the regular path. If the symbols are not found there, it's possible
|
|
# that MOFED is installed and check for these symbols in MOFED's
|
|
# Module.symvers whose path is different from the kernel's symvers.
|
|
#
|
|
# Note: KERNELRELEASE and ARCH are defined by Kbuild and automatically
|
|
# passed down to conftest.sh as env vars.
|
|
|
|
MLNX_OFED_KERNEL_DIR=/usr/src/ofa_kernel
|
|
VAR_DKMS_SOURCES_DIR=$(test -d /var/lib/dkms/mlnx-ofed-kernel &&
|
|
ls -d /var/lib/dkms/mlnx-ofed-kernel/*/build 2>/dev/null)
|
|
|
|
if check_for_ib_peer_memory_symbols "$OUTPUT" || \
|
|
check_for_ib_peer_memory_symbols "$MLNX_OFED_KERNEL_DIR/$ARCH/$KERNELRELEASE" || \
|
|
check_for_ib_peer_memory_symbols "$MLNX_OFED_KERNEL_DIR/$KERNELRELEASE" || \
|
|
check_for_ib_peer_memory_symbols "$MLNX_OFED_KERNEL_DIR/default" || \
|
|
check_for_ib_peer_memory_symbols "$VAR_DKMS_SOURCES_DIR"; then
|
|
echo "#define NV_MLNX_IB_PEER_MEM_SYMBOLS_PRESENT" | append_conftest "symbols"
|
|
else
|
|
echo "#undef NV_MLNX_IB_PEER_MEM_SYMBOLS_PRESENT" | append_conftest "symbols"
|
|
fi
|
|
;;
|
|
|
|
add_memory_driver_managed)
|
|
#
|
|
# Determine if the add_memory_driver_managed function is present
|
|
#
|
|
# Added by commit 7b7b27214bba ("mm/memory_hotplug: introduce
|
|
# add_memory_driver_managed()") in v5.8.
|
|
#
|
|
# Before commit 3a0aaefe4134 ("mm/memory_hotplug: guard more
|
|
# declarations by CONFIG_MEMORY_HOTPLUG") in v5.10, the
|
|
# add_memory_driver_managed() was not guarded.
|
|
#
|
|
CODE="
|
|
#include <linux/memory_hotplug.h>
|
|
void conftest_add_memory_driver_managed() {
|
|
#if defined(CONFIG_MEMORY_HOTPLUG)
|
|
add_memory_driver_managed();
|
|
#endif
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ADD_MEMORY_DRIVER_MANAGED_PRESENT" "" "functions"
|
|
;;
|
|
|
|
add_memory_driver_managed_has_mhp_flags_arg)
|
|
#
|
|
# Check if add_memory_driver_managed() has mhp_flags arg.
|
|
#
|
|
# Added by commit b6117199787c ("mm/memory_hotplug: prepare
|
|
# passing flags to add_memory() and friends") in v5.10.
|
|
#
|
|
CODE="
|
|
#include <linux/memory_hotplug.h>
|
|
int add_memory_driver_managed(int nid, u64 start, u64 size,
|
|
const char *resource_name,
|
|
mhp_t mhp_flags) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ADD_MEMORY_DRIVER_MANAGED_HAS_MHP_FLAGS_ARG" "" "types"
|
|
;;
|
|
|
|
remove_memory_has_nid_arg)
|
|
#
|
|
# Check if remove_memory() has nid parameter.
|
|
#
|
|
# Removed by commit e1c158e49566 ("mm/memory_hotplug: remove nid
|
|
# parameter from remove_memory() and friends") in v5.15.
|
|
#
|
|
CODE="
|
|
#include <linux/memory_hotplug.h>
|
|
int remove_memory(int nid, u64 start, u64 size) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_REMOVE_MEMORY_HAS_NID_ARG" "" "types"
|
|
;;
|
|
|
|
offline_and_remove_memory)
|
|
#
|
|
# Determine if the offline_and_remove_memory function is present.
|
|
#
|
|
# Added by commit 08b3acd7a68f ("mm/memory_hotplug: Introduce
|
|
# offline_and_remove_memory()") in v5.8.
|
|
#
|
|
CODE="
|
|
#include <linux/memory_hotplug.h>
|
|
void conftest_offline_and_remove_memory() {
|
|
offline_and_remove_memory();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OFFLINE_AND_REMOVE_MEMORY_PRESENT" "" "functions"
|
|
;;
|
|
|
|
of_property_for_each_u32_has_internal_args)
|
|
#
|
|
# Determine if the internal arguments for the macro
|
|
# of_property_for_each_u32() are present.
|
|
#
|
|
# Commit 9722c3b66e21 ("of: remove internal arguments from
|
|
# of_property_for_each_u32()") removes two arguments from
|
|
# of_property_for_each_u32() which are used internally within
|
|
# the macro and so do not need to be passed. This change was
|
|
# made for Linux v6.11.
|
|
#
|
|
CODE="
|
|
#include <linux/of.h>
|
|
void conftest_of_property_for_each_u32(struct device_node *np,
|
|
char *propname) {
|
|
struct property *iparam1;
|
|
const __be32 *iparam2;
|
|
u32 val;
|
|
|
|
of_property_for_each_u32(np, propname, iparam1, iparam2, val);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_PROPERTY_FOR_EACH_U32_HAS_INTERNAL_ARGS" "" "types"
|
|
;;
|
|
|
|
of_dma_configure)
|
|
#
|
|
# Determine how many arguments of_dma_configure() takes.
|
|
#
|
|
# It began taking a third parameter with commit 3d6ce86ee794
|
|
# ("drivers: remove force dma flag from buses") in v4.18.
|
|
#
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/of_device.h>
|
|
void conftest_of_dma_configure(void) {
|
|
of_dma_configure(NULL, NULL, false);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_OF_DMA_CONFIGURE_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_OF_DMA_CONFIGURE_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
icc_get)
|
|
#
|
|
# Determine if icc_get() function is present
|
|
#
|
|
# Added by commit 11f1ceca7031 ("interconnect: Add generic
|
|
# on-chip interconnect API") in v5.1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_INTERCONNECT_H_PRESENT)
|
|
#include <linux/interconnect.h>
|
|
#endif
|
|
void conftest_icc_get(void)
|
|
{
|
|
icc_get();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_ICC_GET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
devm_of_icc_get)
|
|
#
|
|
# Determine if devm_of_icc_get() function is present
|
|
#
|
|
# Added by commit e145d9a ("interconnect: Add devm_of_icc_get() as
|
|
# exported API for user interconnect API")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_INTERCONNECT_H_PRESENT)
|
|
#include <linux/interconnect.h>
|
|
#endif
|
|
void conftest_devm_of_icc_get(void)
|
|
{
|
|
devm_of_icc_get();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_DEVM_ICC_GET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
icc_set_bw)
|
|
#
|
|
# Determine if icc_set_bw() function is present
|
|
#
|
|
# Added by commit 11f1ceca7031 ("interconnect: Add generic
|
|
# on-chip interconnect API") in v5.1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_INTERCONNECT_H_PRESENT)
|
|
#include <linux/interconnect.h>
|
|
#endif
|
|
void conftest_icc_set_bw(void)
|
|
{
|
|
icc_set_bw();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_ICC_SET_BW_PRESENT" "" "functions"
|
|
;;
|
|
|
|
icc_put)
|
|
#
|
|
# Determine if icc_put() function is present
|
|
#
|
|
# Added by commit 11f1ceca7031 ("interconnect: Add generic
|
|
# on-chip interconnect API") in v5.1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_INTERCONNECT_H_PRESENT)
|
|
#include <linux/interconnect.h>
|
|
#endif
|
|
void conftest_icc_put(void)
|
|
{
|
|
icc_put();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_ICC_PUT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
i2c_new_client_device)
|
|
#
|
|
# Determine if i2c_new_client_device() function is present
|
|
#
|
|
# Added by commit 390fd0475af5 ("i2c: remove deprecated
|
|
# i2c_new_device API") in v5.8.
|
|
#
|
|
CODE="
|
|
#include <linux/i2c.h>
|
|
void conftest_i2c_new_client_device(void)
|
|
{
|
|
i2c_new_client_device();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_I2C_NEW_CLIENT_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
migrate_vma_added_flags)
|
|
#
|
|
# Determine if migrate_vma structure has flags
|
|
#
|
|
# Added by commit 5143192cd410 ("mm/migrate: add a flags
|
|
# parameter to migrate_vma") in v5.9.
|
|
#
|
|
CODE="
|
|
#include <linux/migrate.h>
|
|
int conftest_migrate_vma_added_flags(void) {
|
|
return offsetof(struct migrate_vma, flags);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MIGRATE_VMA_FLAGS_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_device_has_pdev)
|
|
#
|
|
# Determine if the 'drm_device' structure has a 'pdev' field.
|
|
#
|
|
# Removed by commit b347e04452ff ("drm: Remove pdev field from
|
|
# struct drm_device") in v5.14.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_device.h>
|
|
|
|
int conftest_drm_device_has_pdev(void) {
|
|
return offsetof(struct drm_device, pdev);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DEVICE_HAS_PDEV" "" "types"
|
|
;;
|
|
|
|
migrate_device_range)
|
|
#
|
|
# Determine if the migrate_device_range() function is present
|
|
#
|
|
# migrate_device_range() function was added by commit
|
|
# e778406b40dbb ("mm/migrate_device.c: add migrate_device_range()")
|
|
# in v6.1 (2022-09-28).
|
|
CODE="
|
|
#include <linux/migrate.h>
|
|
int conftest_migrate_device_range(void) {
|
|
migrate_device_range();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MIGRATE_DEVICE_RANGE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioasid_get)
|
|
#
|
|
# Determine if ioasid_get() function is present
|
|
#
|
|
# Added by commit cb4789b0d19f ("iommu/ioasid: Add ioasid
|
|
# references") in v5.11.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_IOASID_H_PRESENT)
|
|
#include <linux/ioasid.h>
|
|
#endif
|
|
void conftest_ioasid_get(void) {
|
|
ioasid_get();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOASID_GET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mm_pasid_drop)
|
|
#
|
|
# Determine if mm_pasid_drop() function is present
|
|
#
|
|
# Added by commit 701fac40384f ("iommu/sva: Assign a PASID to mm
|
|
# on PASID allocation and free it on mm exit") in v5.18.
|
|
# Moved to linux/iommu.h in commit cd3891158a77 ("iommu/sva: Move
|
|
# PASID helpers to sva code") in v6.4.
|
|
#
|
|
CODE="
|
|
#include <linux/sched/mm.h>
|
|
#include <linux/iommu.h>
|
|
void conftest_mm_pasid_drop(void) {
|
|
mm_pasid_drop();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MM_PASID_DROP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
iommu_is_dma_domain)
|
|
#
|
|
# Determine if iommu_is_dma_domain() function is present
|
|
# this also assumes that iommu_get_domain_for_dev() function is
|
|
# present.
|
|
#
|
|
# Added by commit bf3aed4660c6 ("iommu: Introduce explicit type
|
|
# for non-strict DMA domains") in v5.15
|
|
#
|
|
CODE="
|
|
#include <linux/iommu.h>
|
|
void conftest_iommu_is_dma_domain(void) {
|
|
iommu_is_dma_domain();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOMMU_IS_DMA_DOMAIN_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_crtc_state_has_no_vblank)
|
|
#
|
|
# Determine if the 'drm_crtc_state' structure has 'no_vblank'.
|
|
#
|
|
# Added by commit b25c60af7a87 ("drm/crtc: Add a generic
|
|
# infrastructure to fake VBLANK events") in v4.19.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
void conftest_drm_crtc_state_has_no_vblank(void) {
|
|
struct drm_crtc_state foo;
|
|
(void)foo.no_vblank;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_STATE_HAS_NO_VBLANK" "" "types"
|
|
;;
|
|
|
|
drm_mode_config_has_allow_fb_modifiers)
|
|
#
|
|
# Determine if the 'drm_mode_config' structure has
|
|
# an 'allow_fb_modifiers' field.
|
|
#
|
|
# an 'allow_fb_modifiers' field in the 'drm_mode_config' structure,
|
|
# is added by commit e3eb3250d84e ("drm: add support for
|
|
# tiled/compressed/etc modifier in addfb2") in v4.1, and removed by
|
|
# commit 3d082157a242 ("drm: remove allow_fb_modifiers") in v5.18.
|
|
#
|
|
# The 'struct drm_mode_config' definition, is moved to
|
|
# drm_mode_config.h file by commit 28575f165d36 ("drm: Extract
|
|
# drm_mode_config.[hc]") in v4.10.
|
|
#
|
|
CODE="$CONFTEST_PREAMBLE
|
|
#include <drm/drm_mode_config.h>
|
|
int conftest_drm_mode_config_has_allow_fb_modifiers(void) {
|
|
return offsetof(struct drm_mode_config, allow_fb_modifiers);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_MODE_CONFIG_HAS_ALLOW_FB_MODIFIERS" "" "types"
|
|
;;
|
|
|
|
drm_has_hdr_output_metadata)
|
|
#
|
|
# Determine if drm_mode.h has 'hdr_output_metadata' structure.
|
|
#
|
|
# Added by commit fbb5d0353c62 ("drm: Add HDR source metadata
|
|
# property") in v5.3.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_mode.h>
|
|
void conftest_drm_has_hdr_output_metadata(void) {
|
|
struct hdr_output_metadata foo;
|
|
(void)foo;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_HAS_HDR_OUTPUT_METADATA" "" "types"
|
|
;;
|
|
|
|
uts_release)
|
|
#
|
|
# print the kernel's UTS_RELEASE string.
|
|
#
|
|
echo "#include <generated/utsrelease.h>
|
|
UTS_RELEASE" > conftest$$.c
|
|
|
|
$CC $CFLAGS -E -P conftest$$.c
|
|
rm -f conftest$$.c
|
|
;;
|
|
|
|
pcie_reset_flr)
|
|
#
|
|
# Determine if the pcie_reset_flr() function is present
|
|
#
|
|
# Added by commit 56f107d ("PCI: Add pcie_reset_flr() with
|
|
# 'probe' argument") in v5.15.
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
int conftest_pcie_reset_flr(void) {
|
|
return pcie_reset_flr();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_PCIE_RESET_FLR_PRESENT" "" "functions"
|
|
;;
|
|
|
|
devm_clk_bulk_get_all)
|
|
#
|
|
# Determine if devm_clk_bulk_get_all() function is present
|
|
#
|
|
# Added by commit f08c2e2865f6 ("clk: add managed version of
|
|
# clk_bulk_get_all") in v4.20.
|
|
#
|
|
CODE="
|
|
#include <linux/clk.h>
|
|
void conftest_devm_clk_bulk_get_all(void)
|
|
{
|
|
devm_clk_bulk_get_all();
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_DEVM_CLK_BULK_GET_ALL_PRESENT" "" "functions"
|
|
;;
|
|
|
|
thermal_zone_for_each_trip)
|
|
#
|
|
# Determine if thermal_zone_for_each_trip() function is present
|
|
#
|
|
# Added by commit a56cc0a83385 ("thermal: core: Add function to
|
|
# walk trips under zone lock") in v6.6-rc3
|
|
#
|
|
CODE="
|
|
#include <linux/thermal.h>
|
|
void conftest_thermal_zone_for_each_trip(void)
|
|
{
|
|
thermal_zone_for_each_trip();
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_THERMAL_ZONE_FOR_EACH_TRIP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
thermal_bind_cdev_to_trip)
|
|
#
|
|
# Determine if thermal_bind_cdev_to_trip() function is present
|
|
#
|
|
# Added by commit d069ed6b752f ("thermal: core: Allow trip
|
|
# pointers to be used for cooling device binding") in v6.6-rc3
|
|
#
|
|
CODE="
|
|
#include <linux/thermal.h>
|
|
void conftest_thermal_bind_cdev_to_trip(void)
|
|
{
|
|
thermal_bind_cdev_to_trip();
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_THERMAL_BIND_CDEV_TO_TRIP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
thermal_unbind_cdev_from_trip)
|
|
#
|
|
# Determine if thermal_unbind_cdev_from_trip() function is present
|
|
#
|
|
# Added by commit d069ed6b752f ("thermal: core: Allow trip
|
|
# pointers to be used for cooling device binding") in v6.6-rc3
|
|
#
|
|
CODE="
|
|
#include <linux/thermal.h>
|
|
void conftest_thermal_unbind_cdev_from_trip(void)
|
|
{
|
|
thermal_unbind_cdev_from_trip();
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_THERMAL_UNBIND_CDEV_FROM_TRIP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
update_devfreq)
|
|
#
|
|
# Determine if update_devfreq() function is present
|
|
#
|
|
# Added by commit b596d895fa29 ("PM / devfreq: Make update_devfreq()
|
|
# public") in v4.20
|
|
#
|
|
CODE="
|
|
#include <linux/devfreq.h>
|
|
void conftest_update_devfreq(void)
|
|
{
|
|
update_devfreq();
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_UPDATE_DEVFREQ_PRESENT" "" "functions"
|
|
;;
|
|
|
|
devfreq_dev_profile_has_is_cooling_device)
|
|
#
|
|
# Determine if the 'devfreq_dev_profile' structure has 'is_cooling_device'
|
|
#
|
|
# Added by commit 1224451bb6f93 ("PM / devfreq: Register devfreq as a cooling device
|
|
# on demand") in v5.12-rc1
|
|
#
|
|
CODE="
|
|
#include <linux/devfreq.h>
|
|
int conftest_devfreq_dev_profile_has_is_cooling_device(void) {
|
|
return offsetof(struct devfreq_dev_profile, is_cooling_device);
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_DEVFREQ_DEV_PROFILE_HAS_IS_COOLING_DEVICE" "" "types"
|
|
;;
|
|
|
|
devfreq_has_freq_table)
|
|
#
|
|
# Determine if the 'devfreq' structure has 'freq_table'
|
|
#
|
|
# Commit b5d281f6c16d ("PM / devfreq: Rework freq_table
|
|
# to be local to devfreq struct") updated the devfreq
|
|
# and add the freq_table field in v5.19.
|
|
#
|
|
CODE="
|
|
#include <linux/devfreq.h>
|
|
int conftest_devfreq_has_freq_table(void) {
|
|
return offsetof(struct devfreq, freq_table);
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_DEVFREQ_HAS_FREQ_TABLE" "" "types"
|
|
;;
|
|
|
|
devfreq_has_suspend_freq)
|
|
#
|
|
# Determine if the 'devfreq' structure has 'suspend_freq'
|
|
#
|
|
# Commit 83f8ca45afbf ("PM / devfreq: add support for
|
|
# suspend/resume of a devfreq device") updated the devfreq
|
|
# and add the suspend_freq field in v5.0.
|
|
#
|
|
CODE="
|
|
#include <linux/devfreq.h>
|
|
int conftest_devfreq_has_suspend_freq(void) {
|
|
return offsetof(struct devfreq, suspend_freq);
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_DEVFREQ_HAS_SUSPEND_FREQ" "" "types"
|
|
;;
|
|
|
|
bpmp_mrq_has_strap_set)
|
|
#
|
|
# Determine if STRAP_SET is present in the bpmp MRQ ABI.
|
|
#
|
|
# STRAP_SET was added by commit 4bef358c9071 ("soc/tegra:
|
|
#bpmp: Update ABI header") in v5.0.
|
|
#
|
|
CODE="
|
|
#include <stdint.h>
|
|
#include <soc/tegra/bpmp-abi.h>
|
|
int bpmp_mrq_has_strap = STRAP_SET;
|
|
"
|
|
compile_check_conftest "$CODE" "NV_BPMP_MRQ_HAS_STRAP_SET" "" "types"
|
|
;;
|
|
|
|
dma_resv_add_fence)
|
|
#
|
|
# Determine if the dma_resv_add_fence() function is present.
|
|
#
|
|
# dma_resv_add_excl_fence() and dma_resv_add_shared_fence() were
|
|
# removed and replaced with dma_resv_add_fence() by commit
|
|
# 73511edf8b19 ("dma-buf: specify usage while adding fences to
|
|
# dma_resv obj v7") in v5.19.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_DMA_RESV_H_PRESENT)
|
|
#include <linux/dma-resv.h>
|
|
#endif
|
|
void conftest_dma_resv_add_fence(void) {
|
|
dma_resv_add_fence();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_RESV_ADD_FENCE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_resv_reserve_fences)
|
|
#
|
|
# Determine if the dma_resv_reserve_fences() function is present.
|
|
#
|
|
# dma_resv_reserve_shared() was removed and replaced with
|
|
# dma_resv_reserve_fences() by commit c8d4c18bfbc4
|
|
# ("dma-buf/drivers: make reserving a shared slot mandatory v4") in
|
|
# v5.19.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_DMA_RESV_H_PRESENT)
|
|
#include <linux/dma-resv.h>
|
|
#endif
|
|
void conftest_dma_resv_reserve_fences(void) {
|
|
dma_resv_reserve_fences();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_RESV_RESERVE_FENCES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
reservation_object_reserve_shared_has_num_fences_arg)
|
|
#
|
|
# Determine if reservation_object_reserve_shared() has 'num_fences'
|
|
# argument.
|
|
#
|
|
# reservation_object_reserve_shared() function prototype was updated
|
|
# to take 'num_fences' argument by commit ca05359f1e64 ("dma-buf:
|
|
# allow reserving more than one shared fence slot") in v5.0.
|
|
#
|
|
CODE="
|
|
#include <linux/reservation.h>
|
|
void conftest_reservation_object_reserve_shared_has_num_fences_arg(
|
|
struct reservation_object *obj,
|
|
unsigned int num_fences) {
|
|
(void) reservation_object_reserve_shared(obj, num_fences);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_RESERVATION_OBJECT_RESERVE_SHARED_HAS_NUM_FENCES_ARG" "" "types"
|
|
;;
|
|
|
|
get_task_ioprio)
|
|
#
|
|
# Determine if the __get_task_ioprio() function is present.
|
|
#
|
|
# Added by commit 893e5d32d583 ("block: Generalize
|
|
# get_current_ioprio() for any task") in v6.0.
|
|
#
|
|
CODE="
|
|
#include <linux/ioprio.h>
|
|
void conftest_get_task_ioprio(void) {
|
|
__get_task_ioprio();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_GET_TASK_IOPRIO_PRESENT" "" "functions"
|
|
;;
|
|
|
|
num_registered_fb)
|
|
#
|
|
# Determine if 'num_registered_fb' variable is present.
|
|
#
|
|
# Removed by commit 5727dcfd8486 ("fbdev: Make registered_fb[]
|
|
# private to fbmem.c") in v6.1.
|
|
#
|
|
CODE="
|
|
#include <linux/fb.h>
|
|
int conftest_num_registered_fb(void) {
|
|
return num_registered_fb;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_NUM_REGISTERED_FB_PRESENT" "" "types"
|
|
;;
|
|
|
|
acpi_video_register_backlight)
|
|
#
|
|
# Determine if acpi_video_register_backlight() function is present
|
|
#
|
|
# acpi_video_register_backlight was added by commit 3dbc80a3e4c55c
|
|
# (ACPI: video: Make backlight class device registration a separate
|
|
# step (v2)) for v6.0 (2022-09-02).
|
|
# Note: the include directive for <linux/types> in this conftest is
|
|
# necessary in order to support kernels between commit 0b9f7d93ca61
|
|
# ("ACPI / i915: ignore firmware requests backlight change") for
|
|
# v3.16 (2014-07-07) and commit 3bd6bce369f5 ("ACPI / video: Port
|
|
# to new backlight interface selection API") for v4.2 (2015-07-16).
|
|
# Kernels within this range use the 'bool' type and the related
|
|
# 'false' value in <acpi/video.h> without first including the
|
|
# definitions of that type and value.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#include <acpi/video.h>
|
|
void conftest_acpi_video_register_backlight(void) {
|
|
acpi_video_register_backlight(0);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ACPI_VIDEO_REGISTER_BACKLIGHT" "" "functions"
|
|
;;
|
|
|
|
acpi_video_backlight_use_native)
|
|
#
|
|
# Determine if acpi_video_backlight_use_native() function is present
|
|
#
|
|
# acpi_video_backlight_use_native was added by commit 2600bfa3df99
|
|
# (ACPI: video: Add acpi_video_backlight_use_native() helper) for
|
|
# v6.0 (2022-08-17). Note: the include directive for <linux/types.h>
|
|
# in this conftest is necessary in order to support kernels between
|
|
# commit 0b9f7d93ca61 ("ACPI / i915: ignore firmware requests for
|
|
# backlight change") for v3.16 (2014-07-07) and commit 3bd6bce369f5
|
|
# ("ACPI / video: Port to new backlight interface selection API")
|
|
# for v4.2 (2015-07-16). Kernels within this range use the 'bool'
|
|
# type and the related 'false' value in <acpi/video.h> without first
|
|
# including the definitions of that type and value.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#include <acpi/video.h>
|
|
void conftest_acpi_video_backglight_use_native(void) {
|
|
acpi_video_backlight_use_native(0);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ACPI_VIDEO_BACKLIGHT_USE_NATIVE" "" "functions"
|
|
;;
|
|
|
|
handle_mm_fault_has_pt_regs_arg)
|
|
#
|
|
# Determine if handle_mm_fault() has pt_regs argument.
|
|
#
|
|
# pt_regs argument was added to handle_mm_fault by commit
|
|
# bce617edecada007aee8610fbe2c14d10b8de2f6 (08/12/2020) ("mm: do
|
|
# page fault accounting in handle_mm_fault") in v5.9.
|
|
#
|
|
# To test if handle_mm_fault() has pt_regs argument, define a
|
|
# function with the expected signature and then define the
|
|
# corresponding function implementation with the expected signature.
|
|
# Successful compilation indicates that handle_mm_fault has the
|
|
# pt_regs argument.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
#include <linux/mm_types.h>
|
|
|
|
typeof(handle_mm_fault) conftest_handle_mm_fault_has_pt_regs_arg;
|
|
vm_fault_t conftest_handle_mm_fault_has_pt_regs_arg(struct vm_area_struct *vma,
|
|
unsigned long address,
|
|
unsigned int flags,
|
|
struct pt_regs *regs) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_HANDLE_MM_FAULT_HAS_PT_REGS_ARG" "" "types"
|
|
;;
|
|
|
|
pci_rebar_get_possible_sizes)
|
|
#
|
|
# Determine if the pci_rebar_get_possible_sizes() function is present.
|
|
#
|
|
# Added by commit 8fbdbb66f8c10 ("PCI: Add resizable BAR infrastructure
|
|
# ") in v5.12
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
void conftest_pci_rebar_get_possible_sizes(void) {
|
|
pci_rebar_get_possible_sizes();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_REBAR_GET_POSSIBLE_SIZES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_connector_has_override_edid)
|
|
#
|
|
# Determine if 'struct drm_connector' has an 'override_edid' member.
|
|
#
|
|
# Removed by commit 90b575f52c6a ("drm/edid: detach debugfs EDID
|
|
# override from EDID property update") in v6.2.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
#include <drm/drm_connector.h>
|
|
int conftest_drm_connector_has_override_edid(void) {
|
|
return offsetof(struct drm_connector, override_edid);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_HAS_OVERRIDE_EDID" "" "types"
|
|
;;
|
|
|
|
iommu_sva_bind_device_has_drvdata_arg)
|
|
#
|
|
# Check if iommu_sva_bind_device() has drvdata parameter.
|
|
#
|
|
# drvdata argument was removed by commit
|
|
# 942fd5435dccb273f90176b046ae6bbba60cfbd8 ("iommu: Remove
|
|
# SVM_FLAG_SUPERVISOR_MODE support") in v6.2 (2022-10-31)
|
|
#
|
|
CODE="
|
|
#include <linux/iommu.h>
|
|
#include <linux/mm_types.h>
|
|
#include <linux/device.h>
|
|
void conftest_iommu_sva_bind_device_has_drvdata_arg(struct device *dev,
|
|
struct mm_struct *mm,
|
|
void *drvdata) {
|
|
(void) iommu_sva_bind_device(dev, mm, drvdata);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOMMU_SVA_BIND_DEVICE_HAS_DRVDATA_ARG" "" "types"
|
|
;;
|
|
|
|
vm_area_struct_has_const_vm_flags)
|
|
#
|
|
# Determine if the 'vm_area_struct' structure has
|
|
# const 'vm_flags'.
|
|
#
|
|
# A union of '__vm_flags' and 'const vm_flags' was added by
|
|
# commit bc292ab00f6c ("mm: introduce vma->vm_flags wrapper
|
|
# functions") in v6.3.
|
|
#
|
|
CODE="
|
|
#include <linux/mm_types.h>
|
|
int conftest_vm_area_struct_has_const_vm_flags(void) {
|
|
return offsetof(struct vm_area_struct, __vm_flags);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS" "" "types"
|
|
;;
|
|
|
|
drm_driver_has_dumb_destroy)
|
|
#
|
|
# Determine if the 'drm_driver' structure has a 'dumb_destroy'
|
|
# function pointer.
|
|
#
|
|
# Removed by commit 96a7b60f6ddb ("drm: remove dumb_destroy
|
|
# callback") in v6.4.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
int conftest_drm_driver_has_dumb_destroy(void) {
|
|
return offsetof(struct drm_driver, dumb_destroy);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_DUMB_DESTROY" "" "types"
|
|
;;
|
|
|
|
memory_failure_queue_has_trapno_arg)
|
|
#
|
|
# Check if memory_failure_queue() has trapno parameter.
|
|
#
|
|
# Removed by commit 83b57531c58f ("mm/memory_failure: Remove
|
|
# unused trapno from memory_failure") in v4.16.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_memory_failure_queue_has_trapno_arg(unsigned long pfn,
|
|
int trapno,
|
|
int flags) {
|
|
memory_failure_queue(pfn, trapno, flags);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MEMORY_FAILURE_QUEUE_HAS_TRAPNO_ARG" "" "types"
|
|
;;
|
|
|
|
memory_failure_mf_sw_simulated_defined)
|
|
#
|
|
# Check if memory_failure() flag MF_SW_SIMULATED is defined.
|
|
#
|
|
# Added by commit 67f22ba7750f ("mm/memory-failure: disable
|
|
# unpoison once hw error happens") in v5.19.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
int conftest_memory_failure_mf_sw_simulated_defined(void) {
|
|
return MF_SW_SIMULATED;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MEMORY_FAILURE_MF_SW_SIMULATED_DEFINED" "" "types"
|
|
;;
|
|
|
|
fence_ops_use_64bit_seqno)
|
|
#
|
|
# Determine if dma_fence_ops has the use_64bit_seqno member
|
|
#
|
|
# 64-bit fence seqno support was actually added by commit
|
|
# b312d8ca3a7c ("dma-buf: make fence sequence numbers 64 bit v2")
|
|
# in v5.1, but the field to explicitly declare support for it
|
|
# didn't get added until commit 5e498abf1485 ("dma-buf:
|
|
# explicitely note that dma-fence-chains use 64bit seqno") in
|
|
# v5.2. Since it is currently trivial to work around the lack of
|
|
# native 64-bit seqno in our driver, we'll use the work-around path
|
|
# for kernels prior to v5.2 to avoid further ifdefing of the code.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-fence.h>
|
|
int conftest_fence_ops(void)
|
|
{
|
|
return offsetof(struct dma_fence_ops, use_64bit_seqno);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_FENCE_OPS_HAS_USE_64BIT_SEQNO" "" "types"
|
|
;;
|
|
|
|
drm_fbdev_generic_setup)
|
|
#
|
|
# Determine whether drm_fbdev_generic_setup is present.
|
|
#
|
|
# Added by commit 9060d7f49376 ("drm/fb-helper: Finish the
|
|
# generic fbdev emulation") in v4.19. Removed by commit
|
|
# aae4682e5d66 ("drm/fbdev-generic: Convert to fbdev-ttm")
|
|
# in v6.11.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_fb_helper.h>
|
|
#if defined(NV_DRM_DRM_FBDEV_GENERIC_H_PRESENT)
|
|
#include <drm/drm_fbdev_generic.h>
|
|
#endif
|
|
void conftest_drm_fbdev_generic_setup(void) {
|
|
drm_fbdev_generic_setup();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_FBDEV_GENERIC_SETUP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_fbdev_ttm_setup)
|
|
#
|
|
# Determine whether drm_fbdev_ttm_setup is present.
|
|
#
|
|
# Added by commit aae4682e5d66 ("drm/fbdev-generic:
|
|
# Convert to fbdev-ttm") in v6.11. Removed by commit
|
|
# 1000634477d8 ("drm/fbdev-ttm:Convert to client-setup") in v6.13.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_fb_helper.h>
|
|
#if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT)
|
|
#include <drm/drm_fbdev_ttm.h>
|
|
#endif
|
|
void conftest_drm_fbdev_ttm_setup(void) {
|
|
drm_fbdev_ttm_setup();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_FBDEV_TTM_SETUP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_client_setup)
|
|
#
|
|
# Determine whether drm_client_setup is present.
|
|
#
|
|
# Added by commit d07fdf922592 ("drm/fbdev-ttm: Convert to
|
|
# client-setup") in v6.13 in drm/drm_client_setup.h, but then moved
|
|
# to drm/clients/drm_client_setup.h by commit b86711c6d6e2
|
|
# ("drm/client: Move public client header to clients/ subdirectory")
|
|
# in linux-next b86711c6d6e2.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_fb_helper.h>
|
|
#if defined(NV_DRM_DRM_CLIENT_SETUP_H_PRESENT)
|
|
#include <drm/drm_client_setup.h>
|
|
#elif defined(NV_DRM_CLIENTS_DRM_CLIENT_SETUP_H_PRESENT)
|
|
#include <drm/clients/drm_client_setup.h>
|
|
#endif
|
|
void conftest_drm_client_setup(void) {
|
|
drm_client_setup();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CLIENT_SETUP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_output_poll_changed)
|
|
#
|
|
# Determine whether drm_mode_config_funcs.output_poll_changed
|
|
# callback is present
|
|
#
|
|
# Removed by commit 446d0f4849b1 ("drm: Remove struct
|
|
# drm_mode_config_funcs.output_poll_changed") in v6.12. Hotplug
|
|
# event support is handled through the fbdev emulation interface
|
|
# going forward.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_mode_config.h>
|
|
int conftest_drm_output_poll_changed_available(void) {
|
|
return offsetof(struct drm_mode_config_funcs, output_poll_changed);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_OUTPUT_POLL_CHANGED_PRESENT" "" "types"
|
|
;;
|
|
|
|
aperture_remove_conflicting_devices)
|
|
#
|
|
# Determine whether aperture_remove_conflicting_devices is present.
|
|
#
|
|
# Added by commit 7283f862bd991 ("drm: Implement DRM aperture
|
|
# helpers under video/") in v6.0
|
|
CODE="
|
|
#if defined(NV_LINUX_APERTURE_H_PRESENT)
|
|
#include <linux/aperture.h>
|
|
#endif
|
|
void conftest_aperture_remove_conflicting_devices(void) {
|
|
aperture_remove_conflicting_devices();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_APERTURE_REMOVE_CONFLICTING_DEVICES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
aperture_remove_conflicting_pci_devices)
|
|
#
|
|
# Determine whether aperture_remove_conflicting_pci_devices is present.
|
|
#
|
|
# Added by commit 7283f862bd991 ("drm: Implement DRM aperture
|
|
# helpers under video/") in v6.0
|
|
CODE="
|
|
#if defined(NV_LINUX_APERTURE_H_PRESENT)
|
|
#include <linux/aperture.h>
|
|
#endif
|
|
void conftest_aperture_remove_conflicting_pci_devices(void) {
|
|
aperture_remove_conflicting_pci_devices();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_APERTURE_REMOVE_CONFLICTING_PCI_DEVICES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_aperture_remove_conflicting_pci_framebuffers)
|
|
#
|
|
# Determine whether drm_aperture_remove_conflicting_pci_framebuffers is present.
|
|
#
|
|
# Added by commit 2916059147ea ("drm/aperture: Add infrastructure
|
|
# for aperture ownership") in v5.14.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_APERTURE_H_PRESENT)
|
|
#include <drm/drm_aperture.h>
|
|
#endif
|
|
void conftest_drm_aperture_remove_conflicting_pci_framebuffers(void) {
|
|
drm_aperture_remove_conflicting_pci_framebuffers();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_aperture_remove_conflicting_pci_framebuffers_has_driver_arg)
|
|
#
|
|
# Determine whether drm_aperture_remove_conflicting_pci_framebuffers
|
|
# takes a struct drm_driver * as its second argument.
|
|
#
|
|
# Prior to commit 97c9bfe3f6605d41eb8f1206e6e0f62b31ba15d6, the
|
|
# second argument was a char * pointer to the driver's name.
|
|
#
|
|
# To test if drm_aperture_remove_conflicting_pci_framebuffers() has
|
|
# a req_driver argument, define a function with the expected
|
|
# signature and then define the corresponding function
|
|
# implementation with the expected signature. Successful compilation
|
|
# indicates that this function has the expected signature.
|
|
#
|
|
# This change occurred in commit 97c9bfe3f660 ("drm/aperture: Pass
|
|
# DRM driver structure instead of driver name") in v5.15
|
|
# (2021-06-29).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_drv.h>
|
|
#if defined(NV_DRM_DRM_APERTURE_H_PRESENT)
|
|
#include <drm/drm_aperture.h>
|
|
#endif
|
|
typeof(drm_aperture_remove_conflicting_pci_framebuffers) conftest_drm_aperture_remove_conflicting_pci_framebuffers;
|
|
int conftest_drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev,
|
|
const struct drm_driver *req_driver)
|
|
{
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_HAS_DRIVER_ARG" "" "types"
|
|
;;
|
|
|
|
find_next_bit_wrap)
|
|
# Determine if 'find_next_bit_wrap' is defined.
|
|
#
|
|
# The function was added by commit 6cc18331a987 ("lib/find_bit:
|
|
# add find_next{,_and}_bit_wrap") in v6.1-rc1 (2022-09-19).
|
|
#
|
|
# Ideally, we would want to be able to include linux/find.h.
|
|
# However, linux/find.h does not allow direct inclusion. Rather
|
|
# it has to be included through linux/bitmap.h.
|
|
#
|
|
CODE="
|
|
#include <linux/bitmap.h>
|
|
void conftest_find_next_bit_wrap(void) {
|
|
(void)find_next_bit_wrap();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_FIND_NEXT_BIT_WRAP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
crypto_tfm_ctx_aligned)
|
|
# Determine if 'crypto_tfm_ctx_aligned' is defined.
|
|
#
|
|
# Removed by commit 25c74a39e0f6 ("crypto: hmac - remove unnecessary
|
|
# alignment logic") in v6.7.
|
|
#
|
|
CODE="
|
|
#include <crypto/algapi.h>
|
|
void conftest_crypto_tfm_ctx_aligned(void) {
|
|
(void)crypto_tfm_ctx_aligned();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_CRYPTO_TFM_CTX_ALIGNED_PRESENT" "" "functions"
|
|
;;
|
|
|
|
crypto)
|
|
#
|
|
# Determine if we support various crypto functions.
|
|
# This test is not complete and may return false positive.
|
|
#
|
|
CODE="
|
|
#include <crypto/akcipher.h>
|
|
#include <crypto/algapi.h>
|
|
#include <crypto/ecc_curve.h>
|
|
#include <crypto/ecdh.h>
|
|
#include <crypto/hash.h>
|
|
#include <crypto/internal/ecc.h>
|
|
#include <crypto/kpp.h>
|
|
#include <crypto/public_key.h>
|
|
#include <crypto/sm3.h>
|
|
#include <keys/asymmetric-type.h>
|
|
#include <linux/crypto.h>
|
|
void conftest_crypto(void) {
|
|
struct shash_desc sd;
|
|
struct crypto_shash cs;
|
|
(void)crypto_shash_tfm_digest;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_CRYPTO_PRESENT" "" "symbols"
|
|
;;
|
|
|
|
crypto_akcipher_verify)
|
|
#
|
|
# Determine whether the crypto_akcipher_verify API is still present.
|
|
# It was removed by commit 6b34562 ('crypto: akcipher - Drop sign/verify operations')
|
|
# in v6.13-rc1 (2024-10-04).
|
|
#
|
|
# This test is dependent on the crypto conftest to determine whether crypto should be
|
|
# enabled at all. That means that if the kernel is old enough such that crypto_akcipher_verify
|
|
#
|
|
# The test merely checks for the presence of the API, as it assumes that if the API
|
|
# is no longer present, the new API to replace it (crypto_sig_verify) must be present.
|
|
# If the kernel version is too old to have crypto_akcipher_verify, it will fail the crypto
|
|
# conftest above and all crypto code will be compiled out.
|
|
#
|
|
CODE="
|
|
#include <crypto/akcipher.h>
|
|
#include <linux/crypto.h>
|
|
void conftest_crypto_akcipher_verify(void) {
|
|
(void)crypto_akcipher_verify;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_CRYPTO_AKCIPHER_VERIFY_PRESENT" "" "symbols"
|
|
;;
|
|
|
|
ecc_digits_from_bytes)
|
|
#
|
|
# Determine whether ecc_digits_from_bytes is present.
|
|
# It was added in commit c6ab5c915da4 ('crypto: ecc - Prevent ecc_digits_from_bytes from
|
|
# reading too many bytes') in v6.10.
|
|
#
|
|
# This functionality is needed when crypto_akcipher_verify is not present.
|
|
#
|
|
CODE="
|
|
#include <linux/math.h>
|
|
#include <crypto/internal/ecc.h>
|
|
void conftest_ecc_digits_from_bytes(void) {
|
|
(void)ecc_digits_from_bytes;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ECC_DIGITS_FROM_BYTES_PRESENT" "" "symbols"
|
|
;;
|
|
|
|
mempolicy_has_unified_nodes)
|
|
#
|
|
# Determine if the 'mempolicy' structure has
|
|
# nodes union.
|
|
#
|
|
# nodes field was added by commit 269fbe72cd ("mm/mempolicy:
|
|
# use unified 'nodes' for bind/interleave/prefer policies") in
|
|
# v5.14 (2021-06-30).
|
|
#
|
|
CODE="
|
|
#include <linux/mempolicy.h>
|
|
int conftest_mempolicy_has_unified_nodes(void) {
|
|
return offsetof(struct mempolicy, nodes);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MEMPOLICY_HAS_UNIFIED_NODES" "" "types"
|
|
;;
|
|
|
|
mempolicy_has_home_node)
|
|
#
|
|
# Determine if the 'mempolicy' structure has
|
|
# home_node field.
|
|
#
|
|
# home_node field was added by commit c6018b4b254
|
|
# ("mm/mempolicy: add set_mempolicy_home_node syscall") in v5.17
|
|
# (2022-01-14).
|
|
#
|
|
CODE="
|
|
#include <linux/mempolicy.h>
|
|
int conftest_mempolicy_has_home_node(void) {
|
|
return offsetof(struct mempolicy, home_node);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MEMPOLICY_HAS_HOME_NODE" "" "types"
|
|
;;
|
|
|
|
mpol_preferred_many_present)
|
|
#
|
|
# Determine if MPOL_PREFERRED_MANY enum is present or not
|
|
#
|
|
# Added by commit b27abaccf8e8b ("mm/mempolicy: add
|
|
# MPOL_PREFERRED_MANY for multiple preferred nodes") in
|
|
# v5.15
|
|
#
|
|
CODE="
|
|
#include <linux/mempolicy.h>
|
|
int mpol_preferred_many = MPOL_PREFERRED_MANY;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_MPOL_PREFERRED_MANY_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_connector_attach_hdr_output_metadata_property)
|
|
#
|
|
# Determine if the function
|
|
# drm_connector_attach_hdr_output_metadata_property() is present.
|
|
#
|
|
# Added by commit e057b52c1d90 ("drm/connector: Create a helper to
|
|
# attach the hdr_output_metadata property") in v5.14.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
#include <drm/drm_connector.h>
|
|
|
|
void conftest_drm_connector_attach_hdr_output_metadata_property(void) {
|
|
drm_connector_attach_hdr_output_metadata_property();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_ATTACH_HDR_OUTPUT_METADATA_PROPERTY_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mmu_interval_notifier)
|
|
#
|
|
# Determine if mmu_interval_notifier struct is present or not
|
|
#
|
|
# Added by commit 99cb252f5 ("mm/mmu_notifier: add an interval tree
|
|
# notifier") in v5.10 (2019-11-12).
|
|
#
|
|
CODE="
|
|
#include <linux/mmu_notifier.h>
|
|
struct mmu_interval_notifier interval_notifier;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_MMU_INTERVAL_NOTIFIER" "" "types"
|
|
;;
|
|
|
|
drm_mode_create_dp_colorspace_property_has_supported_colorspaces_arg)
|
|
# Determine if drm_mode_create_dp_colorspace_property() takes the
|
|
# 'supported_colorspaces' argument.
|
|
#
|
|
# The 'u32 supported_colorspaces' argument was added to
|
|
# drm_mode_create_dp_colorspace_property() by commit
|
|
# c265f340eaa8 ("drm/connector: Allow drivers to pass list of
|
|
# supported colorspaces") in v6.5.
|
|
#
|
|
# To test if drm_mode_create_dp_colorspace_property() has the
|
|
# 'supported_colorspaces' argument, declare a function prototype
|
|
# with typeof drm_mode_create_dp_colorspace_property and then
|
|
# define the corresponding function implementation with the
|
|
# expected signature. Successful compilation indicates that
|
|
# drm_mode_create_dp_colorspace_property() has the
|
|
# 'supported_colorspaces' argument.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
#include <drm/drm_connector.h>
|
|
|
|
typeof(drm_mode_create_dp_colorspace_property) conftest_drm_mode_create_dp_colorspace_property_has_supported_colorspaces_arg;
|
|
int conftest_drm_mode_create_dp_colorspace_property_has_supported_colorspaces_arg(struct drm_connector *connector,
|
|
u32 supported_colorspaces)
|
|
{
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_MODE_CREATE_DP_COLORSPACE_PROPERTY_HAS_SUPPORTED_COLORSPACES_ARG" "" "types"
|
|
;;
|
|
|
|
drm_syncobj_features_present)
|
|
# Determine if DRIVER_SYNCOBJ and DRIVER_SYNCOBJ_TIMELINE DRM
|
|
# driver features are present. Timeline DRM synchronization objects
|
|
# may only be used if both of these are supported by the driver.
|
|
#
|
|
# DRIVER_SYNCOBJ_TIMELINE Added by commit 060cebb20cdb ("drm:
|
|
# introduce a capability flag for syncobj timeline support") in
|
|
# v5.2
|
|
#
|
|
# DRIVER_SYNCOBJ Added by commit e9083420bbac ("drm: introduce
|
|
# sync objects (v4)") in v4.12
|
|
CODE="
|
|
#include <drm/drm_drv.h>
|
|
int features = DRIVER_SYNCOBJ | DRIVER_SYNCOBJ_TIMELINE;"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_SYNCOBJ_FEATURES_PRESENT" "" "types"
|
|
;;
|
|
|
|
stack_trace)
|
|
# Determine if functions stack_trace_{save,print} are present.
|
|
# Added by commit e9b98e162 ("stacktrace: Provide helpers for
|
|
# common stack trace operations") in v5.2.
|
|
CODE="
|
|
#include <linux/stacktrace.h>
|
|
void conftest_stack_trace(void) {
|
|
stack_trace_save();
|
|
stack_trace_print();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_STACK_TRACE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_unlocked_ioctl_flag_present)
|
|
# Determine if DRM_UNLOCKED IOCTL flag is present.
|
|
#
|
|
# DRM_UNLOCKED was removed by commit 2798ffcc1d6a ("drm: Remove
|
|
# locking for legacy ioctls and DRM_UNLOCKED") in v6.8.
|
|
#
|
|
# DRM_UNLOCKED definition was moved from drmP.h to drm_ioctl.h by
|
|
# commit 2640981f3600 ("drm: document drm_ioctl.[hc]") in v4.12.
|
|
CODE="
|
|
#include <drm/drm_ioctl.h>
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
int flags = DRM_UNLOCKED;"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_UNLOCKED_IOCTL_FLAG_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_color_ctm_3x4_present)
|
|
# Determine if struct drm_color_ctm_3x4 is present.
|
|
#
|
|
# struct drm_color_ctm_3x4 was added by commit 6872a189be50
|
|
# ("drm/amd/display: Add 3x4 CTM support for plane CTM") in v6.8.
|
|
CODE="
|
|
#include <uapi/drm/drm_mode.h>
|
|
struct drm_color_ctm_3x4 ctm;"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_COLOR_CTM_3X4_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_driver_has_gem_prime_mmap)
|
|
#
|
|
# Determine if the 'drm_driver' structure has a 'gem_prime_mmap'
|
|
# function pointer.
|
|
#
|
|
# Removed by commit 0adec22702d4 ("drm: Remove struct
|
|
# drm_driver.gem_prime_mmap") in v6.6.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
int conftest_drm_driver_has_gem_prime_mmap(void) {
|
|
return offsetof(struct drm_driver, gem_prime_mmap);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_PRIME_MMAP" "" "types"
|
|
;;
|
|
|
|
drm_gem_prime_mmap)
|
|
#
|
|
# Determine if the function drm_gem_prime_mmap() is present.
|
|
#
|
|
# Added by commit 7698799f95 ("drm/prime: Add drm_gem_prime_mmap()
|
|
# in v5.0
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#include <drm/drm_prime.h>
|
|
void conftest_drm_gem_prime_mmap(void) {
|
|
drm_gem_prime_mmap();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_GEM_PRIME_MMAP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vmf_insert_mixed)
|
|
#
|
|
# Determine if the function vmf_insert_mixed() is present.
|
|
#
|
|
# Added by commit 1c8f422059ae ("mm: change return type to
|
|
# vm_fault_t") in v4.17.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_vmf_insert_mixed() {
|
|
vmf_insert_mixed();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VMF_INSERT_MIXED_PRESENT" "" "functions"
|
|
;;
|
|
|
|
sg_dma_page_iter)
|
|
#
|
|
# Determine if the struct sg_dma_page_iter is present.
|
|
# This also serves to know if the argument type of the macro
|
|
# sg_page_iter_dma_address() changed:
|
|
# - before: struct sg_page_iter *piter
|
|
# - after: struct sg_dma_page_iter *dma_iter
|
|
#
|
|
# Added by commit d901b2760dc6c ("lib/scatterlist: Provide a DMA
|
|
# page iterator") v5.0.
|
|
#
|
|
CODE="
|
|
#include <linux/scatterlist.h>
|
|
struct sg_dma_page_iter conftest_dma_page_iter;"
|
|
|
|
compile_check_conftest "$CODE" "NV_SG_DMA_PAGE_ITER_PRESENT" "" "types"
|
|
;;
|
|
|
|
# FIXME: See if we can remove this test
|
|
for_each_sgtable_dma_page)
|
|
#
|
|
# Determine if macro for_each_sgtable_dma_page is present.
|
|
#
|
|
# Added by commit 709d6d73c756 ("scatterlist: add generic wrappers
|
|
# for iterating over sgtable objects") v5.7.
|
|
#
|
|
CODE="
|
|
#include <linux/scatterlist.h>
|
|
void conftest_for_each_sgtable_dma_page(void) {
|
|
for_each_sgtable_dma_page();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_FOR_EACH_SGTABLE_DMA_PAGE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_aperture_remove_conflicting_framebuffers)
|
|
#
|
|
# Determine whether drm_aperture_remove_conflicting_framebuffers is present.
|
|
#
|
|
# drm_aperture_remove_conflicting_framebuffers was added in commit 2916059147ea
|
|
# ("drm/aperture: Add infrastructure for aperture ownership) in
|
|
# v5.14-rc1 (2021-04-12)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_APERTURE_H_PRESENT)
|
|
#include <drm/drm_aperture.h>
|
|
#endif
|
|
void conftest_drm_aperture_remove_conflicting_framebuffers(void) {
|
|
drm_aperture_remove_conflicting_framebuffers();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_APERTURE_REMOVE_CONFLICTING_FRAMEBUFFERS_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_aperture_remove_conflicting_framebuffers_has_driver_arg)
|
|
#
|
|
# Determine whether drm_aperture_remove_conflicting_framebuffers
|
|
# takes a struct drm_driver * as its fourth argument.
|
|
#
|
|
# Prior to commit 97c9bfe3f6605d41eb8f1206e6e0f62b31ba15d6, the
|
|
# second argument was a char * pointer to the driver's name.
|
|
#
|
|
# To test if drm_aperture_remove_conflicting_framebuffers() has
|
|
# a req_driver argument, define a function with the expected
|
|
# signature and then define the corresponding function
|
|
# implementation with the expected signature. Successful compilation
|
|
# indicates that this function has the expected signature.
|
|
#
|
|
# This change occurred in commit 97c9bfe3f660 ("drm/aperture: Pass
|
|
# DRM driver structure instead of driver name") in v5.15
|
|
# (2021-06-29).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_drv.h>
|
|
#if defined(NV_DRM_DRM_APERTURE_H_PRESENT)
|
|
#include <drm/drm_aperture.h>
|
|
#endif
|
|
typeof(drm_aperture_remove_conflicting_framebuffers) conftest_drm_aperture_remove_conflicting_framebuffers;
|
|
int conftest_drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_size_t size,
|
|
bool primary, const struct drm_driver *req_driver)
|
|
{
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_APERTURE_REMOVE_CONFLICTING_FRAMEBUFFERS_HAS_DRIVER_ARG" "" "types"
|
|
;;
|
|
|
|
drm_aperture_remove_conflicting_framebuffers_has_no_primary_arg)
|
|
#
|
|
# Determine whether drm_aperture_remove_conflicting_framebuffers
|
|
# has its third argument as a bool.
|
|
#
|
|
# Prior to commit 62aeaeaa1b267c5149abee6b45967a5df3feed58, the
|
|
# third argument was a bool for figuring out whether the legacy vga
|
|
# stuff should be nuked, but it's only for pci devices and not
|
|
# really needed in this function.
|
|
#
|
|
# To test if drm_aperture_remove_conflicting_framebuffers() has
|
|
# a bool primary argument, define a function with the expected
|
|
# signature and then define the corresponding function
|
|
# implementation with the expected signature. Successful compilation
|
|
# indicates that this function has the expected signature.
|
|
#
|
|
# This change occurred in commit 62aeaeaa1b26 ("drm/aperture: Remove
|
|
# primary argument") in v6.5 (2023-04-16).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_drv.h>
|
|
#if defined(NV_DRM_DRM_APERTURE_H_PRESENT)
|
|
#include <drm/drm_aperture.h>
|
|
#endif
|
|
typeof(drm_aperture_remove_conflicting_framebuffers) conftest_drm_aperture_remove_conflicting_framebuffers;
|
|
int conftest_drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_size_t size,
|
|
const struct drm_driver *req_driver)
|
|
{
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_APERTURE_REMOVE_CONFLICTING_FRAMEBUFFERS_HAS_NO_PRIMARY_ARG" "" "types"
|
|
;;
|
|
|
|
struct_page_has_zone_device_data)
|
|
#
|
|
# Determine if struct page has a 'zone_device_data' field.
|
|
#
|
|
# Added by commit 8a164fef9c4c ("mm: simplify ZONE_DEVICE page
|
|
# private data") in v5.3.
|
|
#
|
|
CODE="
|
|
#include <linux/mm_types.h>
|
|
int conftest_struct_page_has_zone_device_data(void) {
|
|
return offsetof(struct page, zone_device_data);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_STRUCT_PAGE_HAS_ZONE_DEVICE_DATA" "" "types"
|
|
;;
|
|
|
|
page_pgmap)
|
|
#
|
|
# Determine if the page_pgmap() function is present.
|
|
#
|
|
# Added by commit 82ba975e4c43 ("mm: allow compound zone device
|
|
# pages") in v6.14
|
|
#
|
|
CODE="
|
|
#include <linux/mmzone.h>
|
|
int conftest_page_pgmap(void) {
|
|
return page_pgmap();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PAGE_PGMAP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
folio_test_swapcache)
|
|
#
|
|
# Determine if the folio_test_swapcache() function is present.
|
|
#
|
|
# folio_test_swapcache() was exported by commit d389a4a811551 ("mm:
|
|
# Add folio flag manipulation functions") in v5.16.
|
|
#
|
|
CODE="
|
|
#include <linux/page-flags.h>
|
|
void conftest_folio_test_swapcache(void) {
|
|
folio_test_swapcache();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_FOLIO_TEST_SWAPCACHE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
platform_driver_struct_remove_returns_void)
|
|
#
|
|
# Determine if the 'platform_driver' structure 'remove' function
|
|
# pointer returns void.
|
|
#
|
|
# Commit 0edb555a65d1 ("platform: Make platform_driver::remove()
|
|
# return void") updated the platform_driver structure 'remove'
|
|
# callback to return void instead of int in Linux v6.11-rc1.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/platform_device.h>
|
|
int conftest_platform_driver_struct_remove_returns_void(struct platform_device *pdev,
|
|
struct platform_driver *driver) {
|
|
return driver->remove(pdev);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
|
|
echo "#undef NV_PLATFORM_DRIVER_STRUCT_REMOVE_RETURNS_VOID" | append_conftest "types"
|
|
else
|
|
echo "#define NV_PLATFORM_DRIVER_STRUCT_REMOVE_RETURNS_VOID" | append_conftest "types"
|
|
fi
|
|
;;
|
|
|
|
module_import_ns_takes_constant)
|
|
#
|
|
# Determine if the MODULE_IMPORT_NS macro takes a string literal
|
|
# or constant.
|
|
#
|
|
# Commit cdd30ebb1b9f ("module: Convert symbol namespace to
|
|
# string literal") changed MODULE_IMPORT_NS to take a string
|
|
# literal in Linux kernel v6.13.
|
|
#
|
|
CODE="
|
|
#include <linux/module.h>
|
|
|
|
MODULE_IMPORT_NS(DMA_BUF);"
|
|
|
|
compile_check_conftest "$CODE" "NV_MODULE_IMPORT_NS_TAKES_CONSTANT" "" "generic"
|
|
;;
|
|
|
|
assign_str)
|
|
#
|
|
# Determine whether the __assign_str() macro, used in tracepoint
|
|
# event definitions, has the 'src' parameter.
|
|
#
|
|
# The 'src' parameter was removed by commit 2c92ca849fcc
|
|
# ("tracing/treewide: Remove second parameter of __assign_str()") in
|
|
# v6.10.
|
|
#
|
|
# The expected usage of __assign_str() inside the TRACE_EVENT()
|
|
# macro, which involves multiple include passes and assumes it is
|
|
# in a header file, requires a non-standard conftest approach of
|
|
# producing both a header and a C file.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM conftest
|
|
|
|
#if !defined(_TRACE_CONFTEST_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_CONFTEST_H
|
|
#include <linux/tracepoint.h>
|
|
TRACE_EVENT(conftest,
|
|
TP_PROTO(const char *s),
|
|
TP_ARGS(s),
|
|
TP_STRUCT__entry(__string(s, s)),
|
|
TP_fast_assign(__assign_str(s);),
|
|
TP_printk(\"%s\", __get_str(s))
|
|
);
|
|
#endif
|
|
|
|
#undef TRACE_INCLUDE_PATH
|
|
#define TRACE_INCLUDE_PATH .
|
|
#define TRACE_INCLUDE_FILE conftest$$
|
|
#include <trace/define_trace.h>
|
|
" > conftest$$.h
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#define CREATE_TRACE_POINTS
|
|
#include \"conftest$$.h\"
|
|
|
|
void conftest_assign_str(void) {
|
|
trace_conftest(\"conftest\");
|
|
}
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c >/dev/null 2>&1
|
|
rm -f conftest$$.c conftest$$.h
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
|
|
echo "#define NV_ASSIGN_STR_ARGUMENT_COUNT 1" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_ASSIGN_STR_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
drm_driver_has_date)
|
|
#
|
|
# Determine if the 'drm_driver' structure has a 'date' field.
|
|
#
|
|
# Removed by commit cb2e1c2136f7 ("drm: remove driver date from
|
|
# struct drm_driver and all drivers") in linux-next, expected in
|
|
# v6.14.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
int conftest_drm_driver_has_date(void) {
|
|
return offsetof(struct drm_driver, date);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_DATE" "" "types"
|
|
;;
|
|
|
|
drm_connector_helper_funcs_mode_valid_has_const_mode_arg)
|
|
#
|
|
# Determine if the 'mode' pointer argument is const in
|
|
# drm_connector_helper_funcs::mode_valid.
|
|
#
|
|
# The 'mode' pointer argument in
|
|
# drm_connector_helper_funcs::mode_valid was made const by commit
|
|
# 26d6fd81916e ("drm/connector: make mode_valid take a const struct
|
|
# drm_display_mode") in linux-next, expected in v6.15.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_atomic_helper.h>
|
|
|
|
static int conftest_drm_connector_mode_valid(struct drm_connector *connector,
|
|
const struct drm_display_mode *mode) {
|
|
return 0;
|
|
}
|
|
|
|
const struct drm_connector_helper_funcs conftest_drm_connector_helper_funcs = {
|
|
.mode_valid = conftest_drm_connector_mode_valid,
|
|
};"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_HELPER_FUNCS_MODE_VALID_HAS_CONST_MODE_ARG" "" "types"
|
|
;;
|
|
|
|
register_shrinker_has_format_arg)
|
|
# TODO:desc
|
|
# Determine if the 'mode' pointer argument is const in
|
|
# drm_connector_helper_funcs::mode_valid.
|
|
#
|
|
# The 'mode' pointer argument in
|
|
# drm_connector_helper_funcs::mode_valid was made const by commit
|
|
# 26d6fd81916e ("drm/connector: make mode_valid take a const struct
|
|
# drm_display_mode") in linux-next, expected in v6.15.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
|
|
void conftest_register_shrinker_has_format_arg(void) {
|
|
register_shrinker(NULL, \"%d\", 0);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_REGISTER_SHRINKER_HAS_FMT_ARG" "" "types"
|
|
;;
|
|
|
|
shrinker_alloc)
|
|
# TODO:desc
|
|
# Determine if the 'mode' pointer argument is const in
|
|
# drm_connector_helper_funcs::mode_valid.
|
|
#
|
|
# The 'mode' pointer argument in
|
|
# drm_connector_helper_funcs::mode_valid was made const by commit
|
|
# 26d6fd81916e ("drm/connector: make mode_valid take a const struct
|
|
# drm_display_mode") in linux-next, expected in v6.15.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
|
|
void conftest_shrinker_alloc(void) {
|
|
shrinker_alloc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SHRINKER_ALLOC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
# When adding a new conftest entry, please use the correct format for
|
|
# specifying the relevant upstream Linux kernel commit. Please
|
|
# avoid specifying -rc kernels, and only use SHAs that actually exist
|
|
# in the upstream Linux kernel git repository.
|
|
#
|
|
# Added|Removed|etc by commit <short-sha> ("<commit message") in
|
|
# <kernel-version>.
|
|
|
|
*)
|
|
# Unknown test name given
|
|
echo "Error: unknown conftest '$1' requested" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
case "$5" in
|
|
cc_sanity_check)
|
|
#
|
|
# Check if the selected compiler can create object files
|
|
# in the current environment.
|
|
#
|
|
VERBOSE=$6
|
|
|
|
echo "int cc_sanity_check(void) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ ! -f conftest$$.o ]; then
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "";
|
|
fi
|
|
if [ "$CC" != "cc" ]; then
|
|
echo "The C compiler '$CC' does not appear to be able to"
|
|
echo "create object files. Please make sure you have "
|
|
echo "your Linux distribution's libc development package"
|
|
echo "installed and that '$CC' is a valid C compiler";
|
|
echo "name."
|
|
else
|
|
echo "The C compiler '$CC' does not appear to be able to"
|
|
echo "create executables. Please make sure you have "
|
|
echo "your Linux distribution's gcc and libc development"
|
|
echo "packages installed."
|
|
fi
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "";
|
|
echo "*** Failed CC sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
exit 1
|
|
else
|
|
rm -f conftest$$.o
|
|
exit 0
|
|
fi
|
|
;;
|
|
|
|
cc_version_check)
|
|
#
|
|
# Verify that the same compiler major and minor version is
|
|
# used for the kernel and kernel module. A mismatch condition is
|
|
# not considered fatal, so this conftest returns a success status
|
|
# code, even if it fails. Failure of the test can be distinguished
|
|
# by testing for empty (success) versus non-empty (failure) output.
|
|
#
|
|
# Some gcc version strings that have proven problematic for parsing
|
|
# in the past:
|
|
#
|
|
# gcc.real (GCC) 3.3 (Debian)
|
|
# gcc-Version 3.3 (Debian)
|
|
# gcc (GCC) 3.1.1 20020606 (Debian prerelease)
|
|
# version gcc 3.2.3
|
|
#
|
|
# As of this writing, GCC uses a version number as x.y.z and below
|
|
# are the typical version strings seen with various distributions.
|
|
# gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
|
|
# gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
|
|
# gcc (GCC) 8.3.1 20190507 (Red Hat 8.3.1-4)
|
|
# gcc (GCC) 10.2.1 20200723 (Red Hat 10.2.1-1)
|
|
# gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
|
|
# gcc (Ubuntu 7.5.0-3ubuntu1~16.04) 7.5.0
|
|
# gcc (Debian 8.3.0-6) 8.3.0
|
|
# aarch64-linux-gcc.br_real (Buildroot 2020.08-14-ge5a2a90) 9.3.0, GNU ld (GNU Binutils) 2.33.1
|
|
#
|
|
# In order to extract GCC version correctly for version strings
|
|
# like the last one above, we first check for x.y.z and if that
|
|
# fails, we fallback to x.y format.
|
|
VERBOSE=$6
|
|
|
|
kernel_compile_h=$OUTPUT/include/generated/compile.h
|
|
|
|
if [ ! -f ${kernel_compile_h} ]; then
|
|
# The kernel's compile.h file is not present, so there
|
|
# isn't a convenient way to identify the compiler version
|
|
# used to build the kernel.
|
|
IGNORE_CC_MISMATCH=1
|
|
fi
|
|
|
|
if [ -n "$IGNORE_CC_MISMATCH" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
kernel_cc_string=`cat ${kernel_compile_h} | \
|
|
grep LINUX_COMPILER | cut -f 2 -d '"'`
|
|
|
|
kernel_cc_version=`echo ${kernel_cc_string} | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+' | head -n 1`
|
|
if [ -z "${kernel_cc_version}" ]; then
|
|
kernel_cc_version=`echo ${kernel_cc_string} | grep -o '[0-9]\+\.[0-9]\+' | head -n 1`
|
|
fi
|
|
kernel_cc_major=`echo ${kernel_cc_version} | cut -d '.' -f 1`
|
|
kernel_cc_minor=`echo ${kernel_cc_version} | cut -d '.' -f 2`
|
|
|
|
echo "
|
|
#if (__GNUC__ != ${kernel_cc_major}) || (__GNUC_MINOR__ != ${kernel_cc_minor})
|
|
#error \"cc version mismatch\"
|
|
#endif
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
exit 0;
|
|
else
|
|
#
|
|
# The gcc version check failed
|
|
#
|
|
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "";
|
|
echo "Warning: Compiler version check failed:";
|
|
echo "";
|
|
echo "The major and minor number of the compiler used to";
|
|
echo "compile the kernel:";
|
|
echo "";
|
|
echo "${kernel_cc_string}";
|
|
echo "";
|
|
echo "does not match the compiler used here:";
|
|
echo "";
|
|
$CC --version
|
|
echo "";
|
|
echo "It is recommended to set the CC environment variable";
|
|
echo "to the compiler that was used to compile the kernel.";
|
|
echo ""
|
|
echo "To skip the test and silence this warning message, set";
|
|
echo "the IGNORE_CC_MISMATCH environment variable to \"1\".";
|
|
echo "However, mixing compiler versions between the kernel";
|
|
echo "and kernel modules can result in subtle bugs that are";
|
|
echo "difficult to diagnose.";
|
|
echo "";
|
|
echo "*** Failed CC version check. ***";
|
|
echo "";
|
|
elif [ "$VERBOSE" = "just_msg" ]; then
|
|
echo "Warning: The kernel was built with ${kernel_cc_string}, but the" \
|
|
"current compiler version is `$CC --version | head -n 1`.";
|
|
fi
|
|
exit 0;
|
|
fi
|
|
;;
|
|
|
|
xen_sanity_check)
|
|
#
|
|
# Check if the target kernel is a Xen kernel. If so, exit, since
|
|
# the RM doesn't currently support Xen.
|
|
#
|
|
VERBOSE=$6
|
|
|
|
if [ -n "$IGNORE_XEN_PRESENCE" -o -n "$VGX_BUILD" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
test_xen
|
|
|
|
if [ "$XEN_PRESENT" != "0" ]; then
|
|
echo "The kernel you are installing for is a Xen kernel!";
|
|
echo "";
|
|
echo "The NVIDIA driver does not currently support Xen kernels. If ";
|
|
echo "you are using a stock distribution kernel, please install ";
|
|
echo "a variant of this kernel without Xen support; if this is a ";
|
|
echo "custom kernel, please install a standard Linux kernel. Then ";
|
|
echo "try installing the NVIDIA kernel module again.";
|
|
echo "";
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "*** Failed Xen sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
;;
|
|
|
|
preempt_rt_sanity_check)
|
|
#
|
|
# Check if the target kernel has the PREEMPT_RT patch set applied. If
|
|
# so, exit, since the RM doesn't support this configuration.
|
|
#
|
|
VERBOSE=$6
|
|
|
|
if [ -n "$IGNORE_PREEMPT_RT_PRESENCE" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
if test_configuration_option CONFIG_PREEMPT_RT; then
|
|
PREEMPT_RT_PRESENT=1
|
|
elif test_configuration_option CONFIG_PREEMPT_RT_FULL; then
|
|
PREEMPT_RT_PRESENT=1
|
|
fi
|
|
|
|
if [ "$PREEMPT_RT_PRESENT" != "0" ]; then
|
|
echo "The kernel you are installing for is a PREEMPT_RT kernel!";
|
|
echo "";
|
|
echo "The NVIDIA driver does not support real-time kernels. If you ";
|
|
echo "are using a stock distribution kernel, please install ";
|
|
echo "a variant of this kernel that does not have the PREEMPT_RT ";
|
|
echo "patch set applied; if this is a custom kernel, please ";
|
|
echo "install a standard Linux kernel. Then try installing the ";
|
|
echo "NVIDIA kernel module again.";
|
|
echo "";
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "*** Failed PREEMPT_RT sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
;;
|
|
|
|
patch_check)
|
|
#
|
|
# Check for any "official" patches that may have been applied and
|
|
# construct a description table for reporting purposes.
|
|
#
|
|
PATCHES=""
|
|
|
|
for PATCH in patch-*.h; do
|
|
if [ -f $PATCH ]; then
|
|
echo "#include \"$PATCH\""
|
|
PATCHES="$PATCHES "`echo $PATCH | sed -s 's/patch-\(.*\)\.h/\1/'`
|
|
fi
|
|
done
|
|
|
|
echo "static struct {
|
|
const char *short_description;
|
|
const char *description;
|
|
} __nv_patches[] = {"
|
|
for i in $PATCHES; do
|
|
echo "{ \"$i\", NV_PATCH_${i}_DESCRIPTION },"
|
|
done
|
|
echo "{ NULL, NULL } };"
|
|
|
|
exit 0
|
|
;;
|
|
|
|
compile_tests)
|
|
#
|
|
# Run a series of compile tests to determine the set of interfaces
|
|
# and features available in the target kernel.
|
|
#
|
|
shift 5
|
|
|
|
CFLAGS=$1
|
|
shift
|
|
|
|
for i in $*; do compile_test $i; done
|
|
|
|
exit 0
|
|
;;
|
|
|
|
dom0_sanity_check)
|
|
#
|
|
# Determine whether running in DOM0.
|
|
#
|
|
VERBOSE=$6
|
|
|
|
if [ -n "$VGX_BUILD" ]; then
|
|
if [ -f /proc/xen/capabilities ]; then
|
|
if [ "`cat /proc/xen/capabilities`" == "control_d" ]; then
|
|
exit 0
|
|
fi
|
|
else
|
|
echo "The kernel is not running in DOM0.";
|
|
echo "";
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "*** Failed DOM0 sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
fi
|
|
exit 1
|
|
fi
|
|
;;
|
|
vgpu_kvm_sanity_check)
|
|
#
|
|
# Determine whether we are running a vGPU on KVM host.
|
|
#
|
|
VERBOSE=$6
|
|
iommu=CONFIG_VFIO_IOMMU_TYPE1
|
|
iommufd_vfio_container=CONFIG_IOMMUFD_VFIO_CONTAINER
|
|
mdev=CONFIG_VFIO_MDEV
|
|
kvm=CONFIG_KVM_VFIO
|
|
vfio_pci_core=CONFIG_VFIO_PCI_CORE
|
|
VFIO_IOMMU_PRESENT=0
|
|
VFIO_IOMMUFD_VFIO_CONTAINER_PRESENT=0
|
|
VFIO_MDEV_PRESENT=0
|
|
KVM_PRESENT=0
|
|
VFIO_PCI_CORE_PRESENT=0
|
|
|
|
if [ -n "$VGX_KVM_BUILD" ]; then
|
|
if (test_configuration_option ${iommu} || test_configuration_option ${iommu}_MODULE); then
|
|
VFIO_IOMMU_PRESENT=1
|
|
fi
|
|
|
|
if (test_configuration_option ${iommufd_vfio_container} || test_configuration_option ${iommufd_vfio_container}_MODULE); then
|
|
VFIO_IOMMUFD_VFIO_CONTAINER_PRESENT=1
|
|
fi
|
|
|
|
if (test_configuration_option ${mdev} || test_configuration_option ${mdev}_MODULE); then
|
|
VFIO_MDEV_PRESENT=1
|
|
fi
|
|
|
|
if (test_configuration_option ${kvm} || test_configuration_option ${kvm}_MODULE); then
|
|
KVM_PRESENT=1
|
|
fi
|
|
|
|
if (test_configuration_option ${vfio_pci_core} || test_configuration_option ${vfio_pci_core}_MODULE); then
|
|
VFIO_PCI_CORE_PRESENT=1
|
|
fi
|
|
|
|
if ([ "$VFIO_IOMMU_PRESENT" != "0" ] || [ "$VFIO_IOMMUFD_VFIO_CONTAINER_PRESENT" != "0" ])&& [ "$KVM_PRESENT" != "0" ] ; then
|
|
# vGPU requires either MDEV or vfio-pci-core framework to be present.
|
|
if [ "$VFIO_MDEV_PRESENT" != "0" ] || [ "$VFIO_PCI_CORE_PRESENT" != "0" ]; then
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
echo "Below CONFIG options are missing on the kernel for installing";
|
|
echo "NVIDIA vGPU driver on KVM host";
|
|
if [ "$VFIO_IOMMU_PRESENT" = "0" ] && [ "$VFIO_IOMMUFD_VFIO_CONTAINER_PRESENT" = "0" ]; then
|
|
echo "either CONFIG_VFIO_IOMMU_TYPE1 or CONFIG_IOMMUFD_VFIO_CONTAINER";
|
|
fi
|
|
|
|
if [ "$VFIO_MDEV_PRESENT" = "0" ] && [ "$VFIO_PCI_CORE_PRESENT" = "0" ]; then
|
|
echo "either CONFIG_VFIO_MDEV or CONFIG_VFIO_PCI_CORE";
|
|
fi
|
|
|
|
if [ "$KVM_PRESENT" = "0" ]; then
|
|
echo "CONFIG_KVM";
|
|
fi
|
|
echo "Please install the kernel with above CONFIG options set, then";
|
|
echo "try installing again";
|
|
echo "";
|
|
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "*** Failed vGPU on KVM sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
;;
|
|
test_configuration_option)
|
|
#
|
|
# Check to see if the given config option is set.
|
|
#
|
|
OPTION=$6
|
|
|
|
test_configuration_option $OPTION
|
|
exit $?
|
|
;;
|
|
|
|
get_configuration_option)
|
|
#
|
|
# Get the value of the given config option.
|
|
#
|
|
OPTION=$6
|
|
|
|
get_configuration_option $OPTION
|
|
exit $?
|
|
;;
|
|
|
|
|
|
guess_module_signing_hash)
|
|
#
|
|
# Determine the best cryptographic hash to use for module signing,
|
|
# to the extent that is possible.
|
|
#
|
|
|
|
HASH=$(get_configuration_option CONFIG_MODULE_SIG_HASH)
|
|
|
|
if [ $? -eq 0 ] && [ -n "$HASH" ]; then
|
|
echo $HASH
|
|
exit 0
|
|
else
|
|
for SHA in 512 384 256 224 1; do
|
|
if test_configuration_option CONFIG_MODULE_SIG_SHA$SHA; then
|
|
echo sha$SHA
|
|
exit 0
|
|
fi
|
|
done
|
|
fi
|
|
exit 1
|
|
;;
|
|
|
|
|
|
test_kernel_header)
|
|
#
|
|
# Check for the availability of the given kernel header
|
|
#
|
|
|
|
CFLAGS=$6
|
|
|
|
test_header_presence "${7}"
|
|
|
|
exit $?
|
|
;;
|
|
|
|
|
|
build_cflags)
|
|
#
|
|
# Generate CFLAGS for use in the compile tests
|
|
#
|
|
|
|
build_cflags
|
|
echo $CFLAGS
|
|
exit 0
|
|
;;
|
|
|
|
module_symvers_sanity_check)
|
|
#
|
|
# Check whether Module.symvers exists and contains at least one
|
|
# EXPORT_SYMBOL* symbol from vmlinux
|
|
#
|
|
|
|
if [ -n "$IGNORE_MISSING_MODULE_SYMVERS" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
TAB=' '
|
|
|
|
if [ -f "$OUTPUT/Module.symvers" ] && \
|
|
grep -e "^[^${TAB}]*${TAB}[^${TAB}]*${TAB}\+vmlinux" \
|
|
"$OUTPUT/Module.symvers" >/dev/null 2>&1; then
|
|
exit 0
|
|
fi
|
|
|
|
echo "The Module.symvers file is missing, or does not contain any"
|
|
echo "symbols exported from the kernel. This could cause the NVIDIA"
|
|
echo "kernel modules to be built against a configuration that does"
|
|
echo "not accurately reflect the actual target kernel."
|
|
echo "The Module.symvers file check can be disabled by setting the"
|
|
echo "environment variable IGNORE_MISSING_MODULE_SYMVERS to 1."
|
|
|
|
exit 1
|
|
;;
|
|
esac
|