* Setup the dynamic kernel environment. */
| 375 | * Setup the dynamic kernel environment. |
| 376 | */ |
| 377 | static void |
| 378 | init_dynamic_kenv(void *data __unused) |
| 379 | { |
| 380 | int dynamic_envpos; |
| 381 | int size; |
| 382 | |
| 383 | TUNABLE_INT_FETCH("kenv_mvallen", &kenv_mvallen); |
| 384 | size = KENV_MNAMELEN + 1 + kenv_mvallen + 1; |
| 385 | |
| 386 | kenv_zone = uma_zcreate("kenv", size, NULL, NULL, NULL, NULL, |
| 387 | UMA_ALIGN_PTR, 0); |
| 388 | |
| 389 | kenvp = malloc((KENV_SIZE + 1) * sizeof(char *), M_KENV, |
| 390 | M_WAITOK | M_ZERO); |
| 391 | |
| 392 | dynamic_envpos = 0; |
| 393 | init_dynamic_kenv_from(md_envp, &dynamic_envpos); |
| 394 | init_dynamic_kenv_from(kern_envp, &dynamic_envpos); |
| 395 | kenvp[dynamic_envpos] = NULL; |
| 396 | |
| 397 | mtx_init(&kenv_lock, "kernel environment", NULL, MTX_DEF); |
| 398 | dynamic_kenv = true; |
| 399 | } |
| 400 | SYSINIT(kenv, SI_SUB_KMEM + 1, SI_ORDER_FIRST, init_dynamic_kenv, NULL); |
| 401 | |
| 402 | void |
nothing calls this directly
no test coverage detected