Contributors: 20
Author |
Tokens |
Token Proportion |
Commits |
Commit Proportion |
Rafael J. Wysocki |
71 |
23.59% |
6 |
16.67% |
Linus Torvalds (pre-git) |
64 |
21.26% |
9 |
25.00% |
Neil Horman |
46 |
15.28% |
1 |
2.78% |
Jeremy Fitzhardinge |
25 |
8.31% |
1 |
2.78% |
David Howells |
21 |
6.98% |
2 |
5.56% |
Lucas De Marchi |
16 |
5.32% |
2 |
5.56% |
Oleg Nesterov |
12 |
3.99% |
2 |
5.56% |
Peter Zijlstra |
9 |
2.99% |
1 |
2.78% |
Rusty Russell |
8 |
2.66% |
1 |
2.78% |
Luis R. Rodriguez |
5 |
1.66% |
1 |
2.78% |
Andrew Morton |
4 |
1.33% |
1 |
2.78% |
Andi Kleen |
3 |
1.00% |
1 |
2.78% |
Boaz Harrosh |
3 |
1.00% |
1 |
2.78% |
Motohiro Kosaki |
3 |
1.00% |
1 |
2.78% |
Greg Kroah-Hartman |
3 |
1.00% |
1 |
2.78% |
Linus Torvalds |
2 |
0.66% |
1 |
2.78% |
Srivatsa S. Bhat |
2 |
0.66% |
1 |
2.78% |
Matthew Wilcox |
2 |
0.66% |
1 |
2.78% |
Kees Cook |
1 |
0.33% |
1 |
2.78% |
Ingo Molnar |
1 |
0.33% |
1 |
2.78% |
Total |
301 |
|
36 |
|
#ifndef __LINUX_UMH_H__
#define __LINUX_UMH_H__
#include <linux/gfp.h>
#include <linux/stddef.h>
#include <linux/errno.h>
#include <linux/compiler.h>
#include <linux/workqueue.h>
#include <linux/sysctl.h>
struct cred;
struct file;
#define UMH_NO_WAIT 0x00 /* don't wait at all */
#define UMH_WAIT_EXEC 0x01 /* wait for the exec, but not the process */
#define UMH_WAIT_PROC 0x02 /* wait for the process to complete */
#define UMH_KILLABLE 0x04 /* wait for EXEC/PROC killable */
#define UMH_FREEZABLE 0x08 /* wait for EXEC/PROC freezable */
struct subprocess_info {
struct work_struct work;
struct completion *complete;
const char *path;
char **argv;
char **envp;
int wait;
int retval;
int (*init)(struct subprocess_info *info, struct cred *new);
void (*cleanup)(struct subprocess_info *info);
void *data;
} __randomize_layout;
extern int
call_usermodehelper(const char *path, char **argv, char **envp, int wait);
extern struct subprocess_info *
call_usermodehelper_setup(const char *path, char **argv, char **envp,
gfp_t gfp_mask,
int (*init)(struct subprocess_info *info, struct cred *new),
void (*cleanup)(struct subprocess_info *), void *data);
extern int
call_usermodehelper_exec(struct subprocess_info *info, int wait);
enum umh_disable_depth {
UMH_ENABLED = 0,
UMH_FREEZING,
UMH_DISABLED,
};
extern int __usermodehelper_disable(enum umh_disable_depth depth);
extern void __usermodehelper_set_disable_depth(enum umh_disable_depth depth);
static inline int usermodehelper_disable(void)
{
return __usermodehelper_disable(UMH_DISABLED);
}
static inline void usermodehelper_enable(void)
{
__usermodehelper_set_disable_depth(UMH_ENABLED);
}
extern int usermodehelper_read_trylock(void);
extern long usermodehelper_read_lock_wait(long timeout);
extern void usermodehelper_read_unlock(void);
#endif /* __LINUX_UMH_H__ */