1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Non-trivial C macros cannot be used in Rust. Similarly, inlined C functions 4 * cannot be called either. This file explicitly creates functions ("helpers") 5 * that wrap those so that they can be called from Rust. 6 * 7 * Even though Rust kernel modules should never use the bindings directly, some 8 * of these helpers need to be exported because Rust generics and inlined 9 * functions may not get their code generated in the crate where they are 10 * defined. Other helpers, called from non-inline functions, may not be 11 * exported, in principle. However, in general, the Rust compiler does not 12 * guarantee codegen will be performed for a non-inline function either. 13 * Therefore, this file exports all the helpers. In the future, this may be 14 * revisited to reduce the number of exports after the compiler is informed 15 * about the places codegen is required. 16 * 17 * All symbols are exported as GPL-only to guarantee no GPL-only feature is 18 * accidentally exposed. 19 * 20 * Sorted alphabetically. 21 */ 22 23 #include "blk.c" 24 #include "bug.c" 25 #include "build_assert.c" 26 #include "build_bug.c" 27 #include "err.c" 28 #include "kunit.c" 29 #include "mutex.c" 30 #include "page.c" 31 #include "refcount.c" 32 #include "signal.c" 33 #include "slab.c" 34 #include "spinlock.c" 35 #include "task.c" 36 #include "uaccess.c" 37 #include "wait.c" 38 #include "workqueue.c" 39