xref: /linux-6.15/include/linux/kmod.h (revision 74ba9207)
1*74ba9207SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
21da177e4SLinus Torvalds #ifndef __LINUX_KMOD_H__
31da177e4SLinus Torvalds #define __LINUX_KMOD_H__
41da177e4SLinus Torvalds 
51da177e4SLinus Torvalds /*
61da177e4SLinus Torvalds  *	include/linux/kmod.h
71da177e4SLinus Torvalds  */
81da177e4SLinus Torvalds 
9c1f3fa2aSLuis R. Rodriguez #include <linux/umh.h>
10ac331d15SKOSAKI Motohiro #include <linux/gfp.h>
117888e7ffSDavid Howells #include <linux/stddef.h>
121da177e4SLinus Torvalds #include <linux/errno.h>
131da177e4SLinus Torvalds #include <linux/compiler.h>
14a06a4dc3SNeil Horman #include <linux/workqueue.h>
1517f60a7dSEric Paris #include <linux/sysctl.h>
161da177e4SLinus Torvalds 
171da177e4SLinus Torvalds #define KMOD_PATH_LEN 256
181da177e4SLinus Torvalds 
19a1ef5adbSJohannes Berg #ifdef CONFIG_MODULES
205ed10910SDave Young extern char modprobe_path[]; /* for sysctl */
211da177e4SLinus Torvalds /* modprobe exit status on success, -ve on error.  Return value
221da177e4SLinus Torvalds  * usually useless though. */
23b9075fa9SJoe Perches extern __printf(2, 3)
24b9075fa9SJoe Perches int __request_module(bool wait, const char *name, ...);
25acae0515SArjan van de Ven #define request_module(mod...) __request_module(true, mod)
26acae0515SArjan van de Ven #define request_module_nowait(mod...) __request_module(false, mod)
27acae0515SArjan van de Ven #define try_then_request_module(x, mod...) \
2897c18e2cSHerbert Xu 	((x) ?: (__request_module(true, mod), (x)))
291da177e4SLinus Torvalds #else
request_module(const char * name,...)301da177e4SLinus Torvalds static inline int request_module(const char *name, ...) { return -ENOSYS; }
request_module_nowait(const char * name,...)31acae0515SArjan van de Ven static inline int request_module_nowait(const char *name, ...) { return -ENOSYS; }
32df648c9fSJohannes Berg #define try_then_request_module(x, mod...) (x)
331da177e4SLinus Torvalds #endif
341da177e4SLinus Torvalds 
351da177e4SLinus Torvalds #endif /* __LINUX_KMOD_H__ */
36