call_usermodehelper_setup — prepare to call a usermode helper


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 *info),
 void * data);


const char * path

path to usermode executable

char ** argv

arg vector for process

char ** envp

environment for process

gfp_t gfp_mask

gfp mask for memory allocation

int (*)(struct subprocess_info *info, struct cred *new) init

an init function

void (*)(struct subprocess_info *info) cleanup

a cleanup function

void * data

arbitrary context sensitive data


Returns either NULL on allocation failure, or a subprocess_info structure. This should be passed to call_usermodehelper_exec to exec the process and free the structure.

The init function is used to customize the helper process prior to exec. A non-zero return code causes the process to error out, exit, and return the failure to the calling process

The cleanup function is just before ethe subprocess_info is about to be freed. This can be used for freeing the argv and envp. The Function must be runnable in either a process context or the context in which call_usermodehelper_exec is called.