123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef _LINUX_KTHREAD_H
- #define _LINUX_KTHREAD_H
- /* Simple interface for creating and stopping kernel threads without mess. */
- #include <linux/err.h>
- #include <linux/sched.h>
- struct task_struct *kthread_create(int (*threadfn)(void *data),
- void *data,
- const char namefmt[], ...);
- /**
- * kthread_run - create and wake a thread.
- * @threadfn: the function to run until signal_pending(current).
- * @data: data ptr for @threadfn.
- * @namefmt: printf-style name for the thread.
- *
- * Description: Convenient wrapper for kthread_create() followed by
- * wake_up_process(). Returns the kthread or ERR_PTR(-ENOMEM).
- */
- #define kthread_run(threadfn, data, namefmt, ...) \
- ({ \
- struct task_struct *__k \
- = kthread_create(threadfn, data, namefmt, ## __VA_ARGS__); \
- if (!IS_ERR(__k)) \
- wake_up_process(__k); \
- __k; \
- })
- void kthread_bind(struct task_struct *k, unsigned int cpu);
- int kthread_stop(struct task_struct *k);
- int kthread_should_stop(void);
- int kthreadd(void *unused);
- extern struct task_struct *kthreadd_task;
- #endif /* _LINUX_KTHREAD_H */
|