Lines Matching refs:env
129 static int init_uevent_argv(struct kobj_uevent_env *env, const char *subsystem) in init_uevent_argv() argument
133 len = strlcpy(&env->buf[env->buflen], subsystem, in init_uevent_argv()
134 sizeof(env->buf) - env->buflen); in init_uevent_argv()
135 if (len >= (sizeof(env->buf) - env->buflen)) { in init_uevent_argv()
140 env->argv[0] = uevent_helper; in init_uevent_argv()
141 env->argv[1] = &env->buf[env->buflen]; in init_uevent_argv()
142 env->argv[2] = NULL; in init_uevent_argv()
144 env->buflen += len + 1; in init_uevent_argv()
167 struct kobj_uevent_env *env; in kobject_uevent_env() local
227 env = kzalloc(sizeof(struct kobj_uevent_env), GFP_KERNEL); in kobject_uevent_env()
228 if (!env) in kobject_uevent_env()
239 retval = add_uevent_var(env, "ACTION=%s", action_string); in kobject_uevent_env()
242 retval = add_uevent_var(env, "DEVPATH=%s", devpath); in kobject_uevent_env()
245 retval = add_uevent_var(env, "SUBSYSTEM=%s", subsystem); in kobject_uevent_env()
252 retval = add_uevent_var(env, "%s", envp_ext[i]); in kobject_uevent_env()
260 retval = uevent_ops->uevent(kset, kobj, env); in kobject_uevent_env()
282 retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)++uevent_seqnum); in kobject_uevent_env()
300 skb = alloc_skb(len + env->buflen, GFP_KERNEL); in kobject_uevent_env()
309 for (i = 0; i < env->envp_idx; i++) { in kobject_uevent_env()
310 len = strlen(env->envp[i]) + 1; in kobject_uevent_env()
312 strcpy(scratch, env->envp[i]); in kobject_uevent_env()
334 retval = add_uevent_var(env, "HOME=/"); in kobject_uevent_env()
337 retval = add_uevent_var(env, in kobject_uevent_env()
341 retval = init_uevent_argv(env, subsystem); in kobject_uevent_env()
346 info = call_usermodehelper_setup(env->argv[0], env->argv, in kobject_uevent_env()
347 env->envp, GFP_KERNEL, in kobject_uevent_env()
348 NULL, cleanup_uevent_env, env); in kobject_uevent_env()
351 env = NULL; /* freed by cleanup_uevent_env */ in kobject_uevent_env()
358 kfree(env); in kobject_uevent_env()
386 int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...) in add_uevent_var() argument
391 if (env->envp_idx >= ARRAY_SIZE(env->envp)) { in add_uevent_var()
397 len = vsnprintf(&env->buf[env->buflen], in add_uevent_var()
398 sizeof(env->buf) - env->buflen, in add_uevent_var()
402 if (len >= (sizeof(env->buf) - env->buflen)) { in add_uevent_var()
407 env->envp[env->envp_idx++] = &env->buf[env->buflen]; in add_uevent_var()
408 env->buflen += len + 1; in add_uevent_var()