Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_common.c
Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | |||||
static int | static int | ||||
linux_common_modevent(module_t mod, int type, void *data) | linux_common_modevent(module_t mod, int type, void *data) | ||||
{ | { | ||||
struct linux_device_handler **ldhp; | struct linux_device_handler **ldhp; | ||||
switch(type) { | switch(type) { | ||||
case MOD_LOAD: | case MOD_LOAD: | ||||
linux_dev_shm_create(); | |||||
linux_osd_jail_register(); | linux_osd_jail_register(); | ||||
linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, | linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, | ||||
linux_proc_exit, NULL, 1000); | linux_proc_exit, NULL, 1000); | ||||
linux_exec_tag = EVENTHANDLER_REGISTER(process_exec, | linux_exec_tag = EVENTHANDLER_REGISTER(process_exec, | ||||
linux_proc_exec, NULL, 1000); | linux_proc_exec, NULL, 1000); | ||||
linux_thread_dtor_tag = EVENTHANDLER_REGISTER(thread_dtor, | linux_thread_dtor_tag = EVENTHANDLER_REGISTER(thread_dtor, | ||||
linux_thread_dtor, NULL, EVENTHANDLER_PRI_ANY); | linux_thread_dtor, NULL, EVENTHANDLER_PRI_ANY); | ||||
SET_FOREACH(ldhp, linux_device_handler_set) | SET_FOREACH(ldhp, linux_device_handler_set) | ||||
linux_device_register_handler(*ldhp); | linux_device_register_handler(*ldhp); | ||||
LIST_INIT(&futex_list); | LIST_INIT(&futex_list); | ||||
mtx_init(&futex_mtx, "ftllk", NULL, MTX_DEF); | mtx_init(&futex_mtx, "ftllk", NULL, MTX_DEF); | ||||
break; | break; | ||||
case MOD_UNLOAD: | case MOD_UNLOAD: | ||||
linux_dev_shm_destroy(); | |||||
linux_osd_jail_deregister(); | linux_osd_jail_deregister(); | ||||
SET_FOREACH(ldhp, linux_device_handler_set) | SET_FOREACH(ldhp, linux_device_handler_set) | ||||
linux_device_unregister_handler(*ldhp); | linux_device_unregister_handler(*ldhp); | ||||
mtx_destroy(&futex_mtx); | mtx_destroy(&futex_mtx); | ||||
EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag); | EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag); | ||||
EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag); | EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag); | ||||
EVENTHANDLER_DEREGISTER(thread_dtor, linux_thread_dtor_tag); | EVENTHANDLER_DEREGISTER(thread_dtor, linux_thread_dtor_tag); | ||||
break; | break; | ||||
Show All 14 Lines |